| /* |
| * Copyright 2001-2008 Texas Instruments - http://www.ti.com/ |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| |
| /* |
| * ======== wcdioctl.h ======== |
| * DSP-BIOS Bridge driver support functions for TI OMAP processors. |
| * Purpose: |
| * Contains structures and commands that are used for interaction |
| * between the DDSP API and class driver. |
| * |
| *! Revision History |
| *! ================ |
| *! 19-Apr-2004 sb Aligned DMM definitions with Symbian |
| *! 08-Mar-2004 sb Added the Dynamic Memory Mapping structs & offsets |
| *! 15-Oct-2002 kc Updated definitions for private PERF module. |
| *! 16-Aug-2002 map Added ARGS_MGR_REGISTEROBJECT & ARGS_MGR_UNREGISTEROBJECT |
| *! Added CMD_MGR_REGISTEROBJECT_OFFSET & |
| *! CMD_MGR_UNREGISTEROBJECT_OFFSET |
| *! 15-Jan-2002 ag Added actaul bufSize to ARGS_STRM_[RECLAIM][ISSUE]. |
| *! 15-Nov-2001 ag change to STRMINFO in ARGS_STRM_GETINFO. |
| *! 11-Sep-2001 ag ARGS_CMM_GETHANDLE defn uses DSP_HPROCESSOR. |
| *! 23-Apr-2001 jeh Added pStatus to NODE_TERMINATE args. |
| *! 13-Feb-2001 kc DSP/BIOS Bridge name updates. |
| *! 22-Nov-2000 kc: Added CMD_MGR_GETPERF_DATA_OFFSET for acquiring PERF stats. |
| *! 27-Oct-2000 jeh Added timeouts to NODE_GETMESSAGE, NODE_PUTMESSAGE args. |
| *! Removed NODE_GETMESSAGESTRM args. |
| *! 11-Oct-2000 ag: Added SM mgr(CMM) args. |
| *! 27-Sep-2000 jeh Removed struct DSP_BUFFERATTR param from ARGS_STRM_ALLOCATEBUFFER. |
| *! 25-Sep-2000 rr: Updated to Version 0.9 |
| *! 07-Sep-2000 jeh Changed HANDLE to DSP_HNOTIFICATION in RegisterNotify args. |
| *! Added DSP_STRMATTR to DSPNode_Connect args. |
| *! 04-Aug-2000 rr: MEM and UTIL added to RM. |
| *! 27-Jul-2000 rr: NODE, MGR,STRM and PROC added |
| *! 27-Jun-2000 rr: Modifed to Use either PM or DSP/BIOS Bridge |
| *! IFDEF to build for PM or DSP/BIOS Bridge |
| *! 28-Jan-2000 rr: NT_CMD_FROM_OFFSET moved out to dsptrap.h |
| *! 24-Jan-2000 rr: Merged with Scott's code. |
| *! 21-Jan-2000 sg: In ARGS_CHNL_GETMODE changed mode to be ULONG to be |
| *! consistent with chnldefs.h. |
| *! 11-Jan-2000 rr: CMD_CFG_GETCDVERSION_OFFSET added. |
| *! 12-Nov-1999 rr: CMD_BRD_MONITOR_OFFSET added |
| *! 09-Nov-1999 kc: Added MEMRY and enabled CMD_BRD_IOCTL_OFFSET. |
| *! 05-Nov-1999 ag: Added CHNL. |
| *! 02-Nov-1999 kc: Removed field from ARGS_UTIL_TESTDLL. |
| *! 29-Oct-1999 kc: Cleaned up for code review. |
| *! 08-Oct-1999 rr: Util control offsets added. |
| *! 13-Sep-1999 kc: Added ARGS_UTIL_TESTDLL for PM test infrastructure. |
| *! 19-Aug-1999 rr: Created from WSX. Minimal Implementaion of BRD_Start and BRD |
| *! and BRD_Stop. IOCTL Offsets and CTRL Code. |
| */ |
| |
| #ifndef WCDIOCTL_ |
| #define WCDIOCTL_ |
| |
| #include <mem.h> |
| #include <cmm.h> |
| #include <strmdefs.h> |
| #include <dbdcd.h> |
| |
| typedef union { |
| |
| /* MGR Module */ |
| struct { |
| UINT uNode; |
| struct DSP_NDBPROPS *pNDBProps; |
| UINT uNDBPropsSize; |
| UINT *puNumNodes; |
| } ARGS_MGR_ENUMNODE_INFO; |
| |
| struct { |
| UINT uProcessor; |
| struct DSP_PROCESSORINFO *pProcessorInfo; |
| UINT uProcessorInfoSize; |
| UINT *puNumProcs; |
| } ARGS_MGR_ENUMPROC_INFO; |
| |
| struct { |
| struct DSP_UUID *pUuid; |
| DSP_DCDOBJTYPE objType; |
| CHAR *pszPathName; |
| } ARGS_MGR_REGISTEROBJECT; |
| |
| struct { |
| struct DSP_UUID *pUuid; |
| DSP_DCDOBJTYPE objType; |
| } ARGS_MGR_UNREGISTEROBJECT; |
| |
| struct { |
| struct DSP_NOTIFICATION* *aNotifications; |
| UINT uCount; |
| UINT *puIndex; |
| UINT uTimeout; |
| } ARGS_MGR_WAIT; |
| |
| /* PROC Module */ |
| struct { |
| UINT uProcessor; |
| struct DSP_PROCESSORATTRIN *pAttrIn; |
| DSP_HPROCESSOR *phProcessor; |
| } ARGS_PROC_ATTACH; |
| |
| struct { |
| DSP_HPROCESSOR hProcessor; |
| ULONG dwCmd; |
| struct DSP_CBDATA *pArgs; |
| } ARGS_PROC_CTRL; |
| |
| struct { |
| DSP_HPROCESSOR hProcessor; |
| } ARGS_PROC_DETACH; |
| |
| struct { |
| DSP_HPROCESSOR hProcessor; |
| DSP_HNODE *aNodeTab; |
| UINT uNodeTabSize; |
| UINT *puNumNodes; |
| UINT *puAllocated; |
| } ARGS_PROC_ENUMNODE_INFO; |
| |
| struct { |
| DSP_HPROCESSOR hProcessor; |
| UINT uResourceType; |
| struct DSP_RESOURCEINFO *pResourceInfo; |
| UINT uResourceInfoSize; |
| } ARGS_PROC_ENUMRESOURCES; |
| |
| struct { |
| DSP_HPROCESSOR hProcessor; |
| struct DSP_PROCESSORSTATE *pProcStatus; |
| UINT uStateInfoSize; |
| } ARGS_PROC_GETSTATE; |
| |
| struct { |
| DSP_HPROCESSOR hProcessor; |
| BYTE *pBuf; |
| |
| #ifndef RES_CLEANUP_DISABLE |
| BYTE * pSize; |
| #endif |
| UINT uMaxSize; |
| } ARGS_PROC_GETTRACE; |
| |
| struct { |
| DSP_HPROCESSOR hProcessor; |
| INT iArgc; |
| CHAR **aArgv; |
| CHAR **aEnvp; |
| } ARGS_PROC_LOAD; |
| |
| struct { |
| DSP_HPROCESSOR hProcessor; |
| UINT uEventMask; |
| UINT uNotifyType; |
| struct DSP_NOTIFICATION* hNotification; |
| } ARGS_PROC_REGISTER_NOTIFY; |
| |
| struct { |
| DSP_HPROCESSOR hProcessor; |
| } ARGS_PROC_START; |
| |
| struct { |
| DSP_HPROCESSOR hProcessor; |
| ULONG ulSize; |
| PVOID *ppRsvAddr; |
| } ARGS_PROC_RSVMEM; |
| |
| struct { |
| DSP_HPROCESSOR hProcessor; |
| ULONG ulSize; |
| PVOID pRsvAddr; |
| } ARGS_PROC_UNRSVMEM; |
| |
| struct { |
| DSP_HPROCESSOR hProcessor; |
| PVOID pMpuAddr; |
| ULONG ulSize; |
| PVOID pReqAddr; |
| PVOID *ppMapAddr; |
| ULONG ulMapAttr; |
| } ARGS_PROC_MAPMEM; |
| |
| struct { |
| DSP_HPROCESSOR hProcessor; |
| ULONG ulSize; |
| PVOID pMapAddr; |
| } ARGS_PROC_UNMAPMEM; |
| |
| struct { |
| DSP_HPROCESSOR hProcessor; |
| PVOID pMpuAddr; |
| ULONG ulSize; |
| ULONG ulFlags; |
| } ARGS_PROC_FLUSHMEMORY; |
| |
| struct { |
| DSP_HPROCESSOR hProcessor; |
| } ARGS_PROC_STOP; |
| |
| struct { |
| DSP_HPROCESSOR hProcessor; |
| PVOID pMpuAddr; |
| ULONG ulSize; |
| } ARGS_PROC_INVALIDATEMEMORY; |
| |
| |
| /* NODE Module */ |
| struct { |
| DSP_HPROCESSOR hProcessor; |
| struct DSP_UUID *pNodeID; |
| struct DSP_CBDATA *pArgs; |
| struct DSP_NODEATTRIN *pAttrIn; |
| DSP_HNODE *phNode; |
| } ARGS_NODE_ALLOCATE; |
| |
| struct { |
| DSP_HNODE hNode; |
| UINT uSize; |
| struct DSP_BUFFERATTR *pAttr; |
| BYTE **pBuffer; |
| } ARGS_NODE_ALLOCMSGBUF; |
| |
| struct { |
| DSP_HNODE hNode; |
| INT iPriority; |
| } ARGS_NODE_CHANGEPRIORITY; |
| |
| struct { |
| DSP_HNODE hNode; |
| UINT uStream; |
| DSP_HNODE hOtherNode; |
| UINT uOtherStream; |
| struct DSP_STRMATTR *pAttrs; |
| struct DSP_CBDATA *pConnParam; |
| } ARGS_NODE_CONNECT; |
| |
| struct { |
| DSP_HNODE hNode; |
| } ARGS_NODE_CREATE; |
| |
| struct { |
| DSP_HNODE hNode; |
| } ARGS_NODE_DELETE; |
| |
| struct { |
| DSP_HNODE hNode; |
| struct DSP_BUFFERATTR *pAttr; |
| BYTE *pBuffer; |
| } ARGS_NODE_FREEMSGBUF; |
| |
| struct { |
| DSP_HNODE hNode; |
| struct DSP_NODEATTR *pAttr; |
| UINT uAttrSize; |
| } ARGS_NODE_GETATTR; |
| |
| struct { |
| DSP_HNODE hNode; |
| struct DSP_MSG *pMessage; |
| UINT uTimeout; |
| } ARGS_NODE_GETMESSAGE; |
| |
| struct { |
| DSP_HNODE hNode; |
| } ARGS_NODE_PAUSE; |
| |
| struct { |
| DSP_HNODE hNode; |
| struct DSP_MSG *pMessage; |
| UINT uTimeout; |
| } ARGS_NODE_PUTMESSAGE; |
| |
| struct { |
| DSP_HNODE hNode; |
| UINT uEventMask; |
| UINT uNotifyType; |
| struct DSP_NOTIFICATION* hNotification; |
| } ARGS_NODE_REGISTERNOTIFY; |
| |
| struct { |
| DSP_HNODE hNode; |
| } ARGS_NODE_RUN; |
| |
| struct { |
| DSP_HNODE hNode; |
| DSP_STATUS *pStatus; |
| } ARGS_NODE_TERMINATE; |
| |
| struct { |
| DSP_HPROCESSOR hProcessor; |
| struct DSP_UUID *pNodeID; |
| struct DSP_NDBPROPS *pNodeProps; |
| } ARGS_NODE_GETUUIDPROPS; |
| |
| /* STRM module */ |
| |
| struct { |
| DSP_HSTREAM hStream; |
| UINT uSize; |
| BYTE **apBuffer; |
| UINT uNumBufs; |
| } ARGS_STRM_ALLOCATEBUFFER; |
| |
| struct { |
| DSP_HSTREAM hStream; |
| } ARGS_STRM_CLOSE; |
| |
| struct { |
| DSP_HSTREAM hStream; |
| BYTE **apBuffer; |
| UINT uNumBufs; |
| } ARGS_STRM_FREEBUFFER; |
| |
| struct { |
| DSP_HSTREAM hStream; |
| HANDLE *phEvent; |
| } ARGS_STRM_GETEVENTHANDLE; |
| |
| struct { |
| DSP_HSTREAM hStream; |
| struct STRM_INFO *pStreamInfo; |
| UINT uStreamInfoSize; |
| } ARGS_STRM_GETINFO; |
| |
| struct { |
| DSP_HSTREAM hStream; |
| bool bFlush; |
| } ARGS_STRM_IDLE; |
| |
| struct { |
| DSP_HSTREAM hStream; |
| BYTE *pBuffer; |
| ULONG dwBytes; |
| ULONG dwBufSize; |
| DWORD dwArg; |
| } ARGS_STRM_ISSUE; |
| |
| struct { |
| DSP_HNODE hNode; |
| UINT uDirection; |
| UINT uIndex; |
| struct STRM_ATTR *pAttrIn; |
| DSP_HSTREAM *phStream; |
| } ARGS_STRM_OPEN; |
| |
| struct { |
| DSP_HSTREAM hStream; |
| BYTE **pBufPtr; |
| ULONG *pBytes; |
| ULONG *pBufSize; |
| DWORD *pdwArg; |
| } ARGS_STRM_RECLAIM; |
| |
| struct { |
| DSP_HSTREAM hStream; |
| UINT uEventMask; |
| UINT uNotifyType; |
| struct DSP_NOTIFICATION* hNotification; |
| } ARGS_STRM_REGISTERNOTIFY; |
| |
| struct { |
| DSP_HSTREAM *aStreamTab; |
| UINT nStreams; |
| UINT *pMask; |
| UINT uTimeout; |
| } ARGS_STRM_SELECT; |
| |
| /* CMM Module */ |
| struct { |
| struct CMM_OBJECT* hCmmMgr; |
| UINT uSize; |
| struct CMM_ATTRS *pAttrs; |
| OUT PVOID *ppBufVA; |
| } ARGS_CMM_ALLOCBUF; |
| |
| struct { |
| struct CMM_OBJECT* hCmmMgr; |
| PVOID pBufPA; |
| ULONG ulSegId; |
| } ARGS_CMM_FREEBUF; |
| |
| struct { |
| DSP_HPROCESSOR hProcessor; |
| struct CMM_OBJECT* *phCmmMgr; |
| } ARGS_CMM_GETHANDLE; |
| |
| struct { |
| struct CMM_OBJECT* hCmmMgr; |
| struct CMM_INFO *pCmmInfo; |
| } ARGS_CMM_GETINFO; |
| |
| /* MEM Module */ |
| struct { |
| ULONG cBytes; |
| MEM_POOLATTRS type; |
| PVOID pMem; |
| } ARGS_MEM_ALLOC; |
| |
| struct { |
| ULONG cBytes; |
| MEM_POOLATTRS type; |
| PVOID pMem; |
| } ARGS_MEM_CALLOC; |
| |
| struct { |
| PVOID pMem; |
| } ARGS_MEM_FREE; |
| |
| struct { |
| PVOID pBuffer; |
| ULONG cSize; |
| PVOID pLockedBuffer; |
| } ARGS_MEM_PAGELOCK; |
| |
| struct { |
| PVOID pBuffer; |
| ULONG cSize; |
| } ARGS_MEM_PAGEUNLOCK; |
| |
| /* UTIL module */ |
| struct { |
| INT cArgc; |
| CHAR **ppArgv; |
| } ARGS_UTIL_TESTDLL; |
| |
| } Trapped_Args; |
| |
| #define CMD_BASE 1 |
| |
| /* MGR module offsets */ |
| #define CMD_MGR_BASE_OFFSET CMD_BASE |
| #define CMD_MGR_ENUMNODE_INFO_OFFSET (CMD_MGR_BASE_OFFSET + 0) |
| #define CMD_MGR_ENUMPROC_INFO_OFFSET (CMD_MGR_BASE_OFFSET + 1) |
| #define CMD_MGR_REGISTEROBJECT_OFFSET (CMD_MGR_BASE_OFFSET + 2) |
| #define CMD_MGR_UNREGISTEROBJECT_OFFSET (CMD_MGR_BASE_OFFSET + 3) |
| #define CMD_MGR_WAIT_OFFSET (CMD_MGR_BASE_OFFSET + 4) |
| |
| #ifndef RES_CLEANUP_DISABLE |
| #define CMD_MGR_RESOUCES_OFFSET (CMD_MGR_BASE_OFFSET + 5) |
| #define CMD_MGR_END_OFFSET CMD_MGR_RESOUCES_OFFSET |
| #else |
| #define CMD_MGR_END_OFFSET CMD_MGR_WAIT_OFFSET |
| #endif |
| |
| #define CMD_PROC_BASE_OFFSET (CMD_MGR_END_OFFSET + 1) |
| #define CMD_PROC_ATTACH_OFFSET (CMD_PROC_BASE_OFFSET + 0) |
| #define CMD_PROC_CTRL_OFFSET (CMD_PROC_BASE_OFFSET + 1) |
| #define CMD_PROC_DETACH_OFFSET (CMD_PROC_BASE_OFFSET + 2) |
| #define CMD_PROC_ENUMNODE_OFFSET (CMD_PROC_BASE_OFFSET + 3) |
| #define CMD_PROC_ENUMRESOURCES_OFFSET (CMD_PROC_BASE_OFFSET + 4) |
| #define CMD_PROC_GETSTATE_OFFSET (CMD_PROC_BASE_OFFSET + 5) |
| #define CMD_PROC_GETTRACE_OFFSET (CMD_PROC_BASE_OFFSET + 6) |
| #define CMD_PROC_LOAD_OFFSET (CMD_PROC_BASE_OFFSET + 7) |
| #define CMD_PROC_REGISTERNOTIFY_OFFSET (CMD_PROC_BASE_OFFSET + 8) |
| #define CMD_PROC_START_OFFSET (CMD_PROC_BASE_OFFSET + 9) |
| #define CMD_PROC_RSVMEM_OFFSET (CMD_PROC_BASE_OFFSET + 10) |
| #define CMD_PROC_UNRSVMEM_OFFSET (CMD_PROC_BASE_OFFSET + 11) |
| #define CMD_PROC_MAPMEM_OFFSET (CMD_PROC_BASE_OFFSET + 12) |
| #define CMD_PROC_UNMAPMEM_OFFSET (CMD_PROC_BASE_OFFSET + 13) |
| #define CMD_PROC_FLUSHMEMORY_OFFSET (CMD_PROC_BASE_OFFSET + 14) |
| #define CMD_PROC_STOP_OFFSET (CMD_PROC_BASE_OFFSET + 15) |
| #define CMD_PROC_INVALIDATEMEMORY_OFFSET (CMD_PROC_BASE_OFFSET + 16) |
| #define CMD_PROC_END_OFFSET CMD_PROC_INVALIDATEMEMORY_OFFSET |
| |
| |
| #define CMD_NODE_BASE_OFFSET (CMD_PROC_END_OFFSET + 1) |
| #define CMD_NODE_ALLOCATE_OFFSET (CMD_NODE_BASE_OFFSET + 0) |
| #define CMD_NODE_ALLOCMSGBUF_OFFSET (CMD_NODE_BASE_OFFSET + 1) |
| #define CMD_NODE_CHANGEPRIORITY_OFFSET (CMD_NODE_BASE_OFFSET + 2) |
| #define CMD_NODE_CONNECT_OFFSET (CMD_NODE_BASE_OFFSET + 3) |
| #define CMD_NODE_CREATE_OFFSET (CMD_NODE_BASE_OFFSET + 4) |
| #define CMD_NODE_DELETE_OFFSET (CMD_NODE_BASE_OFFSET + 5) |
| #define CMD_NODE_FREEMSGBUF_OFFSET (CMD_NODE_BASE_OFFSET + 6) |
| #define CMD_NODE_GETATTR_OFFSET (CMD_NODE_BASE_OFFSET + 7) |
| #define CMD_NODE_GETMESSAGE_OFFSET (CMD_NODE_BASE_OFFSET + 8) |
| #define CMD_NODE_PAUSE_OFFSET (CMD_NODE_BASE_OFFSET + 9) |
| #define CMD_NODE_PUTMESSAGE_OFFSET (CMD_NODE_BASE_OFFSET + 10) |
| #define CMD_NODE_REGISTERNOTIFY_OFFSET (CMD_NODE_BASE_OFFSET + 11) |
| #define CMD_NODE_RUN_OFFSET (CMD_NODE_BASE_OFFSET + 12) |
| #define CMD_NODE_TERMINATE_OFFSET (CMD_NODE_BASE_OFFSET + 13) |
| #define CMD_NODE_GETUUIDPROPS_OFFSET (CMD_NODE_BASE_OFFSET + 14) |
| #define CMD_NODE_END_OFFSET CMD_NODE_GETUUIDPROPS_OFFSET |
| |
| #define CMD_STRM_BASE_OFFSET (CMD_NODE_END_OFFSET + 1) |
| #define CMD_STRM_ALLOCATEBUFFER_OFFSET (CMD_STRM_BASE_OFFSET + 0) |
| #define CMD_STRM_CLOSE_OFFSET (CMD_STRM_BASE_OFFSET + 1) |
| #define CMD_STRM_FREEBUFFER_OFFSET (CMD_STRM_BASE_OFFSET + 2) |
| #define CMD_STRM_GETEVENTHANDLE_OFFSET (CMD_STRM_BASE_OFFSET + 3) |
| #define CMD_STRM_GETINFO_OFFSET (CMD_STRM_BASE_OFFSET + 4) |
| #define CMD_STRM_IDLE_OFFSET (CMD_STRM_BASE_OFFSET + 5) |
| #define CMD_STRM_ISSUE_OFFSET (CMD_STRM_BASE_OFFSET + 6) |
| #define CMD_STRM_OPEN_OFFSET (CMD_STRM_BASE_OFFSET + 7) |
| #define CMD_STRM_RECLAIM_OFFSET (CMD_STRM_BASE_OFFSET + 8) |
| #define CMD_STRM_REGISTERNOTIFY_OFFSET (CMD_STRM_BASE_OFFSET + 9) |
| #define CMD_STRM_SELECT_OFFSET (CMD_STRM_BASE_OFFSET + 10) |
| #define CMD_STRM_END_OFFSET CMD_STRM_SELECT_OFFSET |
| |
| /* Communication Memory Manager (UCMM) */ |
| #define CMD_CMM_BASE_OFFSET (CMD_STRM_END_OFFSET + 1) |
| #define CMD_CMM_ALLOCBUF_OFFSET (CMD_CMM_BASE_OFFSET + 0) |
| #define CMD_CMM_FREEBUF_OFFSET (CMD_CMM_BASE_OFFSET + 1) |
| #define CMD_CMM_GETHANDLE_OFFSET (CMD_CMM_BASE_OFFSET + 2) |
| #define CMD_CMM_GETINFO_OFFSET (CMD_CMM_BASE_OFFSET + 3) |
| #define CMD_CMM_END_OFFSET CMD_CMM_GETINFO_OFFSET |
| |
| /* MEMRY module offsets */ |
| #define CMD_MEM_BASE_OFFSET (CMD_CMM_END_OFFSET + 1) |
| #define CMD_MEM_ALLOC_OFFSET (CMD_MEM_BASE_OFFSET + 0) |
| #define CMD_MEM_CALLOC_OFFSET (CMD_MEM_BASE_OFFSET + 1) |
| #define CMD_MEM_FREE_OFFSET (CMD_MEM_BASE_OFFSET + 2) |
| #define CMD_MEM_PAGELOCK_OFFSET (CMD_MEM_BASE_OFFSET + 3) |
| #define CMD_MEM_PAGEUNLOCK_OFFSET (CMD_MEM_BASE_OFFSET + 4) |
| #define CMD_MEM_END_OFFSET CMD_MEM_PAGEUNLOCK_OFFSET |
| |
| /* UTIL module */ |
| #define CMD_UTIL_BASE_OFFSET (CMD_MEM_END_OFFSET + 1) |
| #define CMD_UTIL_TESTDLL_OFFSET (CMD_UTIL_BASE_OFFSET + 0) |
| #define CMD_UTIL_END_OFFSET CMD_UTIL_TESTDLL_OFFSET |
| |
| /* !!! place all command modules before CMD_BASE_END_OFFSET */ |
| #define CMD_BASE_END_OFFSET CMD_UTIL_END_OFFSET |
| |
| #endif /* WCDIOCTL_ */ |