/******************************************************************************** system.h: Ultra 64 MARIO Brothers include file Copyright (c) 1996 Nintendo co., ltd. All rights reserved January 17, 1996 ********************************************************************************/ #ifndef SYSTEM_H #define SYSTEM_H #include "scheduler.h" #define malloc(size) AllocHeap(systemHeap,size) #define free(addr) FreeHeap(systemHeap,addr) /*------------------------------------------------------------------------------- * Length of message buffer. */ #define NUM_DMA_MESSAGES 1 #define NUM_PAD_MESSAGES 1 #define NUM_PIM_MESSAGES 32 #define NUM_SCD_MESSAGES 16 #define NUM_TSK_MESSAGES 16 /*------------------------------------------------------------------------------- * Priority of system threads. */ #define PRIORITY_SYSTEM 100 #define PRIORITY_AUDIO 20 #define PRIORITY_GRAPHICS 10 /******************************************************************************** * * External buffers * ********************************************************************************/ extern uwlong bootThreadStack[BOOT_STACKSIZE64]; /* boot thread stack memory */ extern uwlong idleThreadStack[IDLE_STACKSIZE64]; /* idel thread stack memory */ extern uwlong mainThreadStack[MAIN_STACKSIZE64]; /* main thread stack memory */ extern uwlong audioThreadStack[MAIN_STACKSIZE64]; /* audio thread stack memory */ extern uwlong graphThreadStack[MAIN_STACKSIZE64]; /* graphic thread stack memory */ extern uwlong motorThreadStack[MAIN_STACKSIZE64]; /* motor thread stack memory */ extern uwlong datYieldBuffer[DAT_YIELD_SIZE64]; // extern uwlong audYieldBuffer[AUD_YIELD_SIZE64]; extern uwlong freeZoneStart; /******************************************************************************** * * External works * ********************************************************************************/ extern char sysDebugFlag; /* debug flag */ extern char sysGvdActive; /* gvd active flag */ extern char sysProcessMeter; /* process meter active flag */ extern char sysDebugMessage; /* debug message active flag */ extern char sysHardwareReset; /* hardware reset flag */ extern char sysWipeCounter; /* hardware reset wipe counter */ extern ulong videoFrame; /* videl frame counter */ /*-------------------------------------------------------------------------------- * Thread message works */ extern OSIoMesg dmaIOMessageBuf; /* DMA I/O message buffer */ extern OSMesg dummyMessage; /* dummy message data */ extern OSMesgQueue dmaMessageQ; /* for DMA */ extern OSMesgQueue padMessageQ; /* for controller pad */ /********************************************************************************/ /* */ /* System function prototypes */ /* */ /********************************************************************************/ extern void SysChangeDebugMode(void); extern void BootProcess(void); /********************************************************************************/ /* */ /* Time manager function prototypes */ /* */ /********************************************************************************/ extern void SetGraphCPUTime(int num); extern void SetAudioCPUTime(void); extern void SetGraphRCPTime(int num); extern void SetAudioRCPTime(void); extern void DisplayProcTime(void); #endif