summaryrefslogtreecommitdiff
path: root/include/rvl/OS/OSCache.h
blob: e4d48bb5ddc6c2b7054cb163b668e0a0ab709f04 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#ifndef RVL_SDK_OS_CACHE_H
#define RVL_SDK_OS_CACHE_H
#include "common.h"
#ifdef __cplusplus
extern "C" {
#endif

#define OS_CACHE_BASE 0xE0000000
// Forward declarations
typedef struct OSContext;

void DCEnable(void);
void DCInvalidateRange(const void *buf, u32 len);
void DCFlushRange(const void *buf, u32 len);
void DCStoreRange(const void *buf, u32 len);
void DCFlushRangeNoSync(const void *buf, u32 len);
void DCStoreRangeNoSync(const void *buf, u32 len);
void DCZeroRange(const void *buf, u32 len);

void ICInvalidateRange(const void *buf, u32 len);
void ICFlashInvalidate(void);
void ICEnable(void);

void LCEnable(void);
void LCDisable(void);
void LCLoadBlocks(void *dst, const void *src, u32 len);
void LCStoreBlocks(void *dst, const void *src, u32 len);
u32 LCStoreData(void *dst, const void *src, u32 len);
u32 LCQueueLength(void);
void LCQueueWait(u32 n);

void L2Enable(void);
void L2Disable(void);
void L2GlobalInvalidate(void);

void DMAErrorHandler(u8 error, OSContext *ctx, u32 dsisr, u32 dar, ...);

void __OSCacheInit(void);

#ifdef __cplusplus
}
#endif
#endif