@@ -147,12 +147,6 @@
/* Used to get dspbridge ioctl table */
#define DB_GET_IOC_TABLE(cmd) (DB_GET_MODULE(cmd) >> DB_MODULE_SHIFT)
-/* Device IOCtl function pointer */
-struct WCD_Cmd {
- u32(*fxn)(union Trapped_Args *args, void *pr_ctxt);
- u32 dwIndex;
-} ;
-
/* ----------------------------------- Globals */
#if GT_TRACE
static struct GT_Mask WCD_debugMask = { NULL, NULL }; /* Core VxD Mask */
@@ -167,80 +161,80 @@ static u32 WCD_cRefs;
*/
/* MGR wrapper functions */
-static struct WCD_Cmd mgr_cmd[] = {
- {MGRWRAP_EnumNode_Info}, /* MGR_ENUMNODE_INFO */
- {MGRWRAP_EnumProc_Info}, /* MGR_ENUMPROC_INFO */
- {MGRWRAP_RegisterObject}, /* MGR_REGISTEROBJECT */
- {MGRWRAP_UnregisterObject}, /* MGR_UNREGISTEROBJECT */
- {MGRWRAP_WaitForBridgeEvents}, /* MGR_WAIT */
+static u32 (*mgr_cmd[])(union Trapped_Args *args, void *pr_ctxt) = {
+ MGRWRAP_EnumNode_Info, /* MGR_ENUMNODE_INFO */
+ MGRWRAP_EnumProc_Info, /* MGR_ENUMPROC_INFO */
+ MGRWRAP_RegisterObject, /* MGR_REGISTEROBJECT */
+ MGRWRAP_UnregisterObject, /* MGR_UNREGISTEROBJECT */
+ MGRWRAP_WaitForBridgeEvents, /* MGR_WAIT */
#ifndef RES_CLEANUP_DISABLE
- {MGRWRAP_GetProcessResourcesInfo}, /* MGR_GET_PROC_RES */
+ MGRWRAP_GetProcessResourcesInfo, /* MGR_GET_PROC_RES */
#else
- {NULL},
+ NULL,
#endif
};
/* PROC wrapper functions */
-static struct WCD_Cmd proc_cmd[] = {
- {PROCWRAP_Attach}, /* PROC_ATTACH */
- {PROCWRAP_Ctrl}, /* PROC_CTRL */
- {PROCWRAP_Detach}, /* PROC_DETACH */
- {PROCWRAP_EnumNode_Info}, /* PROC_ENUMNODE */
- {PROCWRAP_EnumResources}, /* PROC_ENUMRESOURCES */
- {PROCWRAP_GetState}, /* PROC_GET_STATE */
- {PROCWRAP_GetTrace}, /* PROC_GET_TRACE */
- {PROCWRAP_Load}, /* PROC_LOAD */
- {PROCWRAP_RegisterNotify}, /* PROC_REGISTERNOTIFY */
- {PROCWRAP_Start}, /* PROC_START */
- {PROCWRAP_ReserveMemory}, /* PROC_RSVMEM */
- {PROCWRAP_UnReserveMemory}, /* PROC_UNRSVMEM */
- {PROCWRAP_Map}, /* PROC_MAPMEM */
- {PROCWRAP_UnMap}, /* PROC_UNMAPMEM */
- {PROCWRAP_FlushMemory}, /* PROC_FLUSHMEMORY */
- {PROCWRAP_Stop}, /* PROC_STOP */
- {PROCWRAP_InvalidateMemory}, /* PROC_INVALIDATEMEMORY */
+static u32 (*proc_cmd[])(union Trapped_Args *args, void *pr_ctxt) = {
+ PROCWRAP_Attach, /* PROC_ATTACH */
+ PROCWRAP_Ctrl, /* PROC_CTRL */
+ PROCWRAP_Detach, /* PROC_DETACH */
+ PROCWRAP_EnumNode_Info, /* PROC_ENUMNODE */
+ PROCWRAP_EnumResources, /* PROC_ENUMRESOURCES */
+ PROCWRAP_GetState, /* PROC_GET_STATE */
+ PROCWRAP_GetTrace, /* PROC_GET_TRACE */
+ PROCWRAP_Load, /* PROC_LOAD */
+ PROCWRAP_RegisterNotify, /* PROC_REGISTERNOTIFY */
+ PROCWRAP_Start, /* PROC_START */
+ PROCWRAP_ReserveMemory, /* PROC_RSVMEM */
+ PROCWRAP_UnReserveMemory, /* PROC_UNRSVMEM */
+ PROCWRAP_Map, /* PROC_MAPMEM */
+ PROCWRAP_UnMap, /* PROC_UNMAPMEM */
+ PROCWRAP_FlushMemory, /* PROC_FLUSHMEMORY */
+ PROCWRAP_Stop, /* PROC_STOP */
+ PROCWRAP_InvalidateMemory, /* PROC_INVALIDATEMEMORY */
};
/* NODE wrapper functions */
-static struct WCD_Cmd node_cmd[] = {
- {NODEWRAP_Allocate}, /* NODE_ALLOCATE */
- {NODEWRAP_AllocMsgBuf}, /* NODE_ALLOCMSGBUF */
- {NODEWRAP_ChangePriority}, /* NODE_CHANGEPRIORITY */
- {NODEWRAP_Connect}, /* NODE_CONNECT */
- {NODEWRAP_Create}, /* NODE_CREATE */
- {NODEWRAP_Delete}, /* NODE_DELETE */
- {NODEWRAP_FreeMsgBuf}, /* NODE_FREEMSGBUF */
- {NODEWRAP_GetAttr}, /* NODE_GETATTR */
- {NODEWRAP_GetMessage}, /* NODE_GETMESSAGE */
- {NODEWRAP_Pause}, /* NODE_PAUSE */
- {NODEWRAP_PutMessage}, /* NODE_PUTMESSAGE */
- {NODEWRAP_RegisterNotify}, /* NODE_REGISTERNOTIFY */
- {NODEWRAP_Run}, /* NODE_RUN */
- {NODEWRAP_Terminate}, /* NODE_TERMINATE */
- {NODEWRAP_GetUUIDProps}, /* NODE_GETUUIDPROPS */
+static u32 (*node_cmd[])(union Trapped_Args *args, void *pr_ctxt) = {
+ NODEWRAP_Allocate, /* NODE_ALLOCATE */
+ NODEWRAP_AllocMsgBuf, /* NODE_ALLOCMSGBUF */
+ NODEWRAP_ChangePriority, /* NODE_CHANGEPRIORITY */
+ NODEWRAP_Connect, /* NODE_CONNECT */
+ NODEWRAP_Create, /* NODE_CREATE */
+ NODEWRAP_Delete, /* NODE_DELETE */
+ NODEWRAP_FreeMsgBuf, /* NODE_FREEMSGBUF */
+ NODEWRAP_GetAttr, /* NODE_GETATTR */
+ NODEWRAP_GetMessage, /* NODE_GETMESSAGE */
+ NODEWRAP_Pause, /* NODE_PAUSE */
+ NODEWRAP_PutMessage, /* NODE_PUTMESSAGE */
+ NODEWRAP_RegisterNotify, /* NODE_REGISTERNOTIFY */
+ NODEWRAP_Run, /* NODE_RUN */
+ NODEWRAP_Terminate, /* NODE_TERMINATE */
+ NODEWRAP_GetUUIDProps, /* NODE_GETUUIDPROPS */
};
/* STRM wrapper functions */
-static struct WCD_Cmd strm_cmd[] = {
- {STRMWRAP_AllocateBuffer}, /* STRM_ALLOCATEBUFFER */
- {STRMWRAP_Close}, /* STRM_CLOSE */
- {STRMWRAP_FreeBuffer}, /* STRM_FREEBUFFER */
- {STRMWRAP_GetEventHandle}, /* STRM_GETEVENTHANDLE */
- {STRMWRAP_GetInfo}, /* STRM_GETINFO */
- {STRMWRAP_Idle}, /* STRM_IDLE */
- {STRMWRAP_Issue}, /* STRM_ISSUE */
- {STRMWRAP_Open}, /* STRM_OPEN */
- {STRMWRAP_Reclaim}, /* STRM_RECLAIM */
- {STRMWRAP_RegisterNotify}, /* STRM_REGISTERNOTIFY */
- {STRMWRAP_Select}, /* STRM_SELECT */
+static u32 (*strm_cmd[])(union Trapped_Args *args, void *pr_ctxt) = {
+ STRMWRAP_AllocateBuffer, /* STRM_ALLOCATEBUFFER */
+ STRMWRAP_Close, /* STRM_CLOSE */
+ STRMWRAP_FreeBuffer, /* STRM_FREEBUFFER */
+ STRMWRAP_GetEventHandle, /* STRM_GETEVENTHANDLE */
+ STRMWRAP_GetInfo, /* STRM_GETINFO */
+ STRMWRAP_Idle, /* STRM_IDLE */
+ STRMWRAP_Issue, /* STRM_ISSUE */
+ STRMWRAP_Open, /* STRM_OPEN */
+ STRMWRAP_Reclaim, /* STRM_RECLAIM */
+ STRMWRAP_RegisterNotify, /* STRM_REGISTERNOTIFY */
+ STRMWRAP_Select, /* STRM_SELECT */
};
/* CMM wrapper functions */
-static struct WCD_Cmd cmm_cmd[] = {
- {CMMWRAP_CallocBuf}, /* CMM_ALLOCBUF */
- {CMMWRAP_FreeBuf}, /* CMM_FREEBUF */
- {CMMWRAP_GetHandle}, /* CMM_GETHANDLE */
- {CMMWRAP_GetInfo}, /* CMM_GETINFO */
+static u32 (*cmm_cmd[])(union Trapped_Args *args, void *pr_ctxt) = {
+ CMMWRAP_CallocBuf, /* CMM_ALLOCBUF */
+ CMMWRAP_FreeBuf, /* CMM_FREEBUF */
+ CMMWRAP_GetHandle, /* CMM_GETHANDLE */
+ CMMWRAP_GetInfo, /* CMM_GETINFO */
};
/* Array used to store ioctl table sizes. It can hold up to 8 entries */
@@ -323,19 +317,19 @@ inline DSP_STATUS WCD_CallDevIOCtl(u32 cmd, union Trapped_Args *args,
switch (DB_GET_MODULE(cmd)) {
case DB_MGR:
- ioctl_cmd = mgr_cmd[i].fxn;
+ ioctl_cmd = mgr_cmd[i];
break;
case DB_PROC:
- ioctl_cmd = proc_cmd[i].fxn;
+ ioctl_cmd = proc_cmd[i];
break;
case DB_NODE:
- ioctl_cmd = node_cmd[i].fxn;
+ ioctl_cmd = node_cmd[i];
break;
case DB_STRM:
- ioctl_cmd = strm_cmd[i].fxn;
+ ioctl_cmd = strm_cmd[i];
break;
case DB_CMM:
- ioctl_cmd = cmm_cmd[i].fxn;
+ ioctl_cmd = cmm_cmd[i];
break;
}