Ejemplo n.º 1
0
PVOID
__KernelAllocateMemory
    (
        ULONG                       ulSize,
        PCSTR                       pFileName,
        ULONG                       LineNumber
    )
{
    PAL_MEM_PREHEADER               pHeader;

    if ( !gMemAllocMonitorInitialized )
    {
        __KernelInitializeMemAllocMonitor();
    }

    pHeader = RealKernelAllocateMemory(ulSize + sizeof(AL_MEM_PREHEADER) + AL_MEM_POST_PAD_SIZE);

    if ( pHeader )
    {
        if ( GlobalDebugLevel >= 8 )
        {
            KernelTrace("__KernelAllocateMemory -- %s:%lu, allocated pMem = 0x%x ...\n", pFileName, LineNumber, ACCESS_MEM_FROM_PREHEADER(pHeader));
        }

        KernelZeroMemory(pHeader, ulSize + sizeof(AL_MEM_PREHEADER) + AL_MEM_POST_PAD_SIZE);

        pHeader->MemTrueSize = ulSize;

        KernelAcquireLock(&gMemAllocMonitorLock);

        gMemAllocTotalSize  += ulSize;
        gNumberMemAllocated ++;

        KernelReleaseLock(&gMemAllocMonitorLock);

        return ACCESS_MEM_FROM_PREHEADER(pHeader);
    }
    else
    {
        KernelTrace("KernelAllocateMemory -- insufficient resources for %lu bytes -- %s:%lu!!!\n", ulSize, pFileName, LineNumber);
        KernelTrace("KernelAllocateMemory -- current number of allocated = %lu, size = %lu.\n", gNumberMemAllocated, gMemAllocTotalSize);

        /*DH  DEBUG*/
        memShow(0);
        taskShow(taskIdSelf(), 1);
        checkStack(0);

        /*force an exception*/
        *(PULONG)0 = 0;

        return NULL;
    }
}
Ejemplo n.º 2
0
int main (void) {
	int gameMode = MODE_INIT;
	int playerHand;
	int enemyHand;
	int records[RECORD_MAX][2];
	int recordHeadIndex = 0;

	init(records, RECORD_MAX);

	while (1) {
		switch (gameMode) {
		case MODE_INIT:
			gameMode = taskInit();
			break;
		case MODE_OP:
			gameMode = taskOp(&playerHand);
			break;
		case MODE_CHOICE:
			gameMode = taskChoiceHand(&enemyHand);
			saveHands(records, &recordHeadIndex, playerHand, enemyHand);
			break;
		case MODE_SHOW:
			gameMode = taskShow(playerHand, enemyHand);
			break;
		case MODE_SELECT:
			gameMode = taskSelect();
			break;
		case MODE_RECORD:
			gameMode = taskRecord(records, recordHeadIndex, RECORD_MAX);
			break;
		case MODE_ED:
			gameMode = taskEd(records, recordHeadIndex, RECORD_MAX);
			return gameMode;
		}
	}
}