FreeCalypso > hg > fc-magnetite
view src/gpf2/osl/os_drv.c @ 686:59f07d67eb45
luna target split into luna1 and luna2
luna1 is FC Luna based on iWOW DSK v4.0 or v5.0 motherboard
luna2 is FC Luna based on FC Caramel2 MB
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Mon, 12 Oct 2020 18:51:24 +0000 |
parents | 045d641c9bfa |
children |
line wrap: on
line source
/* * This C module is a reconstruction based on the disassembly of * os_drv.obj in frame_na7_db_fl.lib from the Leonardo package. */ /* set of included headers from COFF symtab: */ #include "nucleus.h" #include "typedefs.h" #include "gdi.h" #include "os.h" typedef unsigned char u_char; extern OS_HANDLE os_ext_pool_handle; static u_char *HISR_Stack; static T_DRV_SIGNAL *SignalID; static void (*DrvCallback)(T_DRV_SIGNAL *); static NU_HISR CallBack_HISR; #define CB_HISR_STACK_SIZE 1024 GLOBAL LONG os_ExecuteCallback(OS_HANDLE Caller, void (*Callback)(T_DRV_SIGNAL *), T_DRV_SIGNAL *Signal) { DrvCallback = Callback; SignalID = Signal; NU_Activate_HISR(&CallBack_HISR); return(OS_OK); } static void CallbackFunc(void) { DrvCallback(SignalID); } GLOBAL LONG os_CreateCallback(void) { if (os_AllocateMemory(OS_NOTASK, (T_VOID_STRUCT **) &HISR_Stack, CB_HISR_STACK_SIZE, 0xFFFFFFFF, os_ext_pool_handle) == OS_ERROR) return(OS_ERROR); if (NU_Create_HISR(&CallBack_HISR, "CB_HISR", CallbackFunc, 2, HISR_Stack, CB_HISR_STACK_SIZE) == NU_SUCCESS) return(OS_OK); else return(OS_ERROR); }