1:
9:
10:
14:
15:
#ifndef __OSPMGR_H__
16:
#define __OSPMGR_H__
17:
18:
19:
#ifdef __cplusplus
20:
extern "C" {
21:
#endif
22:
23:
24:
#define AG903_OSP_CH_NUM (4)
25:
26:
27:
enum _AG903_OSPMgrPri{
28: AG903_OSP_PRI_LOWEST = 0 ,
29: AG903_OSP_PRI_LOW ,
30: AG903_OSP_PRI_HIGH ,
31: AG903_OSP_PRI_HIGHEST ,
32: AG903_OSP_PRI_NUM ,
33: };
34:
35:
36:
typedef enum _AG903_OSPMgrBufMode{
37: AG903_OSP_BUFMODE_FIFO = 0,
38: AG903_OSP_BUFMODE_RING,
39: AG903_OSP_BUFMODE_NUM,
40: }
AG903_OSPMgrBufMode;
41:
42:
43:
typedef enum _AG903_OSPMgrCmd {
44: AG903_OSP_CMD_BUS_SINGLE = 0,
45: AG903_OSP_CMD_BUS_BURST_FIX,
46: AG903_OSP_CMD_BUS_BURST_INC,
47: AG903_OSP_CMD_BUS_ADDR,
48: AG903_OSP_CMD_BUS_DATA,
49: AG903_OSP_CMD_BUS_WAIT,
50: AG903_OSP_CMD_INTR_WAIT,
51: AG903_OSP_CMD_EVNT_WAIT,
52: AG903_OSP_CMD_EVNT_DEC,
53: AG903_OSP_CMD_EVNT_CLR,
54: AG903_OSP_CMD_FLAG_SET,
55: AG903_OSP_CMD_FLAG_CLR,
56: AG903_OSP_CMD_NOP,
57: AG903_OSP_CMD_NUM,
58: }
AG903_OSPMgrCmd;
59:
60:
61:
#define AG903_OSP_EVENT_NUM (64)
62:
63:
64:
#define AG903_OSP_FIFO_SIZE (512)
65:
66:
67:
#define AG903_OSP_FIFO_NUM (
AG903_OSP_FIFO_SIZE /
sizeof(uint32_t))
68:
69:
70:
#define AG903_OSP_CMD_BAS_SIZE (63)
71:
72:
73:
#define AG903_OSP_CMD_BAB_SIZE (63)
74:
75:
77:
#define AG903_OSP_CMD_PARSE (0)
78:
79:
80:
typedef uint32_t
AG903_OSPMgrHandle;
81:
82:
83:
typedef struct _AG903_OSPCmdBuf {
84:
85: uint32_t *addr;
86: uint32_t size;
87:
AG903_OSPMgrBufMode mode;
88:
89: }
AG903_OSPCmdBuf;
90:
91:
92:
95: int32_t
AG903_OSPMgrInit(
void);
96: int32_t
AG903_OSPMgrGetHandle(
AG903_OSPMgrHandle **handle);
97: int32_t
AG903_OSPMgrReleaseHandle(
AG903_OSPMgrHandle *handle);
98: int32_t
AG903_OSPMgrEnable(
AG903_OSPMgrHandle *handle);
99: int32_t
AG903_OSPMgrDisable(
AG903_OSPMgrHandle *handle);
100: int32_t
AG903_OSPMgrSetPriority(
AG903_OSPMgrHandle *handle, uint8_t priority);
101: int32_t
AG903_OSPMgrGetStat(
AG903_OSPMgrHandle *handle, uint8_t *stat, uint8_t *cnt);
102: int32_t
AG903_OSPMgrGetFIFOStat(
AG903_OSPMgrHandle *handle, uint8_t *ovf, uint8_t *siz);
103: int32_t
AG903_OSPMgrSetFlag(uint32_t flag);
104: int32_t
AG903_OSPMgrClearFlag(uint32_t flag);
105: int32_t
AG903_OSPMgrGetFlagStat(uint32_t *flag);
106: int32_t
AG903_OSPMgrSetEventCntEnable(uint32_t evt, uint8_t enable, uint8_t cnt);
107: int32_t
AG903_OSPMgrGetEventStat(uint32_t evt, uint8_t *ovf, uint8_t *cnt);
108: int32_t
AG903_OSPMgrSetFIFO(
AG903_OSPMgrHandle *handle, uint32_t setcnt);
109: int32_t
AG903_OSPMgrClearFIFO(
AG903_OSPMgrHandle *handle);
110: int32_t
AG903_OSPMgrGetCommandCnt(
AG903_OSPMgrHandle *handle, uint32_t *cnt);
111: int32_t
AG903_OSPMgrClearCommand(
AG903_OSPMgrHandle *handle);
112: int32_t
AG903_OSPMgrSetCommandBuf(
AG903_OSPMgrHandle *handle,
AG903_OSPCmdBuf *param,
bool init);
113: int32_t
AG903_OSPMgrSetCommand(
AG903_OSPMgrHandle *handle,
AG903_OSPMgrCmd cmd, uint32_t param);
114:
115:
116:
#ifdef __cplusplus
117: }
118:
#endif
119:
120:
#endif