Changeset 195 for trunk/nom/src/nomtkinit.c
- Timestamp:
- Jan 17, 2007, 7:33:51 PM (19 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/nom/src/nomtkinit.c
r193 r195 180 180 181 181 182 183 182 NOMEXTERN PNOM_ENV NOMLINK nomTkInit(void) 184 183 { … … 196 195 ((PNOM_ENV)memPtr)->cbSize=sizeof(NOM_ENV); 197 196 pGlobalNomEnv=(PNOM_ENV)memPtr; 197 198 #if 0 198 199 if(NO_ERROR!=DosCreateMutexSem(NULL, &((PNOM_ENV)memPtr)->hmtx, DC_SEM_SHARED, FALSE)) 199 200 { … … 201 202 return NULL; 202 203 } 204 #endif 203 205 204 206 return (PNOM_ENV)memPtr; 205 206 #if 0 207 nomPrintf("*************************************\n"); 208 nomPrintf("!! This function must be rewritten !!\n"); 209 nomPrintf("!! It's using OS/2 only memory !!\n"); 210 nomPrintf("!! functions. !!\n"); 211 nomPrintf("*************************************\n"); 212 213 /* Check if we already allocated our shared mem */ 214 if(NO_ERROR==DosGetNamedSharedMem(&memPtr,SOMTK_SHARED_MEM_NAME_ROOT , PAG_EXECUTE|PAG_READ|PAG_WRITE)) { 215 nomPrintf("%s: Found root shared mem: %x.\n", __FUNCTION__, memPtr); 216 /* Give process access to memory pool*/ 217 DosGetSharedMem( ((PNOM_ENV)memPtr)->pMemPool, PAG_READ|PAG_WRITE|PAG_EXECUTE); 218 if(NO_ERROR!=DosSubSetMem(((PNOM_ENV)memPtr)->pMemPool, DOSSUB_SPARSE_OBJ|DOSSUB_SERIALIZE, SOMTK_SHARED_MEM_SIZE_POOL)) { 219 DosFreeMem(memPool); 220 DosFreeMem(memPtr); 221 return NULL; 222 } 223 pGlobalNomEnv=(PNOM_ENV)memPtr; 224 return (PNOM_ENV)memPtr; 225 } 226 nomPrintf("%s: No root memory yet\n", __FUNCTION__); 227 228 /* Get the mem for the root structure in a shared memory area */ 229 if(NO_ERROR!=DosAllocSharedMem(&memPtr, SOMTK_SHARED_MEM_NAME_ROOT, SOMTK_SHARED_MEM_SIZE_ROOT, 230 PAG_COMMIT | PAG_EXECUTE | PAG_READ | PAG_WRITE)) 231 return NULL; 232 233 nomPrintf("%s: Got root memory: %x\n", __FUNCTION__, memPtr); 234 235 /* Get our shared memory pool */ 236 if(NO_ERROR!=DosAllocSharedMem(&memPool, NULL, SOMTK_SHARED_MEM_SIZE_POOL,OBJ_GETTABLE | PAG_EXECUTE|PAG_READ|PAG_WRITE)) { 237 DosFreeMem(memPtr); 238 return NULL; 239 } 240 nomPrintf("%s: Got shared memory pool: %x\n", __FUNCTION__, memPool); 241 242 /* Now init the structure */ 243 memset(memPtr, 0, 1 /*SOMTK_SHARED_MEM_SIZE_ROOT*/); 244 nomPrintf("%s: zeroed memory\n", __FUNCTION__); 245 246 ((PNOM_ENV)memPtr)->cbSize=sizeof(NOM_ENV); 247 /* Init memory pool */ 248 if(NO_ERROR!=DosSubSetMem(memPool, DOSSUB_INIT|DOSSUB_SPARSE_OBJ|DOSSUB_SERIALIZE, SOMTK_SHARED_MEM_SIZE_POOL)) { 249 DosFreeMem(memPool); 250 DosFreeMem(memPtr); 251 return NULL; 252 } 253 ((PNOM_ENV)memPtr)->pMemPool=memPool; 254 if(NO_ERROR!=DosCreateMutexSem(NULL, &((PNOM_ENV)memPtr)->hmtx, DC_SEM_SHARED, FALSE)) 255 { 256 DosFreeMem(memPool); 257 DosFreeMem(memPtr); 258 return NULL; 259 } 260 pGlobalNomEnv=(PNOM_ENV)memPtr; 261 262 return (PNOM_ENV)memPtr; 263 #endif 264 } 265 266 267 268 269 270 271 272 273 274 275 207 } 208 209 210 211 212 213 214 215 216 217 218
Note:
See TracChangeset
for help on using the changeset viewer.