; ============================================================================= ; kdata.asm - kernel globals in fixed WRAM0 (always mapped, never swapped) ; ============================================================================= INCLUDE "include/gbos.inc" SECTION "kernel_bss", WRAM0[$C000] wProcTable:: DS MAX_PROCS * PROC_SIZE ; the process table wCurProc:: DS 2 ; pointer to running PCB wCurPid:: DS 1 ; running pid (reserved) wNextPid:: DS 1 ; pid allocator wSchedNext:: DS 1 ; round-robin cursor (slot index) wKernelPCB:: DS PROC_SIZE ; outgoing-context holder for 1st switch ; (kernel/idle context; never resumed) ; scratch used by ProcCreate wTmpEntry:: DS 2 wTmpRamB:: DS 1 wTmpWramB:: DS 1 wTmpSlot:: DS 1 wTmpPid:: DS 1 wTmpSP:: DS 2 ; cart-RAM bank allocator: 0 = free, 1 = in use. bank 0 is the init task's. wBankUsed:: DS NUM_RAM_BANKS ; scratch used by sys_fork wForkUserSP:: DS 2 ; parent user SP at fork entry (= Uafter) wForkChildSlot:: DS 1 wForkChildPid:: DS 1 wForkParentBank::DS 1 wForkChildBank:: DS 1 wCopyBuf:: DS 256 ; bank-copy bounce buffer (WRAM0, always mapped) ; scratch used by sys_exit / sys_wait wExitMyPid:: DS 1 wExitParentPid:: DS 1 wWaitMyPid:: DS 1 wWaitRetPid:: DS 1 wWaitRetCode:: DS 1 ; filesystem: open-file table + scratch wOFTable:: DS OF_MAX * OF_SIZE wFsMode:: DS 1 wFsSlot:: DS 1 wFsByte:: DS 1 wFsOFPtr:: DS 2