xref: /utopia/UTPA2-700.0.x/modules/msos/utopia_core/linux_kernel/utopia_module.c (revision 53ee8cc121a030b8d368113ac3e966b4705770ef)
1 #include "MsOS.h"
2 #include "MsTypes.h"
3 #include "utopia_module.h"
4 #include "utopia_dapi.h"
5 #include "utopia_private.h"
6 #include "utopia.h"
7 
8 #if !defined(MSOS_TYPE_LINUX_KERNEL)
9 #include <stdio.h>
10 #endif
11 
_UtopiaModule_Ioctl(void ** pInstant,MS_U32 u32Cmd,MS_U32 * pu32Args)12 MS_U32 _UtopiaModule_Ioctl(void** pInstant, MS_U32 u32Cmd, MS_U32* pu32Args)
13 {
14     switch(u32Cmd)
15     {
16         case CHANGE_DEBUG_LEVEL_BY_MODULE:
17         case HOOK_MODULE_IOCTL_BY_MODULE:
18         case HOOK_MODULE_CMD_BY_MODULE:
19         case DUMP_MODULE_HW_REGISTER:
20         case DUMP_MODULE_STRUCTURE:
21         case DUMP_INSTANT_STRUCTURE:
22         case DUMP2MEMORY_MODULE_HW_REGISTER:
23         case DUMP2MEMORY_MODULE_STRUCTURE:
24         case DUMP2MEMORY_INSTANT_STRUCTURE:
25         case SHOW_RESOURCE_STATUS_BY_MODULE:
26 			;
27     }
28 	return 0;
29 }
30 
31 extern char moduleNames[][40];
32 #define UTOPIA_SEM_START 0x4427U // joe's phone number
UTOPIARegisterToUtopia(FUtopiaOpen ModuleType)33 MS_U32 UTOPIARegisterToUtopia(FUtopiaOpen ModuleType)
34 {
35 	MS_U32 u32ShmId, u32BufSize;
36 	MS_VIRT vaShm;
37 
38 	//MsOS_Init(); // contain MsOS_SHM_Init()
39 	//MsOS_SHM_Init();
40 
41 	// return 0 for first initiaization, 1 for repeated initialization
42 	MS_U32 bInitialized = MsOS_SHM_GetId((MS_U8*)"sem_key_start", sizeof(MS_U32), &u32ShmId, &vaShm, &u32BufSize, MSOS_SHM_QUERY);
43 
44 	void* pUtopiaModule = NULL;
45 	UtopiaModuleCreate(MODULE_UTOPIA, 0, &pUtopiaModule);
46 	UtopiaModuleRegister(pUtopiaModule);
47 	//TOPIA_RESOURCE* psResource = (UTOPIA_RESOURCE*)UtopiaResourceCreate("SemStartKey", sizeof(int));
48 
49 	if (!bInitialized)
50 	{
51 		if(FALSE == MsOS_SHM_GetId((MS_U8*)"sem_key_start", sizeof(MS_U32), &u32ShmId, &vaShm, &u32BufSize, MSOS_SHM_CREATE))
52 		{
53 			printu("[utopia shm error] something wrong in MsOS_SHM_GetId\n");
54 			printu("is SHM_SIZE reached?\n");
55 			printu("is MAX_SHM_CLIENT_NUM reached?\n");
56 			return UTOPIA_STATUS_FAIL;
57 		}
58 		*(MS_U32*)vaShm = UTOPIA_SEM_START;
59 	}
60 	return 0;
61 }
62