*/ #include <aros/libcall.h> #ifndef NULL #define NULL ((void *)0) #endif #include "kernel.h" #include "libdefs.h" extern void AROS_SLIB_ENTRY(BusToPhys,BASENAME) (void); extern void AROS_SLIB_ENTRY(PhysToBus,BASENAME) (void); extern void AROS_SLIB_ENTRY(OutB,BASENAME) (void); extern void AROS_SLIB_ENTRY(OutW,BASENAME) (void); extern void AROS_SLIB_ENTRY(OutL,BASENAME) (void); extern void AROS_SLIB_ENTRY(InB,BASENAME) (void); extern void AROS_SLIB_ENTRY(InW,BASENAME) (void); extern void AROS_SLIB_ENTRY(InL,BASENAME) (void); void *const LIBFUNCTABLE[VECTOR_COUNT+1]= { AROS_SLIB_ENTRY(BusToPhys,BASENAME), AROS_SLIB_ENTRY(PhysToBus,BASENAME), AROS_SLIB_ENTRY(OutB,BASENAME), AROS_SLIB_ENTRY(OutW,BASENAME), AROS_SLIB_ENTRY(OutL,BASENAME), AROS_SLIB_ENTRY(InB,BASENAME), AROS_SLIB_ENTRY(InW,BASENAME), AROS_SLIB_ENTRY(InL,BASENAME), (void *)-1L };
* palmpda class for poseidon *---------------------------------------------------------------------------- * By Chris Hodges <*****@*****.**> */ #include "debug.h" #include "palmpda.class.h" /* /// "Lib Stuff" */ static const STRPTR libname = MOD_NAME_STRING; static const APTR DevFuncTable[] = { &AROS_SLIB_ENTRY(devOpen, dev, 1), &AROS_SLIB_ENTRY(devClose, dev, 2), &AROS_SLIB_ENTRY(devExpunge, dev, 3), &AROS_SLIB_ENTRY(devReserved, dev, 4), &AROS_SLIB_ENTRY(devBeginIO, dev, 5), &AROS_SLIB_ENTRY(devAbortIO, dev, 6), (APTR) -1, }; static int libInit(LIBBASETYPEPTR nh) { struct NepSerialBase *ret = NULL; KPRINTF(10, ("libInit nh: 0x%08lx SysBase: 0x%08lx\n", nh, SysBase)); nh->nh_UtilityBase = OpenLibrary("utility.library", 39);
(APTR)&LIBEND, RTF_COLDSTART, 41, NT_RESOURCE, 45, (UBYTE *)name, (UBYTE *)&version[6], (ULONG *)&AROS_SLIB_ENTRY(init,BASENAME) }; static const UBYTE name[] = NAME_STRING; static const UBYTE version[] = VERSION_STRING; static const void * const LIBFUNCTABLE[] = { &AROS_SLIB_ENTRY(ResetBattClock,BASENAME), &AROS_SLIB_ENTRY(ReadBattClock,BASENAME), &AROS_SLIB_ENTRY(WriteBattClock,BASENAME), (void *)-1 }; AROS_UFH3(struct BattClockBase *, AROS_SLIB_ENTRY(init,BASENAME), AROS_UFHA(ULONG, dummy, D0), AROS_UFHA(ULONG, slist, A0), AROS_UFHA(struct ExecBase *, SysBase, A6) ) { UWORD neg = AROS_ALIGN(LIB_VECTSIZE * 3); struct BattClockBase * BattClockBase = NULL; BattClockBase = (struct BattClockBase *)(((UBYTE *)
(STRPTR)name, (STRPTR)&version[7], (ULONG *)inittabl }; const UBYTE name[]=LANGSTR ".language"; const UBYTE version[]=LANGTAG; const ULONG datatable = 0; const APTR inittabl[4] = { (APTR)sizeof(struct Language), (APTR)functable, (APTR)&datatable, &AROS_SLIB_ENTRY(init,language) }; struct ExecBase *mySysBase; AROS_UFH3(struct Language *, AROS_SLIB_ENTRY(init,language), AROS_UFHA(struct Language *, language, D0), AROS_UFHA(BPTR, segList, A0), AROS_UFHA(struct ExecBase *, SysBase, A6) ) { AROS_USERFUNC_INIT /* You could just as easily do this bit as the InitResident() datatable, however this works just as well.
* Null used in both function tables */ extern VOID AROS_SLIB_ENTRY(Null, LIB)(VOID); /* * "declarations" for ExecLibraryList_funcTable functions. */ extern VOID AROS_SLIB_ENTRY(Open, ELL)(); extern VOID AROS_SLIB_ENTRY(Expunge, ELL)(); f_void ExecLibraryList_funcTable[] = { #ifdef __MORPHOS__ (f_void)FUNCARRAY_32BIT_NATIVE, #endif AROS_SLIB_ENTRY(Open, ELL), #warning "TODO: NicJA - LIB_Null??" #if defined(__AROS__) NULL, #else AROS_SLIB_ENTRY(Null, LIB), /* ELL_Close() is never called */ #endif AROS_SLIB_ENTRY(Expunge, ELL), #warning "TODO: NicJA - LIB_Null??" #if defined(__AROS__) NULL, #else AROS_SLIB_ENTRY(Null, LIB), /* ELL_Reserved() */ #endif (f_void)-1 };