1 #include "MsTypes.h"
2 #include "utopia_module.h"
3 #include "utopia_dapi.h"
4 #include "MsOS.h"
5 #include "utopia_private.h"
6 #include <stdio.h>
7
8
_UtopiaModule_Ioctl(void ** pInstant,MS_U32 u32Cmd,MS_U32 * pu32Args)9 MS_U32 _UtopiaModule_Ioctl(void** pInstant, MS_U32 u32Cmd, MS_U32* pu32Args)
10 {
11 switch(u32Cmd)
12 {
13 case CHANGE_DEBUG_LEVEL_BY_MODULE:
14 case HOOK_MODULE_IOCTL_BY_MODULE:
15 case HOOK_MODULE_CMD_BY_MODULE:
16 case DUMP_MODULE_HW_REGISTER:
17 case DUMP_MODULE_STRUCTURE:
18 case DUMP_INSTANT_STRUCTURE:
19 case DUMP2MEMORY_MODULE_HW_REGISTER:
20 case DUMP2MEMORY_MODULE_STRUCTURE:
21 case DUMP2MEMORY_INSTANT_STRUCTURE:
22 case SHOW_RESOURCE_STATUS_BY_MODULE:
23 ;
24 }
25 return 0;
26 }
27
28 extern char moduleNames[][40];
29 #define UTOPIA_SEM_START 0x4427 // joe's phone number
UTOPIARegisterToUtopia(FUtopiaOpen ModuleType)30 MS_U32 UTOPIARegisterToUtopia(FUtopiaOpen ModuleType)
31 {
32 MS_U32 u32ShmId, u32Addr, u32BufSize;
33
34 // return 0 for first initiaization, 1 for repeated initialization
35 MS_U32 bInitialized = MsOS_SHM_GetId((MS_U8*)"sem_key_start", sizeof(MS_U32), &u32ShmId, &u32Addr, &u32BufSize, MSOS_SHM_QUERY);
36
37 void* pUtopiaModule = NULL;
38 UtopiaModuleCreate(MODULE_UTOPIA, 0, &pUtopiaModule);
39 UtopiaModuleRegister(pUtopiaModule);
40
41 if (!bInitialized)
42 {
43 MsOS_SHM_GetId((MS_U8*)"sem_key_start", sizeof(MS_U32), &u32ShmId, &u32Addr, &u32BufSize, MSOS_SHM_CREATE);
44 *(MS_U32*)u32Addr = UTOPIA_SEM_START;
45
46 //printf("shm_info_table[%d] = sem_key_start@%p\n", (int)u32ShmId, (void*)u32Addr);
47 }
48 return 0;
49 }
50