1:
9:
10:
14:
15:
#ifndef _OSWRAPPER_H_
16:
#define _OSWRAPPER_H_
17:
18:
19:
#include <stdint.h>
20:
21:
#ifdef __cplusplus
22:
extern "C" {
23:
#endif
24:
25:
26:
#define AG903_OSW_CACHE_PAGESIZE (4096)
27:
28:
29:
#define AG903_OSW_DEFAULT_INTRPRI (20)
30:
31:
32:
#define AG903_OSW_HLNG (0)
33:
34:
35:
#define AG903_OSW_IRQ_NUM_MAX (64)
36:
37:
38:
#define AG903_OSW_IRQ_PRI_MAX (32)
39:
40:
41:
enum _AG903_OswAttribute {
42: AG903_OSW_ATRFIFO=0,
43: AG903_OSW_ATRPRI,
44: AG903_OSW_ATRNUM,
45: };
46:
47:
48:
enum _AG903_OswMemType {
49: AG903_OSW_NORMAL_CACHE_OFF=0,
50: AG903_OSW_NORMAL_CACHE_ON,
51: AG903_OSW_STRONGLY_ORDERED,
52: };
53:
54:
62: uint32_t mplsz;
63:
void* mpl;
64: int8_t memtype;
65: int8_t reserve[3];
66: }
AG903_OSWCMpl;
67:
68:
69:
typedef struct _AG903_OSWRMpl {
70: int32_t wtskid;
71: uint32_t fmplsz;
72: uint32_t fblksz;
73: }
AG903_OSWRMpl;
74:
75:
83: uint32_t blkcnt;
84: uint32_t blksz;
85:
void* mpf;
86: int8_t memtype;
87: int8_t reserve[3];
88: }
AG903_OSWCMpf;
89:
90:
91:
typedef struct _AG903_OSWRMpf {
92: int32_t wtskid;
93: uint32_t fblkcnt;
94: }
AG903_OSWRMpf;
95:
96:
101:
void* exinf;
102: uint32_t intno;
103:
void* func;
104: }
AG903_OSWCIsr;
105:
106:
107:
typedef struct _AG903_OSWRIsr {
108: uint32_t intno;
109:
void* isr;
110: }
AG903_OSWRIsr;
111:
112:
113: int32_t
AG903_OSWprInitMemory(uintptr_t vramtop, uint32_t vramsize);
114: int32_t
AG903_OSWprCreMpl(int32_t mplid,
AG903_OSWCMpl* pk_cmpl);
115: int32_t
AG903_OSWprCreMplAuto(
AG903_OSWCMpl* pk_cmpl);
116: int32_t
AG903_OSWprDelMpl(int32_t mplid);
117: int32_t
AG903_OSWprGetMpl(int32_t mplid, uint32_t blksz,
void** p_blk);
118: int32_t
AG903_OSWprGetMplAlign(int32_t mplid, uint32_t align, uint32_t blksz,
void** p_blk);
119: int32_t
AG903_OSWprRelMpl(int32_t mplid,
void* blk);
120: int32_t
AG903_OSWprRefMpl(int32_t mplid,
AG903_OSWRMpl* pk_rmpl);
121: int32_t
AG903_OSWprCreMpf(int32_t mpfid,
AG903_OSWCMpf* pk_cmpf);
122: int32_t
AG903_OSWprCreMpfAuto(
AG903_OSWCMpf* pk_cmpf);
123: int32_t
AG903_OSWprDelMpf(int32_t mpfid);
124: int32_t
AG903_OSWprGetMpf(int32_t mpfid,
void** p_blk);
125: int32_t
AG903_OSWprRelMpf(int32_t mpfid,
void* blk);
126: int32_t
AG903_OSWprRefMpf(int32_t mpfid,
AG903_OSWRMpf* pk_rmpf);
127: int32_t
AG903_OSWprIniInt(
void);
128: int32_t
AG903_OSWprCreIsrAuto(
AG903_OSWCIsr* pk_cisr);
129: int32_t
AG903_OSWprDelIsr(int32_t isrid);
130: int32_t
AG903_OSWprRefIsr(int32_t isrid,
AG903_OSWRIsr* pk_risr);
131: int32_t
AG903_OSWprDisInt(uint32_t intno);
132: int32_t
AG903_OSWprEnaInt(uint32_t intno);
133: int32_t
AG903_OSWprChgIms(uint32_t imask);
134: int32_t
AG903_OSWprGetIms(uint32_t* p_imask);
135: int32_t
AG903_OSWprSetIpri(uint32_t intno, uint8_t intpri);
136:
137:
#ifdef __cplusplus
138: }
139:
#endif
140:
#endif