1
2{$IFDEF OGC_INTERFACE}
3const
4  LC_BASEPREFIX = $e000;
5  LC_BASE = ( LC_BASEPREFIX shl 16 );
6
7procedure DCEnable; cdecl; external;
8
9procedure DCDisable; cdecl; external;
10
11procedure DCFreeze; cdecl; external;
12
13procedure DCUnfreeze; cdecl; external;
14
15procedure DCFlashInvalidate; cdecl; external;
16
17procedure DCInvalidateRange(startaddress: pointer; len: cuint32); cdecl; external;
18
19procedure DCFlushRange(startaddress: pointer; len: cuint32); cdecl; external;
20
21procedure DCStoreRange(startaddress: pointer; len: cuint32); cdecl; external;
22
23procedure DCFlushRangeNoSync(startaddress: pointer; len: cuint32); cdecl; external;
24
25procedure DCStoreRangeNoSync(startaddress: pointer; len: cuint32); cdecl; external;
26
27procedure DCZeroRange(startaddress: pointer; len: cuint32); cdecl; external;
28
29procedure DCTouchRange(startaddress: pointer; len: cuint32); cdecl; external;
30
31procedure ICSync; cdecl; external;
32
33procedure ICFlashInvalidate; cdecl; external;
34
35
36{$ifdef HW_RVL}
37procedure L2Enhance(); cdecl; external;
38{$endif}
39
40procedure ICEnable; cdecl; external;
41
42procedure ICDisable; cdecl; external;
43
44procedure ICFreeze; cdecl; external;
45
46procedure ICUnfreeze; cdecl; external;
47
48procedure ICBlockInvalidate(startaddress: pointer); cdecl; external;
49
50procedure ICInvalidateRange(startaddress: pointer; len: cuint32); cdecl; external;
51
52procedure LCEnable; cdecl; external;
53
54procedure LCDisable; cdecl; external;
55
56procedure LCLoadBlocks(par0, par1: pointer; par2: cuint32); cdecl; external;
57
58procedure LCStoreBlocks(par0, par1: pointer; par2: cuint32); cdecl; external;
59
60function LCLoadData(par0, par1: pointer; par2: cuint32): cuint32; cdecl; external;
61
62function LCStoreData(par0, par1: pointer; par2: cuint32): cuint32; cdecl; external;
63
64function LCQueueLength: cuint32; cdecl; external;
65
66function LCQueueWait(par0: cuint32): cuint32; cdecl; external;
67
68procedure LCFlushQueue; cdecl; external;
69
70procedure LCAlloc(par0: pointer; par1: cuint32); cdecl; external;
71
72procedure LCAllocNoInvalidate(par0: pointer; par1: cuint32); cdecl; external;
73
74procedure LCAllocOneTag(par0: cBOOL; par1: pointer); cdecl; external;
75
76procedure LCAllocTags(par0: cBOOL; par1: pointer; par2: cuint32); cdecl; external;
77
78
79function LCGetBase(): cint32; inline;
80{$ENDIF OGC_INTERFACE}
81
82{$IFDEF OGC_IMPLEMENTATION}
83function LCGetBase(): cint32; inline;
84begin
85  LCGetBase := cint32(pointer(LC_BASE)^);
86end;
87{$ENDIF OGC_IMPLEMENTATION}
88