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 #include "ULog.h"
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 //MsOS_Init(); // contain MsOS_SHM_Init()
35 //MsOS_SHM_Init();
36
37 // return 0 for first initiaization, 1 for repeated initialization
38 MS_U32 bInitialized = MsOS_SHM_GetId((MS_U8*)"MS_MODULE_UTOPIA", sizeof(UTOPIA_MODULE_SHM), &u32ShmId, &u32Addr, &u32BufSize, MSOS_SHM_QUERY);
39
40 void* pUtopiaModule = NULL;
41 UtopiaModuleCreate(MODULE_UTOPIA, 0, &pUtopiaModule);
42 UtopiaModuleRegister(pUtopiaModule);
43 //TOPIA_RESOURCE* psResource = (UTOPIA_RESOURCE*)UtopiaResourceCreate("SemStartKey", sizeof(int));
44 UTOPIA_RESOURCE* psResource = NULL;
45 UtopiaResourceCreate("SemStartKey", sizeof(int), (void**)&psResource);
46
47 if (!bInitialized)
48 {
49 //MS_U32* pu32SemKey = (MS_U32*)shmid2va(psResource->shmid_private.ID);
50 MS_U32* pu32SemKey = NULL;
51 printf("\n%s, %d\n", __FUNCTION__, __LINE__); // bob.fu
52 UtopiaResourceGetPrivate(psResource, (void**)&pu32SemKey);
53 printf("\n%s, %d, %p\n", __FUNCTION__, __LINE__, pu32SemKey); // bob.fu
54 *pu32SemKey = UTOPIA_SEM_START;
55 }
56 UtopiaResourceRegister(pUtopiaModule, psResource, UTOPIA_POOL_ID_DATA);
57 return 1;
58 }
59