Topic : TOS - das Betriebssystem Author : Version : tos.hyp (5. März 2013) Subject : Programmieren/Atari Nodes : 3001 Index Size : 93602 HCP-Version : 5 Compiled on : Atari @charset : atarist @lang : @default : Titel @help : @options : +g -i -s +x +zz -t4 @width : 70 View Ref-File11.21.5 Kernelfunktionen für ein XFS TOS MagiCstellt den installierten XFSs, DFSs oder Gerätetreibern einige Kernelinformationen sowie -funktionen zur Verfügung. Bei den Kernelfunktionen gilt dieselbe Registerkonvention wie für die XFS- Funktionen, d.h. d0-d2 und a0-a2 können zerstört werden. Einen Zeiger auf die Struktur, die die Kernelfunktionen enthält, bekommt man über kernel = Dcntl (KER_INSTXFS, NULL, &myxfs); oder kernel = Dcntl (KER_GETINFO, NULL, NULL); Im ersten Fall wird ein XFS installiert, im zweiten Fall bekommt man nur die Kernelstruktur (etwa für ein DFS oder einen Gerätetreiber). Der Aufbau der Kernelstruktur im einzelnen: typedef struct { WORD mxk_version; VOID (*mxk_fast_clrmem) ( void *von, void *bis ); BYTE (*mxk_toupper) ( char c ); VOID (*mxk__sprintf) ( char *dest, char *source, LONG *p ); VOID *mxk_mxk_act_pd; APPL *mxk_act_appl; APPL *mxk_keyb_app; WORD *mxk_pe_slice; WORD *mxk_pe_timer; VOID (*mxk_appl_yield) ( void ); VOID (*mxk_appl_suspend) ( void ); VOID (*mxk_appl_begcritic) ( void ); VOID (*mxk_appl_endcritic) ( void ); LONG (*mxk_evnt_IO) ( LONG ticks_50hz, void *unsel ); VOID (*mxk_evnt_mIO) ( LONG ticks_50hz, void *unsel, WORD cnt ); VOID (*mxk_evnt_emIO) ( APPL *ap ); VOID (*mxk_appl_IOcomplete) ( APPL *ap ); LONG (*mxk_evnt_sem) ( WORD mode, void *sem, LONG timeout ); VOID (*mxk_Pfree) ( void *pd ); WORD mxk_int_msize; VOID *mxk_int_malloc ( void ); VOID mxk_int_mfree ( void *memblk ); VOID mxk_resv_intmem ( void *mem, LONG bytes ); LONG mxk_diskchange ( WORD drv ); LONG mxk_DMD_rdevinit ( DMD *dmd ); LONG mxk_proc_info ( WORD code, PD *pd ); LONG mxk_mxalloc ( d0 = LONG amount, d1 = WORD mode, a0 = PD *pd ); LONG mxk_mfree ( a0 = void *block ); LONG mxk_mshrink ( d0 = LONG newlen, a0 = void *block ); } MX_KERNEL; Querverweis: XFS-Konzept in MagiC