first commit - moved from local dev to git

This commit is contained in:
firebee
2022-10-02 10:09:40 +02:00
commit bbb3ef9333
1861 changed files with 167960 additions and 0 deletions

View File

@@ -0,0 +1,36 @@
/*
* BASEPAGE.H Definition of the basepage structure
*/
#ifndef _MINT_BASEPAGE_H
# define _MINT_BASEPAGE_H 1
#ifndef _FEATURES_H
# include <features.h>
#endif
__BEGIN_DECLS
typedef struct basep {
char *p_lowtpa; /* pointer to self (bottom of TPA) */
char *p_hitpa; /* pointer to top of TPA + 1 */
char *p_tbase; /* base of text segment */
long p_tlen; /* length of text segment */
char *p_dbase; /* base of data segment */
long p_dlen; /* length of data segment */
char *p_bbase; /* base of BSS segment */
long p_blen; /* length of BSS segment */
char *p_dta; /* (UNOFFICIAL, DON'T USE) */
struct basep *p_parent; /* pointer to parent's basepage */
char *p_reserved; /* reserved for future use */
char *p_env; /* pointer to environment string */
char p_junk[8];
long p_undef[18]; /* scratch area... don't touch */
char p_cmdlin[128]; /* command line image */
} BASEPAGE;
extern BASEPAGE *_base;
__END_DECLS
#endif /* _MINT_BASEPAGE_H */

View File

@@ -0,0 +1,569 @@
#ifndef _cookie_h_
#define _cookie_h_
/* This cookie list was generated from cookie.dat (Kelly's MiNT-Setter) */
/* Some defines had had to be renamed because some cookie names containing */
/* 'non-define-able' characters. For this special characters '_' were */
/* inserted (e.g. LP/2 -> C_LP_2, UN*X -> C_UN_X) */
#define C_3DMN 0x33444D4EL /* 3D-Menu */
#define C_3RDB 0x33524442L /* Third Button */
#define C_60Hz 0x3630487AL /* 60Hz resident */
#define C_A2sv 0x41327376L /* Trapsave */
#define C_ACCS 0x41434353L /* ACC.PRG */
#define C_AFnt 0x41466E74L /* AES Font Loader */
#define C_AgK0 0x41674B30L /* AusGuck RAMdisk */
#define C_AHVR 0x41485652L /* VRAM */
#define C_ALHP 0x414C4850L /* Alman HP Deskjet Screendumper */
#define C_ALIC 0x414C4943L /* Alice */
#define C_ALRM 0x414C524DL /* Driver for DIGIFON TDS3000 */
#define C_AmAN 0x416D414EL /* A-MAN */
#define C_AMC1 0x414D4331L /* Monitor Switchbox */
#define C_AMC2 0x414D4332L /* PC Keyboard Driver Software */
#define C_ANSe 0x414E5365L /* ANSI-Emulation */
#define C_APGM 0x4150474DL /* SysGem by Andreas Pietsch */
#define C_ARTS 0x41525453L /* Screen-Artist screensaver */
#define C_asGT 0x61734754L /* Wacom Graphiktablett Driver */
#define C_ASum 0x4153756DL /* ASUNLENK */
#define C_AVmw 0x41566D77L /* Virus Warning Program */
#define C_AVOJ 0x41564F4AL /* Oliver Joppich's Anti Virus program */
#define C_BASH 0x42415348L /* Bourne Again Shell */
#define C_BBD2 0x42424432L /* Bastel-Bus-Treiber V2.xx */
#define C_BCKW 0x42434B57L /* BackWard */
#define C_BGEM 0x4247454DL /* BubbleGEM */
#define C_BGHD 0x42474844L /* BubbleGEM-Help-D<>mon */
#define C_BHdl 0x4248646CL /* BadHandle */
#define C_BHLP 0x42484C50L /* BubbleGEM Konficookie */
#define C_BIGS 0x42494753L /* Big Screen */
#define C_BIOC 0x42494F43L /* Pirosca */
#define C_BLNK 0x424C4E4BL /* Screenblanker */
#define C_BLOW 0x424C4F57L /* Blowup030 */
#define C_BSIM 0x4253494DL /* Drive B Simulator */
#define C_BUG1 0x42554731L /* Bugaboo Debugger */
#define C_C24P 0x43323450L /* CyRel 24Bit-Patch */
#define C_CACH 0x43414348L /* Cache-Control */
#define C_CALD 0x43414C44L /* Computer Aided Loudspeaker Desgin */
#define C_CASE 0x43415345L /* Casing Type Gemini */
#define C_CatS 0x43617453L /* CatStick */
#define C_CaTT 0x43615454L /* CyRel Cattamaran */
#define C_CB2K 0x4342324BL /* Claus Brod GEMDOS Bug Patch */
#define C_CBCE 0x43424345L /* Claus Brod Critical Error Handler Patch */
#define C_CBDF 0x43424446L /* Claus Brod Dabbel Feature */
#define C_CBHD 0x43424844L /* Claus Brod HD Driver */
#define C_CBHY 0x43424859L /* Claus Brod Hyper Format */
#define C_CBIT 0x43424954L /* C'T Bus Interface Driver */
#define C_CCDA 0x43434441L /* Tempus Word */
#define C_cdMC 0x63644D43L /* CDROM.XFS */
#define C_CFIX 0x43464958L /* Console Fix */
#define C_CFsl 0x4346736CL /* Compo FSel */
#define C_CHAM 0x4348414DL /* Chameleon */
#define C_CHN1 0x43484E31L /* Changes */
#define C_CHNG 0x43484E47L /* Changes */
#define C_CHTW 0x43485457L /* Chatwin */
#define C_CISY 0x43495359L /* CISYSTEM */
#define C_CISY 0x43495359L /* Cisystem */
#define C_CJAR 0x434A4152L /* Cookie.prg */
#define C_CJar 0x434A6172L /* JarXXX Program */
#define C_CKBD 0x434B4244L /* Composed Character Deluxe Keyboard Driver */
#define C_CKJR 0x434B4A52L /* Create Cookie Jar Program */
#define C_CLCK 0x434C434BL /* Mega-ST Hardware clock TSR Utilities */
#define C_CLK1 0x434C4B31L /* MEGA ST Clock Utility */
#define C_CLOK 0x434C4F4BL /* CLOK for GMT settings (?) */
#define C_CM16 0x434D3136L /* CyReL's M16 Versatile Installation Program */
#define C_CNTS 0x434E5453L /* CentScreen */
#define C_COLO 0x434F4C4FL /* Colos Mono-Colour Converter */
#define C_CPSL 0x4350534CL /* Caps Lock Display */
#define C_CRAC 0x43524143L /* Protar HD Driver */
#define C_CRIT 0x43524954L /* Crypt-It */
#define C_CSMD 0x43534D44L /* CyReL's Serial Mouse Manager */
#define C_CT60 0x43543630L /* CT60 present */
#define C_CTCH 0x43544348L /* Master-Module Catch.mmx */
#define C_CtCp 0x43744370L /* CapsLock Display */
#define C_CTSF 0x43545346L /* CTS Bug Fix */
#define C_cVDI 0x63564449L /* CyReL's M-16-1280 VDI Driver */
#define C_CWCo 0x4357436FL /* Compo FSel */
#define C_DATE 0x44415445L /* Led Panel Date */
#define C_DATL 0x4441544CL /* TwiLight */
#define C_DAWN 0x4441574EL /* Before Dawn */
#define C_DBFX 0x44424658L /* Diabalo Emulator patch fix for MiNT */
#define C_DCdd 0x44436464L /* Double-Click Software Data Diet */
#define C_DCF7 0x44434637L /* DCF77 */
#define C_DECD 0x44454344L /* DECDriver Cookie */
#define C_DEPI 0x44455049L /* DeskPic */
#define C_DHST 0x44485354L /* Document History Protocol */
#define C_DIG2 0x44494732L /* Digiplay by Emmanuel Jaccard */
#define C_DJBX 0x444A4258L /* DeskJet-Init BIOS-Erweiterung */
#define C_DKEY 0x444B4559L /* Dead Key from Brainstorm */
#define C_DNTR 0x444E5452L /* DNT ramdisk */
#define C_DPRS 0x44505253L /* Printer Buffer */
#define C_DRIV 0x44524956L /* Drive Edit */
#define C_DRRH 0x44525248L /* Wodan Keyboard Layout Program */
#define C_Dsel 0x4473656CL /* Dsel - Systemkern f<>r Fileselector */
#define C_DSSO 0x4453534FL /* Sokrates Keyboard Driver */
#define C_DYJA 0x44594A41L /* CCONRS.PRG */
#define C_DYJD 0x44594A44L /* Dosound */
#define C_DYJT 0x44594A54L /* ToBig */
#define C_DYNL 0x44594E4CL /* Dynamic Link Library Driver */
#define C_DYWL 0x4459574CL /* WIN_LNK */
#define C_EADC 0x45414443L /* Easydisc - Ramdisk */
#define C_EBPO 0x4542504FL /* EB Modeleur Universel Modeler */
#define C_EdDI 0x45644449L /* EdDI by Sven&Wilfried Behne, BELA */
#define C_EDFX 0x45444658L /* EDPBFIX.PRG */
#define C_EGON 0x45474F4EL /* EGON! CD-ROM Driver */
#define C_EMNP 0x454D4E50L /* MNP emulator */
#define C_ENV_ 0x454E565FL /* Desktop environment manager */
#define C_ENVN 0x454E564EL /* Environ.prg - setzt GEM-Environment */
#define C_ENVR 0x454E5652L /* Environment manager */
#define C_EPro 0x4550726FL /* Extendos Pro CD-ROM Driver */
#define C_EURO 0x4555524FL /* Euro-Zeichen */
#define C_EXRA 0x45585241L /* Extra RAM Speeder Card Software */
#define C_EXTD 0x45585444L /* TOS File Name Extender */
#define C_FaKE 0x46614B45L /* FakeMiNT */
#define C_FALT 0x46414C54L /* Faltoff Screen() MEGA STE bufixer */
#define C_FAXR 0x46415852L /* FaxRedirector */
#define C_FHFX 0x46484658L /* F030HFIX - Falcon-GEMDOS-Handle-Fix */
#define C_FIX2 0x46495832L /* FIX24 68030 -> 24 bits */
#define C_FLTP 0x464C5450L /* FlyTop */
#define C_FLXD 0x464C5844L /* Flexdisk */
#define C_fMSX 0x664D5358L /* freeMSXemulators */
#define C_FOse 0x464F7365L /* Fontselector */
#define C_Fose 0x466F7365L /* Font Selector */
#define C_FrmD 0x46726D44L /* Form_do_it */
#define C_FSEL 0x4653454CL /* Extended File Selector (e.g. Selectric<69>,Freedom<6F>) */
#define C_FSER 0x46534552L /* Fast Serial Interface Routines */
#define C_FSMC 0x46534D43L /* Advanced GDOS */
#define C_FSmp 0x46536D70L /* Fileselector */
#define C_FSmp 0x46536D70L /* Martin Patzel File Selector */
#define C_F_3D 0x465F3344L /* Focus 3D */
#define C_GABI 0x47414249L /* Gabrielle Serial Port Typewriter Emulator */
#define C_GBel 0x4742656CL /* GemBell */
#define C_GCOM 0x47434F4DL /* GEM Component Object Model */
#define C_GDEV 0x47444556L /* GNU-C Device-Driver */
#define C_GEHC 0x47454843L /* Hypercache Turbo */
#define C_GEHD 0x47454844L /* Harddisktreiber */
#define C_GEMB 0x47454D42L /* GE Soft HD Driver */
#define C_GENV 0x47454E56L /* GEM Environment Setter */
#define C_Gfix 0x47666978L /* Gamefix for Falcon030 */
#define C_GI30 0x47493330L /* Gandhi */
#define C_GIGA 0x47494741L /* Giga Box ST Driver */
#define C_gk5_ 0x676B355FL /* Treiber f<>r 5.25" HIGH-Density-Drittlaufwerk */
#define C_gkCO 0x676B434FL /* Calamus Thingy */
#define C_GLAS 0x474C4153L /* Free memorydisplay */
#define C_GLBL 0x474C424CL /* GEMLABEL System Extension */
#define C_GMNI 0x474D4E49L /* Gemini */
#define C_GMTC 0x474D5443L /* Timezone CPX */
#define C_GNUC 0x474E5543L /* GNU-C Library */
#define C_Gnva 0x476E7661L /* Geneva Multi-tasking AES */
#define C_GOBJ 0x474F424AL /* ObjectGEM PurePascal library */
#define C_GOff 0x474F6666L /* Grow/Shrinkbox off */
#define C_GSND 0x47534E44L /* Gemsound */
#define C_GSP1 0x47535031L /* GEM Spooler */
#define C_GSXB 0x47535842L /* Generic sound Xbios */
#define C_GULM 0x47554C4DL /* Gulam Shell */
#define C_HABO 0x4841424FL /* Haboo Harddisk Cache */
#define C_hade 0x68616465L /* Hades */
#define C_HAMM 0x48414D4DL /* Melody Maker Software */
#define C_HBFS 0x48424653L /* BoxKite File Selector */
#define C_HcP6 0x48635036L /* NEC P6 Hardcopy Driver */
#define C_HDDR 0x48444452L /* HD Driver */
#define C_HDEX 0x48444558L /* HDDriver-eigenes Interface */
#define C_HDEY 0x48444559L /* Hard Disc Eye */
#define C_HDJR 0x48444A52L /* Hushi HD Interface Driver */
#define C_HDLD 0x48444C44L /* 'HD-LED' */
#define C_HDPR 0x48445052L /* HD Protect */
#define C_HDRC 0x48445243L /* AUDIODRV */
#define C_HDST 0x48445354L /* Eickmann HD Driver */
#define C_HDSW 0x48445357L /* High Density Switcher */
#define C_HFIX 0x48464958L /* Handle Bug Fix */
#define C_hFRB 0x68465242L /* BIOS-Treiber f<>r Rwabs-Transfers */
#define C_HIDS 0x48494453L /* High Density Disk Driver */
#define C_HMDU 0x484D4455L /* HM2 System Memory Dump */
#define C_HMOC 0x484D4F43L /* H<>nisch Modula Object Cache */
#define C_HMRD 0x484D5244L /* H<>nisch Modula Run-Time Debugger */
#define C_HMRS 0x484D5253L /* HM2 Run-Time System */
#define C_HPHC 0x48504843L /* HP Deskjet Hardcopy */
#define C_HPLJ 0x48504C4AL /* HP-Laserjet-Emulator V1.04 */
#define C_HSCD 0x48534344L /* MiNT-CDROM-Treiber */
#define C_HSnd 0x48536E64L /* CrazySounds */
#define C_HWAM 0x4857414DL /* Cookie Jar creator program */
#define C_IBMP 0x49424D50L /* Norwegian->IBM Printer Converter */
#define C_ICFS 0x49434653L /* Iconify Server */
#define C_ICST 0x49435354L /* INETCUST Cookie */
#define C_IDSK 0x4944534BL /* Icon Desk */
#define C_IMAC 0x494D4143L /* Bootsector Guardian */
#define C_IMNE 0x494D4E45L /* Imagine graphics card */
#define C_INSJ 0x494E534AL /* Cookie Jar installer/extendor program */
#define C_INXR 0x494E5852L /* Index generator */
#define C_iPRN 0x6950524EL /* iPRN */
#define C_IRSB 0x49525342L /* SEGA Shutterbrille */
#define C_iTMA 0x69544D41L /* E-Copy ab 2.0, E-Backup ab 2.0, Kobold ab 3.0 */
#define C_JAM1 0x4A414D31L /* Butler James */
#define C_JB2G 0x4A423247L /* Bios2Gdos */
#define C_JCLK 0x4A434C4BL /* Clocky Multiutility */
#define C_JCNB 0x4A434E42L /* JCN Bootselector */
#define C_JCNC 0x4A434E43L /* JCN Multi Accessory */
#define C_JCNH 0x4A434E48L /* Hardcopy Program */
#define C_JCNT 0x4A434E54L /* Cocteau Word Processor */
#define C_JFTP 0x4A465450L /* SCSI driver for generic tape devices */
#define C_JINX 0x4A494E58L /* Jinx */
#define C_JMLB 0x4A4D4C42L /* McBoot */
#define C_JMLS 0x4A4D4C53L /* JML Snapshot */
#define C_JSHD 0x4A534844L /* High Density Control Program */
#define C_JUST 0x4A555354L /* Justify */
#define C_J_Sc 0x4A5F5363L /* SECURE.PRG */
#define C_KbEv 0x4B624576L /* MM2 Keyboard Handling Module */
#define C_KEYT 0x4B455954L /* KEYTAB */
#define C_KGTF 0x4B475446L /* Tos Fix */
#define C_KIDI 0x4B494449L /* RAMdisk */
#define C_KREG 0x4B524547L /* KillRegisters */
#define C_KyMp 0x4B794D70L /* Keyboard Macro & Remapping Utility */
#define C_LACY 0x4C414359L /* LAZy-Shell-III */
#define C_LALA 0x4C414C41L /* Albolala BellHook Sample Player */
#define C_lanc 0x6C616E63L /* MiNT-Net ethernet driver for AMD LANCE */
#define C_LASB 0x4C415342L /* Laserbrain */
#define C_LAWC 0x4C415743L /* Look-Ahead-Write-Cache */
#define C_LDGE 0x4C444745L /* GEM Dynamical Libraries (LDG) */
#define C_LEDP 0x4C454450L /* LED-Panel */
#define C_LLCR 0x4C4C4352L /* Logilex 1st Lock */
#define C_LOGB 0x4C4F4742L /* Logbuch */
#define C_LoSe 0x4C6F5365L /* SER-LOG */
#define C_LP_2 0x4C505F32L /* Malloc 2 Gemdos Vector */
#define C_LPCD 0x4C504344L /* Carrier Detector */
#define C_LPJM 0x4C504A4DL /* Joy Mouse */
#define C_LTMF 0x4C544D46L /* Let 'em Fly */
#define C_M16s 0x4D313673L /* CyRel M16-1280 Graphikkarte */
#define C_M16X 0x4D313658L /* CyReL M16 XBIOS-Emulator */
#define C_macc 0x6D616363L /* Maccel 3 */
#define C_MADD 0x4D414444L /* Add mem for TT */
#define C_MADN 0x4D41444EL /* NEX-Output */
#define C_MagC 0x4D616743L /* Magic Dials Configuration program */
#define C_MagX 0x4D616758L /* MagiC */
#define C_MAST 0x4D415354L /* Master */
#define C_MaTC 0x4D615443L /* Matrix True Colour Graphics Card */
#define C_MBRD 0x4D425244L /* Blit_RD: Ramdisk */
#define C_MCL_ 0x4D434C5FL /* MiNT control */
#define C_McSn 0x4D63536EL /* MacSound */
#define C_MCWR 0x4D435752L /* Microwire DMA sound interface */
#define C_MDIA 0x4D444941L /* Multi-Dialog */
#define C_MDRK 0x4D44524BL /* MegaDark */
#define C_MDSa 0x4D445361L /* Medical Design Software's Serial Fix */
#define C_MFAC 0x4D464143L /* Multi Accessory */
#define C_MFFM 0x4D46464DL /* Marcus' file selector for MiNT */
#define C_MFIX 0x4D464958L /* MONOFIX.PRG */
#define C_MFNT 0x4D464E54L /* Fontloader */
#define C_MGEM 0x4D47454DL /* MultiGEM */
#define C_MgMc 0x4D674D63L /* MagiCMac */
#define C_MgMx 0x4D674D78L /* MagiCMac X */
#define C_MID3 0x4D494433L /* MIDINET3 */
#define C_MIMA 0x4D494D41L /* MIDI Manager */
#define C_MiNT 0x4D694E54L /* Mint/MultiTOS */
#define C_MIPS 0x4D495053L /* SPOOL120.PRG - Druckerspooler */
#define C_MJAF 0x4D4A4146L /* AUTOFONT */
#define C_MKHC 0x4D4B4843L /* Hardcopy Fixer */
#define C_MkJr 0x4D6B4A72L /* Cookie Jar creator program */
#define C_MMAC 0x4D4D4143L /* Magic Mouse Accelerator */
#define C_MMUT 0x4D4D5554L /* Midi Maze II Utility */
#define C_MM_2 0x4D4D5F32L /* Midimaze 2 */
#define C_MNAM 0x4D4E414DL /* Name cookie */
#define C_MOAF 0x4D4F4146L /* ARROWFIX */
#define C_MOGR 0x4D4F4752L /* GEMRAM */
#define C_MPRO 0x4D50524FL /* Magic Pro Config CPX */
#define C_MRAM 0x4D52414DL /* More RAM */
#define C_MSPD 0x4D535044L /* Mouse Speeder */
#define C_MSPO 0x4D53504FL /* Magic Spooler */
#define C_mstx 0x6D737478L /* Mouse Tricks */
#define C_MTft 0x4D546674L /* Trapper */
#define C_MUPF 0x4D555046L /* Mupfel */
#define C_MWHL 0x4D57484CL /* MHweel */
#define C_MZTR 0x4D5A5452L /* TRASH */
#define C_N203 0x4E323033L /* Multi Accessory */
#define C_nAES 0x6E414553L /* N.AES, the AES for MiNT */
#define C_NBEL 0x4E42454CL /* SOUND.PRG */
#define C_NBLL 0x4E424C4CL /* NEWBELL.PRG */
#define C_NCLN 0x4E434C4EL /* NiceLine */
#define C_ne2k 0x6E65326BL /* ne2000.xif */
#define C_NERV 0x4E455256L /* No etv_critic_alert */
#define C_NETS 0x4E455453L /* PAM Novell Software */
#define C_NEXB 0x4E455842L /* NEX-Buffer */
#define C_NEXK 0x4E45584BL /* NEX-Toolkit */
#define C_NFMT 0x4E464D54L /* INFOMAT */
#define C_NFnt 0x4E466E74L /* Neodesk Font Loader */
#define C_NKCC 0x4E4B4343L /* NKCC - Normalized Key Code Converter */
#define C_NLdr 0x4E4C6472L /* Neodesk Loader */
#define C_NO7P 0x4E4F3750L /* Norwegian->7 bit printer converter */
#define C_noCF 0x6E6F4346L /* noSystem */
#define C_NOR5 0x4E4F5235L /* Norwegian Keyboard Driver */
#define C_NOVA 0x4E4F5641L /* NOVA graphics card */
#define C_NSC1 0x4E534331L /* N_Syscom accessory */
#define C_nTAS 0x6E544153L /* TAS-Instruktionen */
#define C_NTK4 0x4E544B34L /* NTK4 Falcon MOD player */
#define C_NUL_ 0x4E554C5FL /* System startup utility */
#define C_NVDI 0x4E564449L /* NewVDI */
#define C_OBNL 0x4F424E4CL /* Load-Time-Linking (kurz "LTL") Protokoll */
#define C_OFLS 0x4F464C53L /* Check Open Files */
#define C_OPMM 0x4F504D4DL /* Open Helper */
#define C_OSBL 0x4F53424CL /* Screen Blaster */
#define C_OSTT 0x4F535454L /* OverScan TT */
#define C_OV24 0x4F563234L /* OverScan Hardcopy Driver 24 pins */
#define C_oVDI 0x6F564449L /* oVDI */
#define C_OVDJ 0x4F56444AL /* Overscan Hardcopytreiber f<>r HP-DeskJet */
#define C_OVDJ 0x4F56444AL /* OverScan Hardcopy Driver HP Deskjet */
#define C_OVEP 0x4F564550L /* OverScan Hardcopy Driver 9 pins */
#define C_OVER 0x4F564552L /* AutoSwitch OverScan Hardware Driver */
#define C_OVEX 0x4F564558L /* OverScan Exception Patch */
#define C_OVFS 0x4F564653L /* OverScan Fileselector Patch */
#define C_OVIM 0x4F56494DL /* OverScan Hardcopy Driver */
#define C_OVLS 0x4F564C53L /* OverScan DMC Laserbrain Patch */
#define C_OVRD 0x4F565244L /* OverScan RamDisk */
#define C_OVUT 0x4F565554L /* OverScan Screen Blanker */
#define C_OVWI 0x4F565749L /* OverScan Window-Size Patch */
#define C_PAMN 0x50414D4EL /* PAM Network Driver */
#define C_PBUG 0x50425547L /* PeaceBug */
#define C_PCI_ 0x5043495FL /* PCI-BIOS */
#define C_PDeb 0x50446562L /* PureDebuggger */
#define C_PDOS 0x50444F53L /* PowerDOS */
#define C_PDRZ 0x5044525AL /* LockGetrez */
#define C_PFIX 0x50464958L /* PTSINFIX Fix */
#define C_Pinp 0x50696E70L /* Parallel Input Port Driver */
#define C_PKSH 0x504B5348L /* PKS-Shell */
#define C_PMMU 0x504D4D55L /* PMMU reprogrammed */
#define C_POIS 0x504F4953L /* Poison! */
#define C_POWM 0x504F574DL /* PowerMouse */
#define C_PRCS 0x50524353L /* CopySTar */
#define C_PRDS 0x50524453L /* Peter Rohde Disk Speeder */
#define C_PRMD 0x50524D44L /* MIDIPRT */
#define C_PRN_ 0x50524E5FL /* WandelSZ */
#define C_PRN_ 0x50524E5FL /* WandelSZ */
#define C_PRO5 0x50524F35L /* Resident virus check/kill/prtotect program */
#define C_PROB 0x50524F42L /* Profibase */
#define C_PROT 0x50524F54L /* Protos Screen Utility */
#define C_PRTD 0x50525444L /* Print to Disk V1.10 */
#define C_PRTO 0x5052544FL /* ST Tools */
#define C_PRTR 0x50525452L /* Protar HD Driver */
#define C_prtr 0x70727472L /* Atari->IBM Printer Converter */
#define C_PSND 0x50534E44L /* ProSound Driver */
#define C_PSSG 0x50535347L /* Paint Shop Hardcopy vector */
#define C_PTOS 0x50544F53L /* ROMRAM: copy TOS in TT-RAM */
#define C_QIKM 0x51494B4DL /* Quick Mouse */
#define C_QMAC 0x514D4143L /* Quick Mouse Driver Accessory */
#define C_QMCP 0x514D4350L /* Chemplot Quick Mouse Driver */
#define C_QST2 0x51535432L /* Quick ST 2 */
#define C_QST3 0x51535433L /* Quick ST 3 */
#define C_QUAN 0x5155414EL /* QuanTOS Multiutility */
#define C_RAIL 0x5241494CL /* Rail Manager */
#define C_RaSn 0x5261536EL /* Rational Sounds */
#define C_RESG 0x52455347L /* RESET GUARD */
#define C_RFLX 0x52464C58L /* AutoSwitch Driver for Reflex Graphics Card */
#define C_RFUS 0x52465553L /* Rufus terminal program */
#define C_RGUS 0x52475553L /* Argus */
#define C_RING 0x52494E47L /* Telefonklingel Detektor */
#define C_ROT8 0x524F5438L /* Rotate */
#define C_RREG 0x52524547L /* Restore Register */
#define C_RSLT 0x52534C54L /* GengTEC VGA Monochrome/16 Colour Driver */
#define C_RSpd 0x52537064L /* RS_SPEED (Serial Fix) */
#define C_RSVE 0x52535645L /* RSVE Patch */
#define C_RSVF 0x52535646L /* RS232 Version Fast (HSMODEM) */
#define C_RTKC 0x52544B43L /* Keyclick */
#define C_RTOB 0x52544F42L /* Optobell */
#define C_RWIN 0x5257494EL /* RootWindow */
#define C_SBKM 0x53424B4DL /* Ring Recognition in Modem Routs */
#define C_SBTE 0x53425445L /* Terminal Program */
#define C_SBTS 0x53425453L /* Trap Spy */
#define C_SCAH 0x53434148L /* Speed Cache */
#define C_SCKM 0x53434B4DL /* MagXNet (SOCKET.DEV) */
#define C_SCRD 0x53435244L /* Screen To Disk */
#define C_SCRN 0x5343524EL /* Screen Scroll */
#define C_SCRS 0x53435253L /* Screen Blanker */
#define C_SCRW 0x53435257L /* Screen Watch */
#define C_SCSI 0x53435349L /* SCSI Driver */
#define C_SCSV 0x53435356L /* Line Art Screensaver */
#define C_SDCH 0x53444348L /* 2C - Second Chance */
#define C_SDES 0x53444553L /* Softdesk */
#define C_SDsk 0x5344736BL /* Softdisk */
#define C_SDWN 0x5344574EL /* ScreenDown */
#define C_SELC 0x53454C43L /* C-Lab File selector */
#define C_SENV 0x53454E56L /* Set Environment */
#define C_SFA_ 0x5346415FL /* Fontloader system */
#define C_SFIX 0x53464958L /* Serial Port Fix */
#define C_SFMN 0x53464D4EL /* SafeMenu */
#define C_ShLk 0x53684C6BL /* Shift Lock */
#define C_shlp 0x73686C70L /* shelhelp */
#define C_SKEY 0x534B4559L /* SpecialKeys */
#define C_SLCT 0x534C4354L /* Selectric */
#define C_SLif 0x534C6966L /* SoundLifter */
#define C_SLIP 0x534C4950L /* Socket library */
#define C_SM00 0x534D3030L /* SOTA Printer Spooler */
#define C_SM01 0x534D3031L /* ReProK Office Management DUO */
#define C_SM02 0x534D3032L /* ReProK International EM-NET II */
#define C_SMAL 0x534D414CL /* Small AES Icon fonts */
#define C_SMAU 0x534D4155L /* Set Mouse Accessory */
#define C_SMon 0x534D6F6EL /* SysMon */
#define C_SMTT 0x534D5454L /* SM-124 Emulator */
#define C_SNAP 0x534E4150L /* That's Snap Accessory */
#define C_SOFS 0x534F4653L /* Softscreen */
#define C_SOSW 0x534F5357L /* Softswitch */
#define C_SpcE 0x53706345L /* Space */
#define C_SPCK 0x5350434BL /* RAMdisk for SPC Modula */
#define C_SPEE 0x53504545L /* Mouse Speeder */
#define C_SPEK 0x5350454BL /* Spektrum-Grafikkarten */
#define C_SPEX 0x53504558L /* Steve's Printing Exzessory */
#define C_Spol 0x53706F6CL /* Flexible Printer Spooler */
#define C_SPRG 0x53505247L /* STARTER.ACC */
#define C_SSND 0x53534E44L /* Petra */
#define C_ST_C 0x53542D43L /* Cache Program */
#define C_ST17 0x53543137L /* ST-68017 */
#define C_STAT 0x53544154L /* StaTOS */
#define C_STEW 0x53544557L /* Stewart */
#define C_STFA 0x53544641L /* Sound treiber fur Atari */
#define C_StIc 0x53744963L /* Stewart Iconserver */
#define C_STiK 0x5354694BL /* ST Internet Kit */
#define C_STMS 0x53544D53L /* ST Magazine Screendump */
#define C_STRX 0x53545258L /* SAT-Trax Antenna driver */
#define C_SVAR 0x53564152L /* Shows MacMiNT */
#define C_SVGA 0x53564741L /* Super VGA Emulator */
#define C_SWAP 0x53574150L /* Outside */
#define C_SwTm 0x5377546DL /* Uhr */
#define C_SYMB 0x53594D42L /* Symbol driver */
#define C_SYNL 0x53594E4CL /* Dynamic Link Library Driver */
#define C_SYNT 0x53594E54L /* Syntex */
#define C_SysE 0x53797345L /* System Editor */
#define C_Syso 0x5379736FL /* ST Sysop */
#define C_SYST 0x53595354L /* Systime */
#define C_SZ_M 0x535A5F4DL /* Dynamic Mouse Speeder */
#define C_S_DR 0x535F4452L /* CDROM SCSI driver */
#define C_T206 0x54323036L /* PATCHX06.PRG */
#define C_T2GM 0x5432474DL /* TOS2GEM */
#define C_TAPE 0x54415045L /* TabeBIOS */
#define C_TASS 0x54415353L /* Turbo Assembler */
#define C_TCFS 0x54434653L /* Turbo C File Selector */
#define C_TCRB 0x54435242L /* Turbo Cache */
#define C_Tenv 0x54656E76L /* Environment Set Program for Terminal */
#define C_TFIX 0x54464958L /* TOS 1.04 fix */
#define C_THNX 0x54484E58L /* Thinx */
#define C_THRM 0x5448524DL /* Temoeraturdatenauswertung */
#define C_THST 0x54485354L /* TurboHST */
#define C_TIM3 0x54494D33L /* Time Driver */
#define C_TIM5 0x54494D35L /* Time Driver plus Screen Blanker */
#define C_TIME 0x54494D45L /* Led Panel Time */
#define C_TK40 0x544B3430L /* MC68040 ToolKit */
#define C_TL3D 0x544C3344L /* Dritte Floppy */
#define C_TLWV 0x544C5756L /* STGAWVBL */
#define C_TMon 0x544D6F6EL /* TempleMon */
#define C_TOpW 0x544F7057L /* Top Manager Watcher */
#define C_TOUC 0x544F5543L /* Touch */
#define C_TPat 0x54506174L /* Tos Patch */
#define C_TPGM 0x5450474DL /* TraPatch */
#define C_TRAK 0x5452414BL /* Track Speed */
#define C_TraP 0x54726150L /* TraPatch */
#define C_TRUE 0x54525545L /* TrueDisk */
#define C_TSEN 0x5453454EL /* TSE Net */
#define C_TSWP 0x54535750L /* TonySoft Write Protection */
#define C_TTTF 0x54545446L /* Thirty Two to Twenty Four */
#define C_TUBS 0x54554253L /* TUBS - The Ultimate Boot Selector */
#define C_TWFS 0x54574653L /* That's Write File Selector Accessory */
#define C_Typ1 0x54797031L /* Daisywheel accessory */
#define C_UFSL 0x5546534CL /* Extended Universal Font Selector */
#define C_UIS3 0x55495333L /* Universal Item Selector 3 */
#define C_UKB1 0x554B4231L /* Fastload */
#define C_UKB3 0x554B4233L /* Fastload plus MIDI Through */
#define C_UN_X 0x554E5F58L /* Unixname (/->\ Converter) */
#define C_USCK 0x5553434BL /* CHECKIT */
#define C_USHD 0x55534844L /* Diskus HD driver */
#define C_USPK 0x5553504BL /* Hard Disk Auto Parker */
#define C_USRS 0x55535253L /* Romspeed */
#define C_UTRK 0x5554524BL /* Ultimate Tracker */
#define C_VBLF 0x56424C46L /* VBLFIX.PRG */
#define C_VDLY 0x56444C59L /* Videlity */
#define C_VECS 0x56454353L /* Vecshow */
#define C_VeiL 0x5665694CL /* Turbo Veille */
#define C_VFIX 0x56464958L /* VDIFix */
#define C_VFNT 0x56464E54L /* VdiFont */
#define C_VGAS 0x56474153L /* VGA Simulator */
#define C_VI_2 0x56495F32L /* Videl Inside */
#define C_View 0x56696577L /* View Protocol */
#define C_VIRA 0x56495241L /* Virus Alarm */
#define C_VMEM 0x564D454DL /* Virtual Memory */
#define C_VPCH 0x56504348L /* VDIPATCH.PRG */
#define C_VRAM 0x5652414DL /* Virtual Memory Management for the TT */
#define C_VREP 0x56524550L /* Vector Guard */
#define C_VSco 0x5653636FL /* Virus Scope */
#define C_VSCR 0x56534352L /* Structure of Virtual Screens */
#define C_VSTM 0x5653544DL /* MIDI Transfer */
#define C_vT52 0x76543532L /* CyRel VT52-Emulator */
#define C_VTFX 0x56544658L /* VT52FIX.PRG */
#define C_VXCK 0x5658434BL /* VoxClock */
#define C_WaHW 0x57614857L /* HIGH_WAY */
#define C_WARP 0x57415250L /* Warp 9 */
#define C_WaSA 0x57615341L /* SATELLIT */
#define C_WBrd 0x57427264L /* Bird's Wing */
#define C_wdlg 0x77646C67L /* Window-Dialog-Library (wdialog) */
#define C_WDOG 0x57444F47L /* Watchdog */
#define C_WEGA 0x57454741L /* WEGA Libraries */
#define C_WFSL 0x5746534CL /* Window File Selector */
#define C_WICO 0x5749434FL /* WinCom */
#define C_WinK 0x57696E4BL /* WinKeys */
#define C_WINX 0x57494E58L /* WINX */
#define C_WINZ 0x57494E5AL /* Luftscho<68>/WinzRAM RAMdisk */
#define C_WPRO 0x5750524FL /* Write Protect */
#define C_WrAp 0x57724170L /* WarpMouse */
#define C_XALT 0x58414C54L /* AlberTT GFX card driver */
#define C_XBTN 0x5842544EL /* Maus-Routine in 'XBOOT' */
#define C_XBTN 0x5842544EL /* Mouse speeder routine from XBOOT */
#define C_XDsk 0x5844736BL /* X-DISK ramdisk */
#define C_XFRB 0x58465242L /* Extended Fast Ram Buffer */
#define C_XFS1 0x58465331L /* Master Module for extended TOS File System */
#define C_xFSL 0x7846534CL /* Extended Font Selector */
#define C_XHDI 0x58484449L /* XHDI driver */
#define C_XKBD 0x584B4244L /* Extended Keyboard */
#define C_XMMU 0x584D4D55L /* TK40's interface for PMMU setting */
#define C_XMuz 0x584D757AL /* Ultra Player */
#define C_xNet 0x784E6574L /* xNet-ST */
#define C_XPCI 0x58504349L /* Xbios functions for PCIbios */
#define C_xRmt 0x78526D74L /* XREMOTE */
#define C_XSND 0x58534E44L /* Digi-Sound */
#define C_XSSI 0x58535349L /* Extended Screen Saver Information */
#define C_XTOS 0x58544F53L /* Extend TOS */
#define C_xUFC 0x78554643L /* Extended Universal Font Selector Configuration Program */
#define C_XWin 0x5857696EL /* Extended Windows moudle */
#define C_zCAC 0x7A434143L /* 680x0 Cache Control CPX */
#define C_zDCF 0x7A444346L /* DCF-Time receiver */
#define C__AFM 0x5F41464DL /* Audio Fun Machine */
#define C__AKP 0x5F414B50L /* Keyboard/Language Configuration */
#define C__CPU 0x5F435055L /* Central Processor Unit Type */
#define C__DOS 0x5F444F53L /* GEMDOS-Einsprung (im GEMDOS 0.30) */
#define C__FDC 0x5F464443L /* Disk Drive Type */
#define C__FLK 0x5F464C4BL /* File Locking Extension */
#define C__FPU 0x5F465055L /* Floating Point Unit Type */
#define C__FRB 0x5F465242L /* Fast Ram Buffer */
#define C__FSR 0x5F465352L /* Patch program for serial (TOS 4.00->4.04) */
#define C__IDT 0x5F494454L /* International Date/Time Format */
#define C__INF 0x5F494E46L /* STEFIX Program */
#define C__ISO 0x5F49534FL /* specifies the real keyboard/font nationality */
#define C__JPD 0x5F4A5044L /* Falcon030 JPEG Decoder by Brainstorm */
#define C__MCH 0x5F4D4348L /* Machine Type */
#define C__MET 0x5F4D4554L /* MetaDOS */
#define C__MIL 0x5F4D494CL /* Milan computer */
#define C__NET 0x5F4E4554L /* GEMDOS Network Support */
#define C__OOL 0x5F4F4F4CL /* Pool Fix */
#define C__PCI 0x5F504349L /* PCIbios */
#define C__PKT 0x5F504B54L /* Paket Driver Cookie */
#define C__PWR 0x5F505752L /* Power Management unit */
#define C__SLM 0x5F534C4DL /* SLM Driver */
#define C__SND 0x5F534E44L /* Sound Hardware */
#define C__SWI 0x5F535749L /* Configuration Switches */
#define C__T2W 0x5F543257L /* TOS2WIN Emulator */
#define C__T30 0x5F543330L /* KAOS TOS */
#define C__VDI 0x5F564449L /* Milan VDI */
#define C__VDO 0x5F56444FL /* Video Type */
#define C___NF 0x5F5F4E46L /* Native features proposal */
#define C__FSC 0x5F465343L /* Falcon Screen */
#define C_MACCEL 0x00AA006EL /* MACCELL */
/* Return values of Getcookie() */
#define C_FOUND 0
#define C_NOTFOUND 1
extern int Getcookie(long cookie, long *val);
#endif

View File

@@ -0,0 +1,507 @@
/*
* This file belongs to FreeMiNT. It's not in the original MiNT 1.12
* distribution. See the file Changes.MH for a detailed log of changes.
*/
/*
* begin: 1998-06
* last change: 1998-09-07
*
* Author: Frank Naumann - <fnaumann@cs.uni-magdeburg.de>
*
* please send suggestions, patches or bug reports to me or
* the MiNT mailing list
*
*
* Description: Constants for Dcntl() and Fcntl() calls.
*
*/
# ifndef _DCNTL_H
# define _DCNTL_H
#ifndef LLONG
# define LLONG
# ifdef __GNUC__
typedef long long llong; /* 64bit int */
# else
typedef struct { long hi; unsigned long lo; } llong; /* 64bit int */
# endif
#endif
# define F_DUPFD 0 /* handled by kernel */
# define F_GETFD 1 /* handled by kernel */
# define F_SETFD 2 /* handled by kernel */
/* flag: */
# define FD_CLOEXEC 1 /* close on exec flag */
# define F_GETFL 3 /* handled by kernel */
# define F_SETFL 4 /* handled by kernel */
# define F_GETLK 5
# define F_SETLK 6
# define F_SETLKW 7
#ifdef __KERNEL__
struct flock
{
short l_type; /* type of lock */
# define F_RDLCK 0
# define F_WRLCK 1
# define F_UNLCK 3
short l_whence; /* SEEK_SET, SEEK_CUR, SEEK_END */
long l_start; /* start of locked region */
long l_len; /* length of locked region */
short l_pid; /* pid of locking process (F_GETLK only) */
};
#endif /* not __KERNEL__ */
# define F_GETOPENS 8 /* handled by kernel */
/* jr: structure for F_GETOPENS */
struct listopens
{
# define LO_FILEOPEN 1
# define LO_DIROPEN 2
# define LO_CURDIR 4
# define LO_CURROOT 8
short lo_pid; /* input: first pid to check;
* output: who's using it? */
short lo_reason; /* input: bitmask of interesting reasons;
* output: why EACCDN? */
short lo_flags; /* file's open flags */
};
/*
* Minix-FS
*/
# define MFS_VERIFY 0x100 /* minixfs/docs/syscall.doc */
# define MFS_MAGIC 0x18970431 /* Magic number from MFS_VERIFY */
# define MFS_SYNC 0x101 /* minixfs/docs/syscall.doc */
# define MFS_CINVALID 0x102 /* minixfs/docs/syscall.doc */
# define MFS_FINVALID 0x103 /* minixfs/docs/syscall.doc */
# define MFS_INFO 0x104 /* minixfs/docs/syscall.doc */
# define MFS_USAGE 0x105 /* minixfs/minixfs.h */
# define MFS_IMODE 0x106 /* minixfs/docs/syscall.doc */
# define MFS_GTRANS 0x107 /* minixfs/docs/syscall.doc */
# define MFS_STRANS 0x108 /* minixfs/docs/syscall.doc */
# define MFS_PHYS 0x109 /* minixfs/minixfs.h */
# define MFS_IADDR 0x10a /* minixfs/docs/syscall.doc */
# define MFS_UPDATE 0x10b /* minixfs/docs/syscall.doc */
# define MFS_MOUNT 0x10c /* minixfs/docs/syscall.doc */
# define MFS_UMOUNT 0x10d /* minixfs/docs/syscall.doc */
# define MFS_LOPEN 0x10e /* minixfs/docs/syscall.doc */
# define MFS_MKNOD 0x10f /* minixfs/docs/syscall.doc */
/*
* MagiC specific calls for filesystem installation (use group 'm'!)
*/
/*# define KER_INSTXFS 0x0200*/ /* mgx_dos.txt */
/*# define KER_SETWBACK 0x0300*/ /* mgx_dos.txt */
/*# define DFS_GETINFO 0x1100*/ /* mgx_dos.txt */
/*# define DFS_INSTDFS 0x1200*/ /* mgx_dos.txt */
/*
* CD-ROMs
*/
# define CDROMREADOFFSET (('C'<< 8) | 0) /* cdromio.h */
# define CDROMPAUSE (('C'<< 8) | 1) /* cdromio.h */
# define CDROMRESUME (('C'<< 8) | 2) /* cdromio.h */
# define CDROMPLAYMSF (('C'<< 8) | 3) /* cdromio.h */
# define CDROMPLAYTRKIND (('C'<< 8) | 4) /* cdromio.h */
# define CDROMREADTOCHDR (('C'<< 8) | 5) /* cdromio.h */
# define CDROMREADTOCENTRY (('C'<< 8) | 6) /* cdromio.h */
# define CDROMSTOP (('C'<< 8) | 7) /* cdromio.h */
# define CDROMSTART (('C'<< 8) | 8) /* cdromio.h */
# define CDROMEJECT (('C'<< 8) | 9) /* cdromio.h */
# define CDROMVOLCTRL (('C'<< 8) | 10) /* cdromio.h */
# define CDROMSUBCHNL (('C'<< 8) | 11) /* cdromio.h */
# define CDROMREADMODE2 (('C'<< 8) | 12) /* cdromio.h */
# define CDROMREADMODE1 (('C'<< 8) | 13) /* cdromio.h */
# define CDROMPREVENTREMOVAL (('C'<< 8) | 14) /* cdromio.h */
# define CDROMALLOWTREMOVAL (('C'<< 8) | 15) /* cdromio.h */
# define CDROMAUDIOCTRL (('C'<< 8) | 16) /* cdromio.h */
# define CDROMREADDA (('C'<< 8) | 17) /* cdromio.h */
# define CDROMGETMCN (('C'<< 8) | 19) /* cdromio.h */
# define CDROMGETTISRC (('C'<< 8) | 20) /* cdromio.h */
/*
* Big-DOS
*/
# define DL_SECSIZ (('D'<< 8) | 0) /* max. bpb->recsiz */
# define DL_MINFAT (('D'<< 8) | 1) /* min. Anzahl FATs */
# define DL_MAXFAT (('D'<< 8) | 2) /* max. Anzahl FATs */
# define DL_MINSPC (('D'<< 8) | 3) /* min. bpb->clsiz */
# define DL_MAXSPC (('D'<< 8) | 4) /* max. bpb->clsiz */
# define DL_CLUSTS (('D'<< 8) | 5) /* max. bpb->numcl FAT16 */
# define DL_MAXSEC (('D'<< 8) | 6) /* max. number of sectors */
# define DL_DRIVES (('D'<< 8) | 7) /* max. number of drives */
# define DL_CLSIZB (('D'<< 8) | 8) /* max. bpb->clsizb */
# define DL_RDLEN (('D'<< 8) | 9) /* max. (bpb->rdlen * bpb->recsiz / 32) */
# define DL_FSIZ (('D'<< 8) | 10) /* max. bpb->fsiz */
# define DL_FATREC (('D'<< 8) | 11) /* max. bpb->fatrec */
# define DL_CLUSTS12 (('D'<< 8) | 12) /* max. bpb->numcl FAT12 */
# define DL_CLUSTS32 (('D'<< 8) | 13) /* max. bpb->l_numcl FAT32 */
# define DL_BFLAGS (('D'<< 8) | 14) /* supported bits in bpb->bflags */
# define DL_FILESYS (('D'<< 8) | 15) /* cookie of the filesystem */
# define DL_VERSION (('D'<< 8) | 16) /* version of the filesystem */
# define DL_CHAR (('D'<< 8) | 17) /* pointer to a string with legal chars */
# define DL_SETCHAR (('D'<< 8) | 18) /* ask or set valid names */
/*
* file
*/
# define FSTAT (('F'<< 8) | 0) /* handled by kernel */
# define FIONREAD (('F'<< 8) | 1)
# define FIONWRITE (('F'<< 8) | 2)
# define FUTIME (('F'<< 8) | 3)
/* structure for FUTIME */
struct mutimbuf
{
unsigned short actime, acdate; /* GEMDOS format */
unsigned short modtime, moddate;
};
# define FTRUNCATE (('F'<< 8) | 4)
# define FIOEXCEPT (('F'<< 8) | 5)
# define FMACOPENRES (('F'<< 8) | 72) /* macmint/macfile.h */
# define FMACGETTYCR (('F'<< 8) | 73) /* macmint/macfile.h */
# define FMACSETTYCR (('F'<< 8) | 74) /* macmint/macfile.h */
# define FMAGICMAC (('F'<< 8) | 75) /* (reserved for MagiCMac) */
/*
* shared memory
*/
# define SHMGETBLK (('M'<< 8) | 0)
# define SHMSETBLK (('M'<< 8) | 1)
/*
* processes
*/
# define PPROCADDR (('P'<< 8) | 1)
# define PBASEADDR (('P'<< 8) | 2)
# define PCTXTSIZE (('P'<< 8) | 3)
# define PSETFLAGS (('P'<< 8) | 4)
# define PGETFLAGS (('P'<< 8) | 5)
# define PTRACESFLAGS (('P'<< 8) | 6)
# define PTRACEGFLAGS (('P'<< 8) | 7)
/* flags: */
# define P_ENABLE (1 << 0) /* enable tracing */
# ifdef NOTYETDEFINED
# define P_DOS (1 << 1) /* trace DOS calls - unimplemented */
# define P_BIOS (1 << 2) /* trace BIOS calls - unimplemented */
# define P_XBIOS (1 << 3) /* trace XBIOS calls - unimplemented */
# endif
# define PTRACEGO (('P'<< 8) | 8) /* these 4 must be together */
# define PTRACEFLOW (('P'<< 8) | 9)
# define PTRACESTEP (('P'<< 8) | 10)
# define PTRACE11 (('P'<< 8) | 11)
# define PLOADINFO (('P'<< 8) | 12)
# define PFSTAT (('P'<< 8) | 13)
struct ploadinfo
{
/* passed */
short fnamelen;
/* returned */
char *cmdlin /* 128 byte */, *fname;
};
/*
* Socket ioctls: these require MiNT-Net 3.0 (or later)
*/
# define SIOCGLOWAT (('S' << 8) | 1)
# define SIOCSLOWAT (('S' << 8) | 2)
# define SIOCGHIWAT (('S' << 8) | 3)
# define SIOCSHIWAT (('S' << 8) | 4)
# define SIOCSPGRP (('S' << 8) | 5)
# define SIOCGPGRP (('S' << 8) | 6)
# define SIOCATMARK (('S' << 8) | 7)
# define SIOCGIFCONF (('S' << 8) | 12) /* get iface list */
# define SIOCGIFFLAGS (('S' << 8) | 13) /* get flags */
# define SIOCSIFFLAGS (('S' << 8) | 14) /* set flags */
# define SIOCGIFADDR (('S' << 8) | 15) /* get iface address */
# define SIOCSIFADDR (('S' << 8) | 16) /* set iface address */
# define SIOCGIFDSTADDR (('S' << 8) | 17) /* get iface remote address */
# define SIOCSIFDSTADDR (('S' << 8) | 18) /* set iface remotw address */
# define SIOCGIFBRDADDR (('S' << 8) | 19) /* get iface ibroadcast address */
# define SIOCSIFBRDADDR (('S' << 8) | 20) /* set iface broadcast address */
# define SIOCGIFNETMASK (('S' << 8) | 21) /* get iface network mask */
# define SIOCSIFNETMASK (('S' << 8) | 22) /* set iface network mask */
# define SIOCGIFMETRIC (('S' << 8) | 23) /* get metric */
# define SIOCSIFMETRIC (('S' << 8) | 24) /* set metric */
# define SIOCGIFMTU (('S' << 8) | 27) /* get MTU size */
# define SIOCSIFMTU (('S' << 8) | 28) /* set MTU size */
# define SIOCADDRT (('S' << 8) | 30) /* add routing table entry */
# define SIOCDELRT (('S' << 8) | 31) /* delete routing table entry */
# define SIOCDARP (('S' << 8) | 40) /* delete ARP table entry */
# define SIOCGARP (('S' << 8) | 41) /* get ARP table entry */
# define SIOCSARP (('S' << 8) | 42) /* set ARP table entry */
/*
* terminals
*/
# define TIOCGETP (('T'<< 8) | 0)
# define TIOCSETN (('T'<< 8) | 1)
# define TIOCGETC (('T'<< 8) | 2)
# define TIOCSETC (('T'<< 8) | 3)
# define TIOCGLTC (('T'<< 8) | 4)
# define TIOCSLTC (('T'<< 8) | 5)
# define TIOCGPGRP (('T'<< 8) | 6)
# define TIOCSPGRP (('T'<< 8) | 7)
# define TIOCFLUSH (('T'<< 8) | 8)
# define TIOCSTOP (('T'<< 8) | 9)
# define TIOCSTART (('T'<< 8) | 10)
# define TIOCGWINSZ (('T'<< 8) | 11)
# define TIOCSWINSZ (('T'<< 8) | 12)
# define TIOCGXKEY (('T'<< 8) | 13)
# define TIOCSXKEY (('T'<< 8) | 14)
# define TIOCIBAUD (('T'<< 8) | 18)
# define TIOCOBAUD (('T'<< 8) | 19)
# define TIOCCBRK (('T'<< 8) | 20)
# define TIOCSBRK (('T'<< 8) | 21)
# define TIOCGFLAGS (('T'<< 8) | 22)
# define TIOCSFLAGS (('T'<< 8) | 23)
# define TIOCOUTQ (('T'<< 8) | 24)
# define TIOCSETP (('T'<< 8) | 25)
# define TIOCHPCL (('T'<< 8) | 26)
# define TIOCCAR (('T'<< 8) | 27)
# define TIOCNCAR (('T'<< 8) | 28)
# define TIOCWONLINE (('T'<< 8) | 29)
# define TIOCSFLAGSB (('T'<< 8) | 30)
# define TIOCGSTATE (('T'<< 8) | 31)
# define TIOCSSTATEB (('T'<< 8) | 32)
# define TIOCGVMIN (('T'<< 8) | 33)
# define TIOCSVMIN (('T'<< 8) | 34)
# define TIOCGHUPCL (('T'<< 8) | 98) /* mdm0 ioctls */
# define TIOCSHUPCL (('T'<< 8) | 99)
# define TIOCGSOFTCAR (('T'<< 8) | 100)
# define TIOCSSOFTCAR (('T'<< 8) | 101)
# define TIOCBUFFER (('T'<< 8) | 128) /* HSMODA/hsm_doku/sersoftst.txt */
# define TIOCCTLMAP (('T'<< 8) | 129)
# define TIOCCTLGET (('T'<< 8) | 130)
# define TIOCCTLSET (('T'<< 8) | 131)
# define TIOCCTLSFAST (('T'<< 8) | 132) /* HSMODA/hsm_doku/sersoftst.txt */
# define TIOCCTLSSLOW (('T'<< 8) | 133) /* HSMODA/hsm_doku/sersoftst.txt */
# define TIONOTSEND (('T'<< 8) | 134)
# define TIOCERROR (('T'<< 8) | 135)
# define TIOCLBIS (('T'<< 8) | 246) /* faked by the MiNT library */
# define TIOCLBIC (('T'<< 8) | 247)
# define TIOCMGET (('T'<< 8) | 248)
/* bits in longword fetched by TIOCMGET: */
# define TIOCM_LE 0001 /* not supported */
# define TIOCM_DTR 0002
# define TIOCM_RTS 0004
# define TIOCM_ST 0010 /* not supported */
# define TIOCM_SR 0020 /* not supported */
# define TIOCM_CTS 0040
# define TIOCM_CAR 0100
# define TIOCM_CD TIOCM_CAR
# define TIOCM_RNG 0200
# define TIOCM_RI TIOCM_RNG
# define TIOCM_DSR 0400 /* not supported */
# define TIOCCDTR (('T'<< 8) | 249)
# define TIOCSDTR (('T'<< 8) | 250)
# define TIOCNOTTY (('T'<< 8) | 251)
# define TIOCGETD (('T'<< 8) | 252) /* not yet implemented in MiNT */
# define TIOCSETD (('T'<< 8) | 253)
# define TIOCLGET (('T'<< 8) | 254)
# define TIOCLSET (('T'<< 8) | 255)
# define NTTYDISC 1
/*
* (V)FAT filesystem extensions (MiNT/MagiC)
*/
# define VFAT_CNFDFLN (('V'<< 8) | 0) /* MiNT/MagiC */
# define VFAT_CNFLN (('V'<< 8) | 1) /* MiNT/MagiC */
# define V_CNTR_SLNK (('V'<< 8) | 2) /* MiNT, works on FAT and VFAT */
# define V_CNTR_RES3 (('V'<< 8) | 3) /* reserved, not used at the moment */
# define V_CNTR_MODE (('V'<< 8) | 4) /* MiNT, works on FAT */
/* name mode flags: */
# define GEMDOS 0
# define ISO 1
# define MSDOS 2
# define V_CNTR_FAT32 (('V'<< 8) | 10) /* MiNT, FAT32 control */
struct control_FAT32
{
unsigned short mode; /* 0 = fill out; 1 = set values */
unsigned short mirr; /* FAT mirroring: 0 = enabled, otherwise active FAT */
unsigned short fats; /* number of FATs */
unsigned short info; /* status of additional info sector */
# define FAT32_info_exist 0x1
# define FAT32_info_active 0x2
# define FAT32_info_reset 0x4
};
# define V_CNTR_WP (('V'<< 8) | 100) /* MiNT, write protect control */
# define V_CNTR_WB (('V'<< 8) | 101) /* MiNT, write back control */
/*
* Ext2 filesystem extensions
*/
# define EXT2_IOC_GETFLAGS (('f'<< 8) | 1)
# define EXT2_IOC_SETFLAGS (('f'<< 8) | 2)
# define EXT2_IOC_GETVERSION (('v'<< 8) | 1)
# define EXT2_IOC_SETVERSION (('v'<< 8) | 2)
/*
* cursor control
*/
# define TCURSOFF (('c'<< 8) | 0)
# define TCURSON (('c'<< 8) | 1)
# define TCURSBLINK (('c'<< 8) | 2)
# define TCURSSTEADY (('c'<< 8) | 3)
# define TCURSSRATE (('c'<< 8) | 4)
# define TCURSGRATE (('c'<< 8) | 5)
# define TCURSSDELAY (('c'<< 8) | 6) /* undocumented! */
# define TCURSGDELAY (('c'<< 8) | 7) /* undocumented! */
/*
* MagiC opcodes (all group 'm' opcodes are reserved for MagiC)
*/
# define MX_KER_GETINFO (('m'<< 8) | 0) /* mgx_dos.txt */
# define MX_KER_DOSLIMITS (('m'<< 8) | 1) /* mgx_dos.txt */
# define MX_KER_INSTXFS (('m'<< 8) | 2) /* mgx_dos.txt */
# define MX_KER_DRVSTAT (('m'<< 8) | 4) /* mgx_dos.txt */
# define MX_KER_XFSNAME (('m'<< 8) | 5) /* mgx_dos.txt */
# define MX_DEV_INSTALL (('m'<< 8) | 0x20) /* mgx_dos.txt */
# define MX_DFS_GETINFO (('m'<< 8) | 0x40) /* mgx_dos.txt */
# define MX_DFS_INSTDFS (('m'<< 8) | 0x41) /* mgx_dos.txt */
/*
* Printers (whole range reserved)
*/
/*# define PNVDI (('p'<< 8) | *)*/ /* NVDI programmer's manual */
/*
* MagiC specific calls for device driver installation (use group 'm'!)
*/
/*# define PROC_CREATE 0xcc00*/ /* mgx_dos.txt */
/*# define DEV_M_INSTALL 0xcd00*/ /* mgx_dos.txt */
/*
* device driver installation
*/
# define DEV_NEWTTY 0xde00
# define DEV_NEWBIOS 0xde01
# define DEV_INSTALL 0xde02
/*
* filesystem installation
*/
# define FS_INSTALL 0xf001 /* let the kernel know about the file system */
# define FS_MOUNT 0xf002 /* make a new directory for a file system */
# define FS_UNMOUNT 0xf003 /* remove a directory for a file system */
# define FS_UNINSTALL 0xf004 /* remove a file system from the list */
/*
* filesystem information
*/
# define FS_INFO 0xf100 /* xfs fill out the following struct */
struct fs_info
{
char name [32]; /* name of the xfs (same as MX_KER_XFSNAME but more space) */
long version; /* upper word: major version; lower word: minor version */
long type; /* upper word: major type; lower word: minor type */
char type_asc[32]; /* human readable version of type */
};
/* values of fs_info.type */
# define _MAJOR_FAT (1L << 16)
# define _MAJOR_VFAT (2L << 16)
# define _MAJOR_MINIX (3L << 16)
# define _MAJOR_RAMFS (4L << 16)
# define _MAJOR_EXT2 (5L << 16)
# define _MAJOR_HSIERRA (6L << 16)
# define _MAJOR_ISO9660 (7L << 16)
# define _MAJOR_JOLIET (8L << 16)
# define _MAJOR_HFS (9L << 16)
# define _MAJOR_CDRAW (10L << 16)
# define _MAJOR_STONX (11L << 16)
# define FS_OLDTOS (0L) /* default/unknown */
# define FS_FAT12 (_MAJOR_FAT | 0) /* MiNT 1.15 */
# define FS_FAT16 (_MAJOR_FAT | 1) /* MiNT 1.15 */
# define FS_FAT32 (_MAJOR_FAT | 2) /* MiNT 1.15 */
# define FS_VFAT12 (_MAJOR_VFAT | 0) /* MiNT 1.15 */
# define FS_VFAT16 (_MAJOR_VFAT | 1) /* MiNT 1.15 */
# define FS_VFAT32 (_MAJOR_VFAT | 2) /* MiNT 1.15 */
# define FS_MINIX (_MAJOR_MINIX) /* MinixFS 0.70p6 */
# define FS_RAMFS (_MAJOR_RAMFS) /* fnRamFS 0.52 */
# define FS_EXT2 (_MAJOR_EXT2) /* Ext2 0.?? */
# define FS_HSIERRA (_MAJOR_HSIERRA) /* Spin 0.35 */
# define FS_ISO9669 (_MAJOR_ISO9660) /* Spin 0.35 */
# define FS_JOLIET (_MAJOR_JOLIET) /* Spin 0.35 */
# define FS_HFS (_MAJOR_HFS) /* Spin 0.35 */
# define FS_CDRAW (_MAJOR_CDRAW) /* Spin 0.35 */
# define FS_STONX (_MAJOR_STONX) /* STonXfs4MiNT */
# define FS_USAGE 0xf101 /* xfs fill out the following struct */
struct fs_usage
{
unsigned long blocksize; /* 32bit: size in bytes of a block */
llong blocks; /* 64bit: number of blocks */
llong free_blocks; /* 64bit: number of free blocks */
llong inodes; /* 64bit: number of inodes or FS_UNLIMITED */
llong free_inodes; /* 64bit: number of free inodes or FS_UNLIMITED */
# define FS_UNLIMITED -1
};
# endif /* _DCNTL_H */

View File

@@ -0,0 +1,757 @@
/* mint/errno.h -- MiNTLib.
Copyright (C) 1999 Guido Flohr <guido@freemint.de>
This file is part of the MiNTLib project, and may only be used
modified and distributed under the terms of the MiNTLib project
license, COPYMINT. By continuing to use, modify, or distribute
this file you indicate that you have read the license and
understand and accept it fully.
*/
#ifndef _MINT_ERRNO_H
# define _MINT_ERRNO_H 1 /* Allow multiple inclusion. */
#ifndef __KERNEL__
# ifndef _FEATURES_H
# include <features.h>
# endif
/* See below. */
#define __KERNEL_NEG(c) c
#else /* __KERNEL__ */
/* The kernel should actually have code like
if (whew_we_dont_know_that)
return -ENOSYS;
instead of the current
if (whew_we_dont_know_that)
return ENOSYS;
That seems to be a matter of taste.
As a convenience we offer both possibilities here:
*/
# ifdef POSITIVE_ERROR_CODES
# define __KERNEL_NEG(c) (c)
# else /* not POSITIVE_ERROR_CODES */
# define __KERNEL_NEG(c) (-(c))
# endif /* not POSITIVE_ERROR_CODES */
/* If you prefer to type E_OK instead of 0 ... */
# define E_OK 0
#endif /* not __KERNEL__ */
/* The original atarierr.h defined quite a few error codes which were
either useless or non-standard. Important codes such as EISDIR,
ENOTEMPTY were missing, others were simply misunderstood (for example
the usual EINVAL would really be an ENOSYS, EINVAL is not invalid
function number but invalid argument) and especially in MiNT
some error codes got really overloaded, for example ENOENT serves
as ENOENT, ESRCH and ECHILD, or EACCES and EPERM were the same.
The codes in this file try to find the closest equivalent for
all error codes currently in use, marks some error codes as
deprecated and tries to be fit for the future by defining all
error codes that may be needed for future enhancement.
*/
/*
The explanations are mostly taken from the GNU libc manual.
Unfortunately they don't always document the current usage in the
MiNT system but rather how it should be. I've marked all current
misusage with either `KERNEL' or `FIXME'.
We provide way too many synonyms for error codes here. Both in
the kernel and the libc only the `official' name (the one in the
top row that bears the actual define) should be used.
*/
/* Where is ENOERR and E_OK? This file is <errno.h> and not <noerror.h>,
no error is 0, basta. */
/* Is this really needed? Deprecated. */
#define EERROR __KERNEL_NEG(1) /* Generic error. */
/* A system resource that can't be shared is already in use. For example
if you try to delete a file that is the root of a currently mounted
filesystem, you get this error.
This used to be EDRNRDY resp. EDRNRDY. */
#define EBUSY __KERNEL_NEG(2) /* Resource busy. */
#ifdef __LOOSE_ERRROR_CODES
# define EDRNRDY EBUSY
# define EDRVNR EBUSY
#endif
/* Deprecated. */
#define EUKCMD __KERNEL_NEG(3) /* Unknown command. */
#ifdef __LOOSE_ERRROR_CODES
# define EUNCMD EUKCMD
#endif
/* Checksum error detected while reading from a block device such as
a floppy drive. Obviously non-standard but often used. */
#define ECRC __KERNEL_NEG(4) /* CRC error. */
#ifdef __LOOSE_ERRROR_CODES
# define E_CRC ECRC
#endif
/* Bad request. */
#define EBADR __KERNEL_NEG(5) /* Bad request. */
#ifdef __LOOSE_ERRROR_CODES
# define EBADREQ EBADR
# define EBADRQ EBADR
#endif
/* Invalid seek operation (such as on a pipe). */
/* KERNEL: The pipe file system currently returns 0 for seek on a pipe! */
#define ESPIPE __KERNEL_NEG(6) /* Illegal seek. */
#ifdef __LOOSE_ERRROR_CODES
# define ESEEK ESPIPE
# define E_SEEK ESPIPE
#endif
/* Wrong medium type. */
#define EMEDIUMTYPE __KERNEL_NEG(7) /* Wrong medium type. */
#ifdef __LOOSE_ERRROR_CODES
# define EUKMEDIA EMEDIUMTYPE
# define EMEDIA EMEDIUMTYPE
#endif
/* A sector that does not exist was addressed in the call to a bock
device function. */
#define ESECTOR __KERNEL_NEG(8) /* Sector not found. */
#ifdef __LOOSE_ERRROR_CODES
# define ESECNF ESECTOR
#endif
/* No paper. No, not at the conveniences, in the printer. */
#define EPAPER __KERNEL_NEG(9) /* No paper. */
/* Read and write faults. Deprecated, be more specific instead. */
#define EWRITE __KERNEL_NEG(10) /* Write fault. */
#ifdef __LOOSE_ERRROR_CODES
# define EWRITEF EWRITE
#endif
#define EREAD __KERNEL_NEG(11) /* Read fault. */
#ifdef __LOOSE_ERRROR_CODES
# define EREADF EREAD
#endif
/* Another generic error. Who can tell the difference to EERROR? */
#define EGENERIC __KERNEL_NEG(12) /* General mishap. */
/* An attempt was made to modify something on a read-only file
file system. */
#define EROFS __KERNEL_NEG(13) /* Write protect. */
/* A removable medium was exchanged before the operation could finish. */
#define ECHMEDIA __KERNEL_NEG(14) /* Media change. */
#ifdef __LOOSE_ERRROR_CODES
# define E_CHNG ECHMEDIA
#endif
/* The wrong type of device was given to a function that expects a
particular sort of device. */
#define ENODEV __KERNEL_NEG(15) /* No such device. */
#ifdef __LOOSE_ERRROR_CODES
# define EUKDEV ENODEV
# define EUNDEV ENODEV
#endif
/* Bad sectors on block device medium found. Uhm, if the driver found
them, mark them as bad and don't bother the user with that.
Deprecated. */
#define EBADSEC __KERNEL_NEG(16) /* Bad sectors found. */
#ifdef __LOOSE_ERRROR_CODES
# define EBADSF EBADSEC
#endif
/* A device with a removable media (such as a floppy) is empty. */
#define ENOMEDIUM __KERNEL_NEG(17) /* No medium found. */
#ifdef __LOOSE_ERRROR_CODES
# define EIDISK ENOMEDIUM
# define EOTHER ENOMEDIUM
#endif
/* MetaDOS error (deprecated). */
#define EINSERT __KERNEL_NEG(18) /* Insert media. */
/* MetaDOS error (deprecated). */
#define EDRVNRSP __KERNEL_NEG(19) /* Drive not responding. */
/* No process matches the specified process ID.
KERNEL: This is a new error code. Currently ENOENT is returned instead. */
#define ESRCH __KERNEL_NEG(20) /* No such process. */
/* There are no child processes. This error happens on operations
that are supposed to manipulate child processes, when there aren't
any processes to manipulate.
KERNEL: This is a new error code. Currently ENOENT is returned instead. */
#define ECHILD __KERNEL_NEG(21) /* No child processes. */
/* Deadlock avoided; allocating a system resource would have resulted
in a deadlock situation. The system does not guarantee that it
will notice all such situations. This error means you got lucky
and the system noticed; it might just hang.
KERNEL: This is a new error code. The kernel currently never returns
it. But that doesn't mean that there are no deadlock situations in
the kernel. */
#define EDEADLK __KERNEL_NEG(22) /* Resource deadlock would occur. */
#define EDEADLOCK EDEADLK
/* A file that isn't a block special file was given in a situation
that requires one. For example, trying to mount an ordinary file
as a file system in Unix gives this error. New code. */
#define ENOTBLK __KERNEL_NEG(23) /* Block device required. */
/* File is a directory; you cannot open a directory for writing, or
create or remove hard links to it.
KERNEL: This is a new error code. Flink() should be fixed. */
#define EISDIR __KERNEL_NEG(24) /* Is a directory. */
/* Invalid argument. This is used to indicate various kinds of
problems with passing the wrong argument to a library function.
FIXME: This used to be the same as `ENOSYS'. In fact that should
be two distinct error codes. For example, the `fchmod' function
should return `EINVAL' if the file descriptor passed as an
argument corresponds to a pipe or socket, not an ordinary file.
But since `fchmod' is a function that is currently only supported
under MiNT the same error would be reported if the operating
system does not support the call at all. It is common practice
to cache such failures because in the case of `ENOSYS' there
is no chance that succeeding calls will proceed. So how do
you want to distinguish between these cases? */
#define EINVAL __KERNEL_NEG(25) /* Invalid argument. */
/* Inappropriate file type or format. The file was the wrong type
for the operation, or a data file had the wrong format.
On some systems `chmod' returns this error if you try to set the
sticky bit on a non-directory file. */
#define EFTYPE __KERNEL_NEG(26) /* Inappropriate file type or format. */
/* While decoding a multibyte character the function came along an
invalid or an incomplete sequence of bytes or the given wide
character is invalid. */
#define EILSEQ __KERNEL_NEG(27) /* Illegal byte sequence. */
/* Function not implemented. Some functions have commands or options
defined that might not be supported in all implementations, and
this is the kind of error you get if your request them and they are
not supported.
KERNEL: This was usually called EINVFN (invalid function number) and
that's why it was probably mixed up with EINVAL (invalid argument).
FIXME: Grep thru the MiNTLib sources for EINVAL and replace it with
the correct ENOSYS. Same for the kernel. */
#define ENOSYS __KERNEL_NEG(32) /* Function not implemented. */
/* This is a "file doesn't exist" error for ordinary files that are
referenced in contexts where they are expected to already exist.
KERNEL/FIXME: This used to be the same as ESRCH and and ECHILD,
in the kernel it was usually called EFILNF. Fix the wrong usage
of ESRCH and ECHILD and replace EFILNF with ENOENT. */
#define ENOENT __KERNEL_NEG(33) /* No such file or directory. */
/* A file that isn't a directory was specified when a directory is
required. The usage of the synonyme EPATH is deprecated! */
#define ENOTDIR __KERNEL_NEG(34) /* Not a directory. */
#ifdef __LOOSE_ERRROR_CODES
# define EPATH ENOTDIR
#endif
/* The current process has too many files open and can't open any
more. Duplicate descriptors do count toward this limit.
In BSD and GNU, the number of open files is controlled by a
resource limit that can usually be increased. If you get this
error, you might want to increase the `RLIMIT_NOFILE' limit
or make it unlimited.
Under MiNT we currently have to live without such luxury. */
#define EMFILE __KERNEL_NEG(35) /* Too many open files. */
/* Permission denied; the file permissions do not allow the
attempted operation.
KERNEL: This used to be mixed up with EPERM (operation not permitted). */
#define EACCES __KERNEL_NEG(36) /* Permission denied. */
#ifdef __LOOSE_ERRROR_CODES
# define EACCESS EACCES
#endif
/* Bad file descriptor; for example, I/O on a descriptor that has been
closed or reading from a descriptor open only for writing (or vice
versa). */
#define EBADF __KERNEL_NEG(37) /* Bad file descriptor. */
/* Operation not permitted; only the owner of the file (or other
resource) or processes with special privileges can perform the
operation.
This is a new error code (used to be a synonyme for EACCES). As
a general rule you can say, whenever you want to disallow something
take EACCES. Only if you positively know that EPERM should be
used, then take this one.
FIXME: Some kernel functions should return EPERM, for example
Tsettimeofday, Tsetdate, Tsettime, Setdate ... */
#define EPERM __KERNEL_NEG(38) /* Operation not permitted. */
/* No memory available. The system cannot allocate more virtual
memory because its capacity is full. */
#define ENOMEM __KERNEL_NEG(39) /* Cannot allocate memory. */
/* Bad address; an invalid pointer was detected. In the GNU system,
this error never happens; you get a signal instead. In the MiNT
system this error often happens, and you get angry mails and flames
on the usenet. */
#define EFAULT __KERNEL_NEG(40) /* Bad address. */
/* No such device or address. The system tried to use the device
represented by a file you specified, and it couldn't find the
device. This can mean that the device file was installed
incorrectly, or that the physical device is missing or not
correctly attached to the computer.
Under MiNT this can also happen if a pathname starts with a
drive letter followed by a colon (e. g. `x:/dont/exist'). This
was called `invalid drive specification' or `invalid drive id'. */
#define ENXIO __KERNEL_NEG(46) /* No such device or address. */
/* An attempt to make an improper link across file systems was
detected. This happens not only when you use `link' (for
hard links) but also when you rename a file with `rename'. */
#define EXDEV __KERNEL_NEG(48) /* Cross-device link. */
/* No more matching file names, only used by Fsnext(2). Don't mix
that up with ENFILE. */
#define ENMFILES __KERNEL_NEG(49) /* No more matching file names. */
#ifdef __LOOSE_ERRROR_CODES
# define ENMFIL ENMFILES
#endif
/* There are too many distinct file openings in the entire system.
Note that any number of linked channels count as just one file
opening. This error never occurs in the GNU system, and it probably
never occurs in the MiNT system, too. */
#define ENFILE __KERNEL_NEG(50) /* File table overflow. */
/* Locking conflict. Deprecated.
KERNEL: If the LOCK_NB flag was selected EWOULDBLOCK should be used
instead. Otherwise the process should be blocked until the lock
is available? */
#define ELOCKED __KERNEL_NEG(58) /* Locking conflict. */
/* Deprecated, should only happen with Dlock(). */
#define ENSLOCK __KERNEL_NEG(59) /* No such lock. */
/* Bad argument, used to be `range error/context unknown'. Deprecated. */
#define EBADARG __KERNEL_NEG(64) /* Bad argument. */
/* Another spurious error, deprecated. */
#define EINTERNAL __KERNEL_NEG(65) /* Internal error. */
#ifdef __LOOSE_ERRROR_CODES
# define EINTRN EINTERNAL
#endif
/* Invalid executable file format. This condition is detected by the
`exec' functions. */
#define ENOEXEC __KERNEL_NEG(66) /* Invalid executable file format. */
#ifdef __LOOSE_ERRROR_CODES
# define EPLFMT ENOEXEC
#endif
/* Can't grow block, deprecated. At least within the library this should
be handled with ENOMEM. */
#define ESBLOCK __KERNEL_NEG(67) /* Memory block growth failure. */
#ifdef __LOOSE_ERRROR_CODES
# define EGSBF ESBLOCK
#endif
/* Terminated with CTRL-C (Kaos, MagiC, BigDOS). Nonsense. */
#define EBREAK __KERNEL_NEG(68) /* Aborted by user. */
/* This looks like a joke but it isn't. Who has introduced that
in the kernel? - fna: comes from MagiC */
#define EXCPT __KERNEL_NEG(69) /* Terminated with bombs. */
/* An attempt to execute a file that is currently open for writing, or
write to a file that is currently being executed. Often using a
debugger to run a program is considered having it open for writing
and will cause this error. (The name stands for "text file
busys".) This is not an error in the GNU system; the text is
copied as necessary. In the MiNT system this error currently cannot
occur. */
#define ETXTBSY __KERNEL_NEG(70) /* Text file busy. */
/* File too big; the size of a file would be larger than allowed by
the system.
KERNEL: This is a new code. If this error condition can occur,
then the correct code should be returned. */
#define EFBIG __KERNEL_NEG(71) /* File too big. */
/* Too many levels of symbolic links were encountered in looking up a
file name. This often indicates a cycle of symbolic links.
KERNEL: There was no difference between EMLINK (too many links and
ELOOP (too many symbolic links). The more common meaning of this
error code is preserved, but whenenver EMLINK should be used, this
has to be fixed in the kernel. */
#define ELOOP __KERNEL_NEG(80) /* Too many symbolic links. */
/* Broken pipe; there is no process reading from the other end of a
pipe. Every function that returns this error code also generates
a `SIGPIPE' signal; this signal terminates the program if not
handled or blocked. Thus, your program will never actually see
`EPIPE' unless it has handled or blocked `SIGPIPE'. */
#define EPIPE __KERNEL_NEG(81) /* Broken pipe. */
/* Too many links; the link count of a single file would become too
large. `rename' can cause this error if the file being renamed
already has as many links as it can take.
KERNEL: This is a new error code. See the note for ELOOP. */
#define EMLINK __KERNEL_NEG(82) /* Too many links. */
/* Directory not empty, where an empty directory was expected. Typically
this error occurs when you are trying to delete a directory.
KERNEL: New error code, for the case of non-empty directories
EEXIST was returned. The new behavior could cause compatibility
problems since inproper implementations of recursive rm commands
could rely on the old error code (85) being returned.
Which error is more probable? */
#define ENOTEMPTY __KERNEL_NEG(83) /* Directory not empty. */
/* File exists; an existing file was specified in a context where it
only makes sense to specify a new file. */
#define EEXIST __KERNEL_NEG(85) /* File exists. */
/* Filename too long (longer than `PATH_MAX') or host name too long
(in `gethostname' or `sethostname'). */
#define ENAMETOOLONG __KERNEL_NEG(86) /* Name too long. */
/* Inappropriate I/O control operation, such as trying to set terminal
modes on ordinary files. */
#define ENOTTY __KERNEL_NEG(87) /* Not a tty. */
/* Range error; used by mathematical functions when the result value
is not representable because of overflow or underflow.
The string to number conversion functions (`strtol', `strtoul',
`strtod', etc. can also return this error. */
#define ERANGE __KERNEL_NEG(88) /* Range error. */
/* Domain error; used by mathematical functions when an argument
value does not fall into the domain over which the function is
defined. */
#define EDOM __KERNEL_NEG(89) /* Domain error. */
/* Input/output error; usually used for physical read or write errors. */
#define EIO __KERNEL_NEG(90) /* I/O error */
/* No space left on device; write operation on a file failed because
the disk is full. */
#define ENOSPC __KERNEL_NEG(91) /* No space left on device. */
/* Error number 92-99 reserved for TraPatch. */
/* This means that the per-user limit on new process would be
exceeded by an attempted `fork'. */
#define EPROCLIM __KERNEL_NEG(100) /* Too many processes for user. */
/* This file quota system is confused because there are too many users. */
#define EUSERS __KERNEL_NEG(101) /* Too many users. */
/* The user's disk quota was exceeded. */
#define EDQUOT __KERNEL_NEG(102) /* Quota exceeded. */
/* Stale NFS handle. This indicates an internal confusion in
the NFS system which is due to file system rearrangements on the
server host. Reparing this condition usually requires unmounting
and remounting the NFS file system on the local host. */
#define ESTALE __KERNEL_NEG(103) /* Stale NFS file handle. */
/* An attempt was made to NFS-mount a remote file system with a file
name that already specifies an NFS-mounted file. (This is an
error on some operating systems, but we expect it to work properly
on the GNU system, making this error code impossible). */
#define EREMOTE __KERNEL_NEG(104) /* Object is remote. */
/* ??? */
#define EBADRPC __KERNEL_NEG(105) /* RPC struct is bad. */
#define ERPCMISMATCH __KERNEL_NEG(106) /* RPC version wrong. */
#define EPROGUNAVAIL __KERNEL_NEG(107) /* RPC program not available. */
#define EPROGMISMATCH __KERNEL_NEG(108) /* RPC program version wrong. */
#define EPROCUNAVAIL __KERNEL_NEG(109) /* RPC bad procedure for program. */
/* No locks available. This is used by the file locking facilities;
This error is never generated by the GNU system, but it can result
from an operation to an NFS server running another operating system. */
#define ENOLCK __KERNEL_NEG(110) /* No locks available. */
/* ??? */
#define EAUTH __KERNEL_NEG(111) /* Authentication error. */
#define ENEEDAUTH __KERNEL_NEG(112) /* Need authenticator. */
/* In the GNU system, servers supporting the `term' protocol return
this error for certain operations when the caller is not in the
foreground process group of the terminal. Users do not usually
see this error because functions such as `read' and `write'
translate it into a `SIGTTIN' or `SIGTTOU' signal. */
#define EBACKGROUND __KERNEL_NEG(113) /* Inappropriate operation for background process. */
/* ??? */
#define EBADMSG __KERNEL_NEG(114) /* Not a data message. */
#define EIDRM __KERNEL_NEG(115) /* Identifier removed. */
#define EMULTIHOP __KERNEL_NEG(116) /* Multihop attempted. */
#define ENODATA __KERNEL_NEG(117) /* No data available. */
#define ENOLINK __KERNEL_NEG(118) /* Link has been severed. */
#define ENOMSG __KERNEL_NEG(119) /* No message of desired type. */
#define ENOSR __KERNEL_NEG(120) /* Out of streams resources. */
#define ENOSTR __KERNEL_NEG(121) /* Device not a stream. */
#define EOVERFLOW __KERNEL_NEG(122) /* Value too large for defined data type. */
#define EPROTO __KERNEL_NEG(123) /* Protocol error. */
#define ETIME __KERNEL_NEG(124) /* Timer expired. */
/* Argument list too long; used when the arguments passed to a new
program being executed with one of the `exec' functions occupy
too much memory space. This condition never arises in the
MiNT system. */
#define E2BIG __KERNEL_NEG(125) /* Argument list too long. */
/* The following error codes are defined by the Linux/i386 kernel.
Some of them are probably useful for MiNT, too. */
#define ERESTART __KERNEL_NEG(126) /* Interrupted system call should be
restarted. */
#define ECHRNG __KERNEL_NEG(127) /* Channel number out of range. */
/* Interrupted function call; an asynchronous signal occured and
prevented completion of the call. When this happens, you should
try the call again.
On other systems you can choose to have functions resume after a
signal handled, rather than failing with `EINTR'. */
#define EINTR __KERNEL_NEG(128) /* Interrupted function call. */
/* Falcon XBIOS errors. */
#define ESNDLOCKED __KERNEL_NEG(129) /* Sound system is already locked. */
#define ESNDNOTLOCK __KERNEL_NEG(130) /* Sound system is not locked. */
#define EL2NSYNC __KERNEL_NEG(131) /* Level 2 not synchronized. */
#define EL3HLT __KERNEL_NEG(132) /* Level 3 halted. */
#define EL3RST __KERNEL_NEG(133) /* Level 3 reset. */
#define ELNRNG __KERNEL_NEG(134) /* Link number out of range. */
#define EUNATCH __KERNEL_NEG(135) /* Protocol driver not attached. */
#define ENOCSI __KERNEL_NEG(136) /* No CSI structure available. */
#define EL2HLT __KERNEL_NEG(137) /* Level 2 halted. */
#define EBADE __KERNEL_NEG(138) /* Invalid exchange. */
#define EXFULL __KERNEL_NEG(139) /* Exchange full. */
#define ENOANO __KERNEL_NEG(140) /* No anode. */
#define EBADRQC __KERNEL_NEG(141) /* Invalid request code. */
#define EBADSLT __KERNEL_NEG(142) /* Invalid slot. */
#define EBFONT __KERNEL_NEG(143) /* Bad font file format. */
#define ENONET __KERNEL_NEG(144) /* Machine is not on the network. */
#define ENOPKG __KERNEL_NEG(145) /* Package is not installed. */
#define EADV __KERNEL_NEG(146) /* Advertise error. */
#define ESRMNT __KERNEL_NEG(147) /* Srmount error. */
#define ECOMM __KERNEL_NEG(148) /* Communication error on send. */
#define EDOTDOT __KERNEL_NEG(149) /* RFS specific error. */
#define ELIBACC __KERNEL_NEG(150) /* Cannot access a needed shared library. */
#define ELIBBAD __KERNEL_NEG(151) /* Accessing a corrupted shared library. */
#define ELIBSCN __KERNEL_NEG(152) /* .lib section in a.out corrupted. */
#define ELIBMAX __KERNEL_NEG(153) /* Attempting to link too many shared
libraries. */
#define ELIBEXEC __KERNEL_NEG(154) /* Cannot exec a shared library directly. */
#define ESTRPIPE __KERNEL_NEG(155) /* Streams pipe error. */
#define EUCLEAN __KERNEL_NEG(156) /* Structure needs cleaning. */
#define ENOTNAM __KERNEL_NEG(157) /* Not a XENIX named type file. */
#define ENAVAIL __KERNEL_NEG(158) /* NO XENIX semaphores available. */
#define EREMOTEIO __KERNEL_NEG(159) /* Remote I/O error. */
#ifdef __KERNEL__
/* This is not really an error but a dummy error code used within the kernel
to indicate that a mount point may have been crossed. */
#define EMOUNT __KERNEL_NEG(200)
#endif
/* There used to be a distinction between MiNTNet errors and ordinary
MiNT errors. This macro is provided for backwards compatibility. */
#define _NE_BASE 300
/* A file that isn't a socket was specified when a socket is required. */
#define ENOTSOCK __KERNEL_NEG(300) /* Socket operation on non-socket. */
/* No default destination address was set for the socket. You get
this error when you try to transmit data over a connectionless
socket, without first specifying a destination for the data with
`connect'. */
#define EDESTADDRREQ __KERNEL_NEG(301) /* Destination address required. */
/* The size of a message sent on a socket was larger than the
supported maximum size. */
#define EMSGSIZE __KERNEL_NEG(302) /* Message too long. */
/* The socket type does not support the requested communications
protocol. */
#define EPROTOTYPE __KERNEL_NEG(303) /* Protocol wrong type for socket. */
/* You specified a socket option that doesn't make sense for the
particular protocol being used by the socket. */
#define ENOPROTOOPT __KERNEL_NEG(304) /* Protocol not available. */
/* The socket domain does not support the requested communications
protocol (perhaps because the requested protocol is completely
invalid). */
#define EPROTONOSUPPORT __KERNEL_NEG(305) /* Protocol not supported. */
/* The socket type is not supported. */
#define ESOCKTNOSUPPORT __KERNEL_NEG(306) /* Socket type not supported. */
/* The operation you requested is not supported. Some socket
functions don't make sense for all type of sockets, and others
may not be implemented for all communications prototcols. In the
GNU system, this error can happen for many calls when the object
does not support the particular operation; it is a generic
indication that the server knows nothing to do for that
cal. */
#define EOPNOTSUPP __KERNEL_NEG(307) /* Operation not supported. */
/* The socket communications protocol family you requested is not
supported. */
#define EPFNOSUPPORT __KERNEL_NEG(308) /* Protocol family not supported. */
/* The address family specified for a socket is not supported; it is
inconsistent with the protocol being used on the socket. */
#define EAFNOSUPPORT __KERNEL_NEG(309) /* Address family not supported
by protocol. */
/* The requested socket address is already in use. */
#define EADDRINUSE __KERNEL_NEG(310) /* Address already in use */
/* The requested socket address is not available; for example, you
tried to give a socket a name that doesn't match the local host
name. */
#define EADDRNOTAVAIL __KERNEL_NEG(311) /* Cannot assign requested address. */
/* A socket operation failed because the network was down. */
#define ENETDOWN __KERNEL_NEG(312) /* Network is down. */
/* A socket operation failed because the subnet containing the remote
host was unreachable. */
#define ENETUNREACH __KERNEL_NEG(313) /* Network is unreachable. */
/* A network connection was reset because the remote host crashed. */
#define ENETRESET __KERNEL_NEG(314) /* Network dropped conn. because of
reset. */
/* A network connnection was aborted locally. */
#define ECONNABORTED __KERNEL_NEG(315) /* Software caused connection abort. */
/* A network connection was closed for reasons outside the control of
the local host, such as by the remote machine rebooting or an
unrecoverable protocol violation. */
#define ECONNRESET __KERNEL_NEG(316) /* Connection reset by peer. */
/* You tried to connect a socket that is already connected. */
#define EISCONN __KERNEL_NEG(317) /* Socket is already connected. */
/* The socket is not connected to anything. You get this error when
you try to transmit data over the socket, without first specifying
a destination for the data. For a connectionless socket (for
datagram protocols, such as UDP), you get `EDESTADDRREQ' instead. */
#define ENOTCONN __KERNEL_NEG(318) /* Socket is not connected. */
/* The socket has already been shut down. */
#define ESHUTDOWN __KERNEL_NEG(319) /* Cannot send after shutdown. */
/* A socket operation with a specified timeout received nor response
during the timeout period. */
#define ETIMEDOUT __KERNEL_NEG(320) /* Connection timed out. */
/* A remote host refused to allow the network connection (typically
because it is not running the requested service). */
#define ECONNREFUSED __KERNEL_NEG(321) /* Connection refused. */
/* The remote host for a requested network connection is down. */
#define EHOSTDOWN __KERNEL_NEG(322) /* Host is down. */
/* The remote host for a requested network connection is not
reachable. */
#define EHOSTUNREACH __KERNEL_NEG(323) /* No route to host. */
/* An operation is already in progress on an object that has
non-blocking mode selected. */
#define EALREADY __KERNEL_NEG(324) /* Operation already in progress. */
/* An operation that cannot complete immediately was initiated on an
object that has non-blocking mode selected. Some functions that
must always block (such as `connect') never return `EAGAIN'. Instead
they return `EINPROGRESS' to indicate that the operation has begun and
will take some time. Attempts to manipulate the object before the
call completes return `EALREADY'. You can use the `select' function
to find out when the pending operation has completed. */
#define EINPROGRESS __KERNEL_NEG(325) /* Operation now in progress. */
/* Resource temporarily unavailable; the call might work if you try
again later. The macro `EWOULDBLOCK' is another name for `EAGAIN';
they are always the same in the MiNT system.
This error can happen in a few different situations:
* An operation that would block was attempted on an object that
has non-blocking mode selected. Trying the same operation
again will block until some external condition makes it
possible to read, write or connect (whatever the operation).
You can use `select' to find out when the operation will be
possible.
Portability Note: In many older Unix systems, this condition
was indicated by `EWOULDBLOCK', which was a distinct error
code different from `EAGAIN'. To make your program portable,
you should check for both codes and treat them the same.
In C programs you should not use a case statement for that
because that will trigger a compile-time error for systems
where `EWOULDBLOCK' and `EAGAIN' expand to the same numerical
value. You should either handle treat it with preprocessor
macros (test if they are equal or not) or use an if conditional.
* A temporary resource shortage made an operation impossible.
`fork' can return this error. It indicates that the shortage
is expected to pass, so your program can try the call again
later and it may succeed. It is probably a good idea to
delay for a few seconds before trying it again, to allow time
for other processes to release scarce resources. Such
shortages are usually fairly serious and affect the whole
system, so usually an interactive program should report the
error to the user and return to its command loop. */
#define EAGAIN __KERNEL_NEG(326) /* Operation would block. */
#define EWOULDBLOCK EAGAIN
/* The kernel's buffer for I/O operations are all in use. In GNU,
this error is always synonymous with `ENOMEM'; you may get one or
the other from network operations. */
#define ENOBUFS __KERNEL_NEG(327) /* No buffer space available. */
/* Too many references: cannot splice. */
#define ETOOMANYREFS __KERNEL_NEG(328) /* Too many references. */
#define _NE_MAX ETOOMANYREFS
#endif /* _MINT_ERRNO_H */

View File

@@ -0,0 +1,462 @@
/*
* GNU-C Bindings for Falcon XBIOS functions
* -- hyc 11-9-1992 (uunet!hanauma.Jpl.Nasa.Gov!hyc)
*/
#ifndef _FALCON_H
#define _FALCON_H 1
#ifndef _MINT_OSBIND_H
# include <mint/osbind.h>
#endif
#ifndef trap_14_wwwwww
#define trap_14_wwwwww(n,a,b,c,d,e) \
__extension__ \
({ \
register long retvalue __asm__("d0"); \
short _a = (short)(a); \
short _b = (short)(b); \
short _c = (short)(c); \
short _d = (short)(d); \
short _e = (short)(e); \
\
__asm__ volatile \
("\
movw %6,sp@-; \
movw %5,sp@-; \
movw %4,sp@-; \
movw %3,sp@-; \
movw %2,sp@-; \
movw %1,sp@-; \
trap #14; \
lea sp@(12),sp" \
: "=r"(retvalue) \
: "g"(n), "r"(_a), "r"(_b), "r"(_c), "r"(_d), "r"(_e) \
: __CLOBBER_RETURN("d0") "d1", "d2", "a0", "a1", "a2", "memory"); \
retvalue; \
})
#endif
#ifndef trap_14_wllll
#define trap_14_wllll(n,a,b,c,d) \
__extension__ \
({ \
register long retvalue __asm__("d0"); \
long _a = (long)(a); \
long _b = (long)(b); \
long _c = (long)(c); \
long _d = (long)(d); \
\
__asm__ volatile \
("\
movl %5,sp@-; \
movl %4,sp@-; \
movl %3,sp@-; \
movl %2,sp@-; \
movw %1,sp@-; \
trap #14; \
lea sp@(18),sp" \
: "=r"(retvalue) \
: "g"(n), "r"(_a), "r"(_b), "r"(_c), "r"(_d) \
: __CLOBBER_RETURN("d0") "d1", "d2", "a0", "a1", "a2", "memory"); \
retvalue; \
})
#endif
#ifndef trap_14_wllllll
#define trap_14_wllllll(n,a,b,c,d,e,f) \
__extension__ \
({ \
register long retvalue __asm__("d0"); \
long _a = (long)(a); \
long _b = (long)(b); \
long _c = (long)(c); \
long _d = (long)(d); \
long _e = (long)(e); \
long _f = (long)(f); \
\
__asm__ volatile \
("\
movl %7,sp@-; \
movl %6,sp@-; \
movl %5,sp@-; \
movl %4,sp@-; \
movl %3,sp@-; \
movl %2,sp@-; \
movw %1,sp@-; \
trap #14; \
lea sp@(26),sp" \
: "=r"(retvalue) \
: "g"(n), "r"(_a), "r"(_b), "r"(_c), "r"(_d), "r"(_e), "r"(_f) \
: __CLOBBER_RETURN("d0") "d1", "d2", "a0", "a1", "a2", "memory"); \
retvalue; \
})
#endif
#ifndef trap_14_wll
#define trap_14_wll(n,a,b) \
__extension__ \
({ \
register long retvalue __asm__("d0"); \
long _a = (long)(a); \
long _b = (long)(b); \
\
__asm__ volatile \
("\
movl %3,sp@-; \
movl %2,sp@-; \
movw %1,sp@-; \
trap #14; \
lea sp@(10),sp" \
: "=r"(retvalue) \
: "g"(n), "r"(_a), "r"(_b) \
: __CLOBBER_RETURN("d0") "d1", "d2", "a0", "a1", "a2", "memory"); \
retvalue; \
})
#endif
#ifndef trap_14_wlwl
#define trap_14_wlwl(n,a,b,c) \
__extension__ \
({ \
register long retvalue __asm__("d0"); \
long _a = (long)(a); \
short _b = (short)(b); \
long _c = (long)(c); \
\
__asm__ volatile \
("\
movl %4,sp@-; \
movw %3,sp@-; \
movl %2,sp@-; \
movw %1,sp@-; \
trap #14; \
lea sp@(12),sp" \
: "=r"(retvalue) \
: "g"(n), "r"(_a), "r"(_b), "r"(_c) \
: __CLOBBER_RETURN("d0") "d1", "d2", "a0", "a1", "a2", "memory"); \
retvalue; \
})
#endif
/*
* Video
*/
/* Video mode codes */
#define VERTFLAG 0x100 /* double-line on VGA, interlace on ST/TV */
#define STMODES 0x080 /* ST compatible */
#define OVERSCAN 0x040 /* Multiply X&Y rez by 1.2, ignored on VGA */
#define PAL 0x020 /* PAL if set, else NTSC */
#define VGA 0x010 /* VGA if set, else TV mode */
#define COL80 0x008 /* 80 column if set, else 40 column */
#define NUMCOLS 7 /* Mask for number of bits per pixel */
#define BPS16 4
#define BPS8 3
#define BPS4 2
#define BPS2 1
#define BPS1 0
/* VgetMonitor() return values */
enum montypes {STmono=0, STcolor, VGAcolor, TVcolor};
/* VsetSync flags - 0=internal, 1=external */
#define VID_CLOCK 1
#define VID_VSYNC 2
#define VID_HSYNC 4
#define VsetScreen(lscrn,pscrn,rez,mode) \
(void)trap_14_wllww((short)5,(long)(lscrn),(long)(pscrn), \
(short)(rez),(short)(mode))
#define VsetMode(mode) \
(short)trap_14_ww((short)88,(short)(mode))
#define VgetMonitor() \
(short)trap_14_w((short)89)
#define VgetSize(mode) \
(long)trap_14_ww((short)91,(short)(mode))
#define VsetSync(ext) \
(void)trap_14_ww((short)90,(short)(ext))
#define VsetRGB(index,count,array) \
(void)trap_14_wwwl((short)93,(short)(index),(short)(count), \
(long *)(array))
#define VgetRGB(index,count,array) \
(void)trap_14_wwwl((short)94,(short)(index),(short)(count), \
(long *)(array))
#define Validmode(mode) \
(short)trap_14_ww((short)95,(short)(mode))
#define VsetMask(andmask,ormask) \
(short)trap_14_www((short)150,(short)(andmask),(short)(ormask))
/*
* Sound
*/
/* _SND cookie values */
#define SND_PSG 0x01 /* Yamaha PSG */
#define SND_8BIT 0x02 /* 8 bit DMA stereo */
#define SND_16BIT 0x04 /* 16 bit CODEC */
#define SND_DSP 0x08 /* DSP */
#define SND_MATRIX 0x10 /* Connection Matrix */
/* XXX Docs say Falcon shows 0x3f. What does bit 0x20 mean ??? */
/*
* Sound data memory layout - samples are all signed values
*
* (each char = 1 byte, 2 chars = 1 word)
* 1 16 bit stereo track: LLRRLLRRLLRRLLRR
* 1 8 bit stereo track: LRLRLRLR
* 2 16 bit stereo tracks: L0R0L1R1L0R0L1R1
* etc...
*/
/* Setbuffer regions */
#define SR_PLAY 0 /* Set playback registers */
#define SR_RECORD 1 /* Set record registers */
/* Soundcmd Modes */
#define LTATTEN 0 /* Left-channel output attenuation */
#define RTATTEN 1 /* Right channel atten */
#define LTGAIN 2 /* Left input gain */
#define RTGAIN 3 /* Right channel gain */
/* gain and attenuation in 1.5 dB units, 0x00V0, V:0-15 */
#define ADDERIN 4 /* Select inputs to adder 0=off, 1=on */
#define ADCIN 1 /* Input from ADC */
#define MATIN 2 /* Input from connection matrix */
#define ADCINPUT 5 /* Select input to ADC, 0=mic, 1=PSG */
#define ADCRT 1 /* Right channel input */
#define ADCLT 2 /* Left input */
#define SETPRESCALE 6 /* Set TT compatibility prescaler */
#define PREMUTE 0 /* was /1280, now is invalid, mutes */
#define PRE1280 PREMUTE
#define PRE640 1 /* divide by 640 */
#define PRE320 2 /* / 320 */
#define PRE160 3 /* / 160 */
/* Record/Playback modes */
#define STEREO8 0 /* 8 bit stereo */
#define STEREO16 1 /* 16 bit stereo */
#define MONO8 2 /* 8 bit mono */
/* Record/Playback tracks range from 0 to 3 */
/* XXX Doc for Settracks could be clearer. Can we individually set, e.g.,
tracks 0 & 2 for playback, or must track selections be contiguous? */
/* Sound buffer interrupts */
/* sources */
#define SI_TIMERA 0 /* Timer A interrupt */
#define SI_MFPI7 1 /* MFP interrupt 7 */
/* causes */
#define SI_NONE 0 /* No interrupts */
#define SI_PLAY 1 /* Intr at end of play buffer */
#define SI_RECORD 2 /* Intr at end of record buffer */
#define SI_BOTH 3 /* Interrupt for either play or record */
/* Buffoper flags */
#define SB_PLA_ENA 1 /* Play enable */
#define SB_PLA_RPT 2 /* Play repeat (continuous loop mode) */
#define SB_REC_ENA 4 /* Record enable */
#define SB_REC_RPT 8 /* Record repeat */
/* Dsptristate - 0=tristate, 1=enable */
/* Gpio modes */
#define GPIO_SET 0 /* Set I/O direction, 0=in, 1=out */
#define GPIO_READ 1 /* Read bits - only 3 bits on gpio */
#define GPIO_WRITE 2 /* Write gpio data bits */
/* Devconnect (connection matrix) source devices */
#define DMAPLAY 0 /* DMA playback */
#define DSPXMIT 1 /* DSP transmit */
#define EXTINP 2 /* External input */
#define ADC 3 /* Microphone/PSG, see Soundcmd(ADCINPUT) */
/* Devconnect destination devices, bitmapped */
#define DMAREC 1 /* DMA record */
#define DSPRECV 2 /* DSP receive */
#define EXTOUT 4 /* External output */
#define DAC 8 /* Headphone, internal speaker, monitor */
/* Devconnect clock sources */
#define CLK25M 0 /* Internal 25.175 MHz clock */
#define CLKEXT 1 /* External clock */
#define CLK32M 2 /* Internal 32 MHz. Invalid for CODEC */
/* Devconnect clock prescaler values */
/* XXX Doc lists incorrect hz numbers for many of these... */
#define CLKOLD 0 /* TT compatible, see Soundcmd(SETPRESCALE) */
#define CLK50K 1 /* 49170 hz */
#define CLK33K 2 /* 32780 hz */
#define CLK25K 3 /* 24585 hz */
#define CLK20K 4 /* 19668 hz */
#define CLK16K 5 /* 16390 hz */
/* 6 (14049 hz) invalid for CODEC */
#define CLK12K 7 /* 12292 hz */
/* 8 (10927 hz) invalid for CODEC */
#define CLK10K 9 /* 9834 hz */
/* 10 (8940 hz) invalid for CODEC */
#define CLK8K 11 /* 8195 hz */
/* 12 (7565 hz) invalid */
/* 13 (7024 hz) invalid */
/* 14 (6556 hz) invalid */
/* 15 (6146 hz) invalid */
/* Sndstatus command */
#define SND_CHECK 0 /* Check current status */
#define SND_RESET 1 /* Reset sound system */
/*
* Reset effects: DSP tristated, gain=atten=0, matrix reset,
* ADDERIN=0, Mode=STEREO8, Play=Record=Monitor tracks=0,
* interrupts disabled, buffer operation disabled.
*/
/* Sndstatus status return */
#define SS_OK 0 /* No errors */
#define SS_CTRL 1 /* Invalid control field (Data assumed OK) */
#define SS_SYNC 2 /* Invalid sync format (mutes) */
#define SS_SCLK 3 /* Serial clock out of valid range (mutes) */
#define SS_RTCLIP 0x10 /* Right channel is clipping */
#define SS_LTCLIP 0x20 /* Left channel is clipping */
/* Structure used by Buffptr */
typedef struct SndBufPtr {
char *play;
char *record;
long reserve1;
long reserve2;
} SndBufPtr;
#define Locksnd() \
(long)trap_14_w((short)128)
#define Unlocksnd() \
(long)trap_14_w((short)129)
#define Setbuffer(region,beg,end) \
(long)trap_14_wwll((short)131,(short)(region),(long)(beg),(long)(end))
#define Soundcmd(mode,data) \
(long)trap_14_www((short)130,(short)(mode),(short)(data))
#define Setmode(stereo_mode) \
(long)trap_14_ww((short)132,(short)(stereo_mode))
#define Settracks(play,rec) \
(long)trap_14_www((short)133,(short)(play),(short)(rec))
#define Setmontracks(montrack) \
(long)trap_14_ww((short)134,(short)(montrack))
#define Setinterrupt(src_inter,cause) \
(long)trap_14_www((short)135,(short)(src_inter), \
(short)(cause))
#define Buffoper(mode) \
(long)trap_14_ww((short)136,(short)(mode))
#define Dsptristate(dspxmit,dsprec) \
(long)trap_14_www((short)137,(short)(dspxmit), \
(short)(dsprec))
#define Gpio(mode,data) \
(long)trap_14_www((short)138,(short)(mode),(short)(data))
#define Devconnect(src,dst,sclk,pre,proto) \
(long)trap_14_wwwwww((short)139,(short)(src),(short)(dst), \
(short)(sclk),(short)(pre),(short)(proto))
#define Sndstatus(reset) \
(long)trap_14_ww((short)140,(short)(reset))
#define Buffptr(ptr) \
(long)trap_14_wl((short)141,(long)(ptr))
/*
* DSP functions
*
* Don't even *think* of trying to use these without the manual!
*/
#define Dsp_DoBlock(data_in,size_in,data_out,size_out) \
(void)trap_14_wllll((short)96,(long)(data_in),(long)(size_in), \
(long)(data_out),(long)(size_out))
#define Dsp_BlkHandShake(data_in,size_in,data_out,size_out) \
(void)trap_14_wllll((short)97,(long)(data_in),(long)(size_in), \
(long)(data_out),(long)(size_out))
#define Dsp_BlkUnpacked(data_in,size_in,data_out,size_out) \
(void)trap_14_wllll((short)98,(long)(data_in),(long)(size_in), \
(long)(data_out),(long)(size_out))
#define Dsp_BlkWords(data_in,size_in,data_out,size_out) \
(void)trap_14_wllll((short)123,(long)(data_in),(long)(size_in), \
(long)(data_out),(long)(size_out))
#define Dsp_BlkBytes(data_in,size_in,data_out,size_out) \
(void)trap_14_wllll((short)124,(long)(data_in),(long)(size_in), \
(long)(data_out),(long)(size_out))
#define Dsp_MultBlocks(numsend,numrecv,sendblks,recvblks) \
(void)trap_14_wllll((short)127,(long)(numsend),(long)(numrecv), \
(long)(sendblks),(long)(recvblks))
#define Dsp_InStream(data_in,blksiz,numblks,blksdone) \
(void)trap_14_wllll((short)99,(long)(data_in),(long)(blksiz), \
(long)(numblks),(long)(blksdone))
#define Dsp_OutStream(data_out,blksiz,numblks,blksdone) \
(void)trap_14_wllll((short)100,(long)(data_out),(long)(blksiz), \
(long)(numblks),(long)(blksdone))
#define Dsp_IOStream(data_in,data_out,blkisiz,blkosiz,numblks,blksdone) \
(void)trap_14_wllllll((short)101,(long)(data_in),(long)(data_out),\
(long)(blkisiz),(long)(blkosiz),(long)(numblks), \
(long)(blksdone))
#define Dsp_SetVectors(rcvr,xmtr) \
(void)trap_14_wll((short)126,(long)(rcvr),(long)(xmtr))
#define Dsp_RemoveInterrupts(mask) \
(void)trap_14_ww((short)102,(short)(mask))
#define Dsp_GetWordSize() (short)trap_14_w((short)103)
#define Dsp_Lock() (short)trap_14_w((short)104)
#define Dsp_Unlock() (void)trap_14_w((short)105)
#define Dsp_Available(xmem,ymem) \
(void)trap_14_wll((short)106,(long)(xmem),(long)(ymem))
#define Dsp_Reserve(xmem,ymem) \
(short)trap_14_wll((short)107,(long)(xmem),(long)(ymem))
#define Dsp_LoadProg(file,ability,buffer) \
(short)trap_14_wlwl((short)108,(long)(file),(short)(ability), \
(long)(buffer))
#define Dsp_ExecProg(codeptr,codesiz,ability) \
(void)trap_14_wllw((short)109,(long)(codeptr),(long)(codesiz), \
(short)(ability))
#define Dsp_ExecBoot(codeptr,codesiz,ability) \
(void)trap_14_wllw((short)110,(long)(codeptr),(long)(codesiz), \
(short)(ability))
#define Dsp_LodToBinary(file,codeptr) \
(long)trap_14_wll((short)111,(long)(file),(long)(codeptr))
#define Dsp_TriggerHC(vector) \
(void)trap_14_ww((short)112,(short)(vector))
#define Dsp_RequestUniqueAbility() (short)trap_14_w((short)113)
#define Dsp_GetProgAbility() (short)trap_14_w((short)114)
#define Dsp_FlushSubroutines() (void)trap_14_w((short)115)
#define Dsp_LoadSubroutine(ptr,siz,ability) \
(short)trap_14_wllw((short)116,(long)(ptr),(long)(siz), \
(short)(ability))
#define Dsp_InqSubrAbility(ability) \
(short)trap_14_ww((short)117,(short)(ability))
#define Dsp_RunSubroutine(handle) \
(short)trap_14_ww((short)118,(short)(handle))
#define Dsp_Hf0(flag) \
(short)trap_14_ww((short)119,(short)(flag))
#define Dsp_Hf1(flag) \
(short)trap_14_ww((short)120,(short)(flag))
#define Dsp_Hf2() (short)trap_14_w((short)121)
#define Dsp_Hf3() (short)trap_14_w((short)122)
#define Dsp_HStat() (char)trap_14_w((short)125)
#endif /* _FALCON_H */

View File

@@ -0,0 +1,15 @@
#ifndef _IFLINK_H
#define _IFLINK_H 1
#ifndef _FEATURES_H
# include <features.h>
#endif
__EXTERN int if_link __PROTO ((char*, char*));
__EXTERN int if_getlnkflags __PROTO ((char*, short*));
__EXTERN int if_setlnkflags __PROTO ((char*, short));
__EXTERN int if_getifflags __PROTO ((char*, short*));
__EXTERN int if_setifflags __PROTO ((char*, short));
#endif /* mint/iflink.h */

View File

@@ -0,0 +1,997 @@
/*
* Common include file for C interface to low level Line A calls
*
* ++jrb bammi@cadence.com
*/
#ifndef _MINT_LINEA_H
#define _MINT_LINEA_H
#ifndef _FEATURES_H
# include <features.h>
#endif
__BEGIN_DECLS
/*****************************************************************************\
* *
* Defines *
* *
\*****************************************************************************/
/*
* Object colors (default pallette)
*
*/
#define WHITE 0
#define BLACK 1
#define RED 2
#define GREEN 3
#define BLUE 4
#define CYAN 5
#define YELLOW 6
#define MAGENTA 7
#define LWHITE 8
#define LBLACK 9
#define LRED 10
#define LGREEN 11
#define LBLUE 12
#define LCYAN 13
#define LYELLOW 14
#define LMAGENTA 15
/*
* Vdi writing modes
*
*/
#define MD_REPLACE 1
#define MD_TRANS 2
#define MD_XOR 3
#define MD_ERASE 4
/*
* Raster Op Codes
*
*/
#define ALL_WHITE 0
#define S_AND_D 1
#define S_AND_NOTD 2
#define S_ONLY 3
#define NOTS_AND_D 4
#define D_ONLY 5
#define S_XOR_D 6
#define S_OR_D 7
#define NOT_SORD 8
#define NOT_SXORD 9
#define D_INVERT 10
#define NOT_D 10
#define S_OR_NOTD 11
#define NOT_S 12
#define NOTS_OR_D 13
#define NOT_SANDD 14
#define ALL_BLACK 15
/*
* Sprite formats
*
*/
#define SP_VDI 0
#define SP_XOR 1
/*
* Line A Opcodes
*
*/
#define INIT 0
#define PUTPIXEL 1
#define GETPIXEL 2
#define LINE 3
#define HLINE 4
#define RECTANGLE 5
#define FPOLYGON 6
#define BITBLT 7
#define TEXTBLT 8
#define SHOWMOUSE 9
#define HIDEMOUSE 10
#define TRANMOUSE 11
#define USPRITE 12
#define DSPRITE 13
#define CPYRASTER 14
#define FSEEDFILL 15 /* ROM TOS only */
/*****************************************************************************\
* *
* Types *
* *
\*****************************************************************************/
/*
* Global Variables at negative offsets from the Line A parameter
* block address returned by init. (I have no way of telling if this
* list is complete).
*
*/
/* Name Offset Type Description */
/* --------------------------------------------------------------------------*/
/* V_BYTES_LIN -2 W bytes/line for font */
/* V_Y_MAX -4 W Max Y pixel value of the screen */
/* V_STATUS -6 W Text Status byte */
/* Bit Field Zero One */
/* 0 cursor flash disabled enabled */
/* 1 flash state off on */
/* 2 cursor visible no yes */
/* 3 end of line no-wrap wrap */
/* 4 inverse video on off */
/* 5 cursor saved false true */
/* V_OFF_AD -10 L Font offset table address */
/* V_X_MAX -12 W Max X pixel value */
/* V_FNT_WR -14 W Width of Font Form in bytes (see type FONT below) */
/* V_FNT_ST -16 W First font ASCII code (first_ade) */
/* V_FNT_ND -18 W Last font ASCII code (last_ade ) */
/* V_FNT_AD -22 L Font Form address */
/* Mono Spaced, 8 pixels wide and byte aligned, any ht. */
/* V_CUR_TIM -23 B Cursor countdown timer */
/* V_CUR_CNT -24 B Cursor flash interval( in frames) */
/* V_CUR_CY -26 W Y cursor position */
/* V_CUR_CX -28 W X cursor position */
/* V_CUR_OFF -30 W Offset from screen base to first cell (bytes) */
/* V_CUR_AD -34 L Current cursor address */
/* V_COL_FG -36 W Foreground color index */
/* V_COL_BG -38 W Background color index */
/* V_CEL_WR -40 W Offset to next vertical cell (bytes) */
/* V_CEL_MY -42 W Max cells high - 1 */
/* V_CEL_MX -44 W Max cells across - 1 */
/* V_CEL_HT -46 W Cell height in pixels (font form's height) */
/* --------------------------------------------------------------------------*/
/*
* Atari finally named these variables
* so here they are
*
*/
#define V_CEL_HT (*((short *)((char *)__aline + -46L)))
#define V_CEL_MX (*((short *)((char *)__aline + -44L)))
#define V_CEL_MY (*((short *)((char *)__aline + -42L)))
#define V_CEL_WR (*((short *)((char *)__aline + -40L)))
#define V_COL_BG (*((short *)((char *)__aline + -38L)))
#define V_COL_FG (*((short *)((char *)__aline + -36L)))
#define V_CUR_AD (*((char **)((char *)__aline + -34L)))
#define V_CUR_OFF (*((short *)((char *)__aline + -30L)))
#define V_CUR_CX (*((short *)((char *)__aline + -28L)))
#define V_CUR_CY (*((short *)((char *)__aline + -26L)))
#define V_CUR_CNT (*((char *)((char *)__aline + -24L)))
#define V_CUR_TIM (*( ((char *)__aline + -23L)))
#define V_FNT_AD (*((char **)((char *)__aline + -22L)))
#define V_FNT_ND (*((short *)((char *)__aline + -18L)))
#define V_FNT_ST (*((short *)((char *)__aline + -16L)))
#define V_FNT_WR (*((short *)((char *)__aline + -14L)))
#define V_X_MAX (*((short *)((char *)__aline + -12L)))
#define V_OFF_AD (*((char **)((char *)__aline + -10L)))
#define V_STATUS (*((short *)((char *)__aline + -6L)))
#define V_Y_MAX (*((short *)((char *)__aline + -4L)))
#define V_BYTES_LIN (*((short *)((char *)__aline + -2L)))
/* more obscure variables again found at negative offset */
/* pointer to current font */
#define CUR_FONT (*((__FONT **)((char *)__aline + -906L)))
/* Mouse X hot spot */
#define M_POS_HX (*((short *)((char *)__aline + -856L)))
/* Mouse Y hot spot */
#define M_POS_HY (*((short *)((char *)__aline + -854L)))
/* writing mode for mouse */
#define M_PLANES (*((short *)((char *)__aline + -852L)))
/* mouse bkgd color */
#define M_CDB_BG (*((short *)((char *)__aline + -850L)))
/* mouse fgd color */
#define M_CDB_FG (*((short *)((char *)__aline + -848L)))
/* mous form, 32 words alternating words: bkgd-0, fgd-0 ... bkgd-15 fgd-16 */
#define MASK_FORM ((short *)((char *)__aline + -846L))
/* 45 words of vq_extnd */
#define INQ_TAB ((short *)((char *)__aline + -782L))
/* 45 words of v_opnwk */
#define DEV_TAB ((short *)((char *)__aline + -692L))
/* current mous X */
#define GCURX (*((short *)((char *)__aline + -602L)))
/* current mous Y */
#define GCURY (*((short *)((char *)__aline + -600L)))
/* current mous hide cnt */
#define M_HID_CT (*((short *)((char *)__aline + -598L)))
/* mous button stat, bit0 = left, 1 = right, 0=up, 1=down */
#define MOUSE_BT (*((short *)((char *)__aline + -596L)))
/* 3*16 words of vq_color */
#define REQ_COL ((short *)((char *)__aline + -594L))
/* 15 words containing text, line and marker sizes in dev coords
0 min char width
1 min char height
2 max char width
3 max char height
4 min line width
5 reserved
6 max line width
7 reserved
8 min marker width
9 min marker height
10 max marker width
11 max marker height
12-14 RESERVED */
#define SIZ_TAB ((short *)((char *)__aline + -498L))
/* Pointer to current virtual workstation attributes */
#define CUR_WORK (*((short **)((char *)__aline + -464L)))
/* -> default font hdr */
#define DEF_FONT (*((__FONT **)((char *)__aline + -460L)) )
/* FONT_RING is an array of four longword pointers to linked lists of
font headers. The first entry is the head pointer to the font list,
the second and third are continuation fields, and the fourth is a null
terminator. */
#define FONT_RING ((short *)((char *)__aline + -456L))
/* Number of fonts in the FONT_RING lists */
#define FONT_COUNT (*((short *)((char *)__aline + -440L)))
/* Mouse status
Bit 0 = left mouse button status (0=up, 1=down)
Bit 1 = right mouse button status (0=up, 1=down)
Bit 2 = reserved
Bit 3 = reserved
Bit 4 = reserved
Bit 5 = mouse movement flag (0=no movement, 1=movement)
Bit 6 = right mouse button change flag (0=nochange, 1=change)
Bit 7 = left mouse button change flag (0=nochange, 1=change) */
#define CUR_MS_STAT (*((char *)__aline + -348L))
/* Hide depth of alpha cursor */
#define V_HID_CNT (*((short *)((char *)__aline + -346L)))
/* Mouse cursor X position */
#define CUR_X (*((short *)((char *)__aline + -344L)))
/* Mouse cursor Y position */
#define CUR_Y (*((short *)((char *)__aline + -342L)))
/* Nonzero = draw mouse form on VBLANK. */
#define CUR_FLAG (*((char *)__aline + -340L))
/* Non-zero if mouse interrupt processing is enabled */
#define MOUSE_FLAG (*((char *)__aline + -339L))
/* Saved alpha cursor X coord */
#define V_SAV_X (*((short *)((char *)__aline + -334L)))
/* Saved alpha cursor Y coord */
#define V_SAV_Y (*((short *)((char *)__aline + -332L)))
/* height of saved form */
#define SAVE_LEN (*((short *)((char *)__aline + -330L)))
/* Screen address of first word saved from screen */
#define SAVE_ADDR (*((char **)((char *)__aline + -328L)))
/* Save Status
bit 0 => 1 = info in buffer is valid.
0 = info in buffer is not valid.
bit 1 => If 1, double-word wide area was saved.
If zero, word wide area was saved.
bits 2-15 RESERVED */
#define SAVE_STAT (*((short *)((char *)__aline + -324L)))
/* Save up to 4 planes, 16 longwords per plane. */
#define SAVE_AREA ((long *)((char *)__aline + -322L))
/* USER_TIM is a pointer to a user installed routine executed on each
system timer tick. When done, this routine should jump to the
address held in NEXT_TIM. For more information, see the VDI manual
under Exchange Timer Interrupt Vector. */
#define USER_TIM (*((void(**)())((char *)__aline + -66L)))
#define NEXT_TIM (*((void(**)())((char *)__aline + -62L)))
/* User button vector */
#define USER_BUT (*((void(**)())((char *)__aline + -58L)))
/* User cursor vector */
#define USER_CUR (*((void(**)())((char *)__aline + -54L)))
/* User motion vector */
#define USER_MOT (*((void(**)())((char *)__aline + -50L)))
/* A pointer to the type LINEA is returned by the Line A init call
* ($A000), in registers A0 and D0.
* This pointer is saved in the global variable '__aline'.
*
*/
typedef struct {
/* Type Name Offset Function Comments */
/* ------------------------------------------------------------------------- */
short _VPLANES; /* 0 # of Planes Also see CurrRez */
short _VWRAP; /* 2 Bytes / scan line " " " */
/* VWRAP can be changed to implement special effect*/
/* Doubling VWRAP will skip every other scan line */
/* */
/* */
short *_CONTRL; /* 4 Ptr to CONTRL Array Contrl gets set to this */
short *_INTIN; /* 8 Ptr to INTIN Array Intin gets set to this */
short *_PTSIN; /* 12 Ptr to PTSIN Array Ptsin gets set to this */
short *_INTOUT; /* 16 Ptr to INTOUT Array Intout gets set to this */
short *_PTSOUT; /* 20 Ptr to PTSOUT Array Ptsout gets set to this */
/* CONTRL is the control array */
/* INTIN is the array of input parameters */
/* PTSIN is the array of input coordinates */
/* Even entrys are X coordinate */
/* Odd entrys are corresponding Y coodinates */
/* INTOUT is the array of output parameters */
/* PTSOUT is the array of output coordinates */
/* organized like PTSIN. */
/* */
short _COLBIT0; /* 24 Plane 0 Color Value All Three Rez's */
short _COLBIT1; /* 26 Plane 1 Color Value Med and Low Rez only */
short _COLBIT2; /* 28 Plane 2 Color Value Low Rez only */
short _COLBIT3; /* 30 Plane 3 Color Value Low Rez Only */
/* Foreground color COLBIT0 + 2*COLBIT1 + 4*COLBIT2*/
/* + 8*COLBIT3 */
/* */
/* */
short _LSTLIN; /* 32 Draw last pixel of a line? 0=yes non0=no */
/* This prevents two connecting lines from XORing */
/* a common endpoint out of existence */
/* */
short _LNMASK; /* 34 Linemask used when drawing lines, same as Vdi's */
/* line style (rotated to aligned with rightmost */
/* endpoint when drawing lines) */
/* */
short _WMODE; /* 36 Writing mode */
/* 0=Replace Mode-Replace all bits in Dest with src*/
/* 1=Trans. Mode-Only additional bits in src set(OR*/
/* 2=Xor Mode- Src XOR Dest */
/* 3=Inverse Trans.- (NOT src) Or Dest */
/* Values upto 16 are permitted */
/* */
short _X1; /* 38 X1 coordinate used in various calls */
/* */
short _Y1; /* 40 Y1 coordinate used in various calls */
/* */
short _X2; /* 42 X2 coordinate used in various calls */
/* */
short _Y2; /* 44 Y2 coordinate used in various calls */
/* */
/* */
short *_PATPTR; /* 46 Pointer to current fill pattern */
/* Must be integral power of 2 (words) in length */
short _PATMSK; /* 50 I don't know why they call it a mask. It is in */
/* reality the length in words of the current patt.*/
short _MFILL; /* 52 Multi Plane fill flag 1 == Current fill Pattern */
/* is for Muti Plane. */
/* */
/* */
short _CLIP; /* 54 Clipping Flag 1 == TRUE */
short _XMINCL; /* 56 Min X of clipping window */
short _YMINCL; /* 58 Min Y of clipping window */
short _XMAXCL; /* 60 Max X of clipping window */
short _YMAXCL; /* 62 Max Y of clipping window */
/* */
/* */
short _XDDA; /* 64 Accumulator for Scaling, Must be set to 0x08000 */
/* before each call to Text Blt. Done for you in */
/* in aline_text() */
short _DDAINC; /* 66 Scaling factor - Fractional amount to scale char*/
/* When scaling up = 256 *(Size-Textsize)/Textsize */
/* When scaling down = 256*(Size)/Textsize */
/* scaling down does not work */
short _SCALDIR; /* 68 Scaling direction 0 == down */
short _MONO; /* 70 Mono flag 0== current font is a propotional font*/
/* Its Ok for Thickening to increase the width of */
/* the current character. */
/* 1 == current font is mono spaced, so thickening */
/* may not increase the width of the current char */
/* */
short _SOURCEX; /* 72 X coordinate of character in the font form */
/* SOURCEX is calculated from info in the font */
/* header for the current font (see __FONT type) */
/* SOURCEX = off_table[char-first_ade] */
/* SOURCEX is calculated for you in aline_text() */
/* The pointer to a table of font header for the */
/* internal fonts is returned in A2 on init (A000) */
short _SOURCEY; /* 74 Y coodinate of character in the font form */
/* Typically set to 0 (top line of font form) */
short _DESTX; /* 76 X coordinate of character on screen */
short _DESTY; /* 78 Y coordinate of character on screen */
short _DELX; /* 80 Width of Character */
/* Difference between two SOURCEX's */
short _DELY; /* 82 Height of Character */
/* form_height field of FONT_HEAD of current font */
short *_FBASE; /* 84 Pointer to start of font form */
short _FWIDTH; /* 88 Width of the current font's form */
/* */
short _STYLE; /* 90 Vector of style flags */
/* Bit 0 = Thicken Flag */
/* Bit 1 = Lighten Flag */
/* Bit 2 = Skewing Flag */
/* Bit 3 = Underline Flag (ignored) */
/* Bit 4 = Outline Flag */
/* */
short _LITEMASK; /* 92 Mask used for lightening text */
/* The Mask is picked up from the font header */
short _SKEWMASK; /* 94 Mask used for skewing text */
/* The Mask is picked up from the font header */
short _WEIGHT; /* 96 The number of bits by which to thicken text */
/* The number is picked up from the font header */
short _ROFF; /* 98 Offset above baseline when skewing */
/* Again picked up from the font header */
/* */
short _LOFF; /* 100 Offset below character baseline when skewing */
/* Again picked up from the font header */
/* */
short _SCALE; /* 102 Scaling Flag 1 == true */
/* */
short _CHUP; /* 104 Character rotation vector. */
/* 0 = normal (0 degrees) */
/* 1800 = 180 degrees */
/* 2700 = 270 degrees */
/* */
short _TEXTFG; /* 106 Text foreground color */
/* */
char *_SCRTCHP; /* 108 Address of buffer required for creating special */
/* text effects. The size of this buffer should be */
/* 1K according the Internals. The Atari document */
/* of course does not talk about such things :-) */
/* */
short _SCRPT2; /* 112 The offset of the scaling buffer buffer in above*/
/* buffer. Internals suggests an offset of 0x0040 */
/* As usual the Atari document does'nt say a thing */
/* */
short _TEXTBG; /* 114 Text background color (Ram Vdi only) */
/* used for the BitBlt writing modes (4-19) only */
/* */
short _COPYTRAN; /* 116 Copy raster form type flag (Ram vdi only) */
/* 0 => Opaque type */
/* n-plane source -> n-plane dest */
/* BitBlt writing modes (4-19) */
/* ~0 => Transparent type */
/* 1-plane source -> n-plane dest */
/* Vdi writing modes (1-3) */
/* */
short(*_SEEDABORT) __PROTO((void));
/* 118 Pointer to function returning int, which is */
/* called by the fill logic to allow the fill to */
/* be aborted. If the routine returns FALSE (0) */
/* the fill is not aborted. If it returns TRUE (~0)*/
/* the fill is aborted */
/* ------------------------------------------------------------------------- */
} __LINEA; /* P H E W !!!!! */
/* macros for MWC compatibility */
#define VPLANES (__aline->_VPLANES)
#define VWRAP (__aline->_VWRAP)
#define CONTRL (__aline->_CONTRL)
#define INTIN (__aline->_INTIN)
#define PTSIN (__aline->_PTSIN)
#define INTOUT (__aline->_INTOUT)
#define PTSOUT (__aline->_PTSOUT)
#define COLBIT0 (__aline->_COLBIT0)
#define COLBIT1 (__aline->_COLBIT1)
#define COLBIT2 (__aline->_COLBIT2)
#define COLBIT3 (__aline->_COLBIT3)
#define LSTLIN (__aline->_LSTLIN)
#define LNMASK (__aline->_LNMASK)
#define WMODE (__aline->_WMODE)
#define X1 (__aline->_X1)
#define Y1 (__aline->_Y1)
#define X2 (__aline->_X2)
#define Y2 (__aline->_Y2)
#define PATPTR (__aline->_PATPTR)
#define PATMSK (__aline->_PATMSK)
#define MFILL (__aline->_MFILL)
#define CLIP (__aline->_CLIP)
#define XMINCL (__aline->_XMINCL)
#define YMINCL (__aline->_YMINCL)
#define XMAXCL (__aline->_XMAXCL)
#define YMAXCL (__aline->_YMAXCL)
#define XDDA (__aline->_XDDA)
#define DDAINC (__aline->_DDAINC)
#define SCALDIR (__aline->_SCALDIR)
#define MONO (__aline->_MONO)
#define SOURCEX (__aline->_SOURCEX)
#define SOURCEY (__aline->_SOURCEY)
#define DESTX (__aline->_DESTX)
#define DESTY (__aline->_DESTY)
#define DELX (__aline->_DELX)
#define DELY (__aline->_DELY)
#define FBASE (__aline->_FBASE)
#define FWIDTH (__aline->_FWIDTH)
#define STYLE (__aline->_STYLE)
#define LITEMASK (__aline->_LITEMASK)
#define SKEWMASK (__aline->_SKEWMASK)
#define WEIGHT (__aline->_WEIGHT)
#define ROFF (__aline->_ROFF)
#define LOFF (__aline->_LOFF)
#define SCALE (__aline->_SCALE)
#define CHUP (__aline->_CHUP)
#define TEXTFG (__aline->_TEXTFG)
#define SCRTCHP (__aline->_SCRTCHP)
#define SCRPT2 (__aline->_SCRPT2)
#define TEXTBG (__aline->_TEXTBG)
#define COPYTRAN (__aline->_COPYTRAN)
#define SEEDABORT (__aline->_SEEDABORT)
/* A pointer to array of type __FONT is returned by the Line A
* init call ($A000), in register A1.
* This pointer is saved in the global array variable 'fonts[]'.
*
*/
typedef struct _font {
/* Type Name Offset Function Comments */
/* ------------------------------------------------------------------------- */
short font_id; /* 0 Font face identifier 1 == system font */
/* */
short size; /* 2 Font size in points */
/* */
char name[32]; /* 4 Face name */
/* */
short first_ade; /* 36 Lowest ADE value in the face (lowest ASCII value */
/* of displayable character). */
/* */
short last_ade; /* 38 Highest ADE value in the face (highest ASCII valu*/
/* of displayable character). */
/* */
short top; /* 40 Distance of top line relative to baseline */
/* */
short ascent; /* 42 Distance of ascent line relative to baseline */
/* */
short half; /* 44 Distance of half line relative to baseline */
/* */
short descent; /* 46 Distance of decent line relative to baseline */
/* */
short bottom; /* 48 Distance of bottom line relative to baseline */
/* All distances are measured in absolute values */
/* rather than as offsets. They are always +ve */
/* */
short max_char_width; /* 50 Width of the widest character in font */
/* */
short max_cell_width; /* 52 Width of the widest cell character cell in face */
/* */
short left_offset; /* 54 Left Offset see Vdi appendix G */
/* */
short right_offset; /* 56 Right offset " " " */
/* */
short thicken; /* 58 Number of pixels by which to thicken characters */
/* */
short ul_size; /* 60 Width in pixels of the underline */
/* */
short lighten; /* 62 The mask used to lighten characters */
/* */
short skew; /* 64 The mask used to determine when to perform */
/* additional rotation on the character to perform */
/* skewing */
/* */
short flags; /* 66 Flags */
/* bit 0 set if default system font */
/* bit 1 set if horiz offset table should be used */
/* bit 2 byte-swap flag (thanks to Intel idiots) */
/* bit 3 set if mono spaced font */
/* */
char *h_table; /* 68 Pointer to horizontal offset table */
/* */
short *off_table; /* 72 Pointer to character offset table */
/* */
char *dat_table; /* 76 Pointer to font data */
/* */
short form_width; /* 80 Form width (#of bytes /scanline in font data) */
/* */
short form_height;/* 82 Form height (#of scanlines in font data) */
/* */
struct _font *next_font; /* 84 Pointer to next font in face */
/* */
/* ------------------------------------------------------------------------- */
} __FONT;
/* function pointer array
* pointer to array is returned in A2 after a init (A000) call
* array contains pointers to the 16 lineA routines, allowing
* you to call the routines directly without incurring the
* overhead of processing a lineA exception. You must be in
* supervisor mode to call any of the routines directly
*/
typedef short(*FPTR) __PROTO((void));
typedef FPTR *FUNCPTR; /* array of pointers to functions returning short */
/*
* OP_TAB type required for Bit Blt parameter block.
* each entry defines the logic operation to apply for
* the 4 Fore/Back ground bit combinations
*/
typedef struct {
/* Type Name Offset Function Comments */
/* ------------------------------------------------------------------------- */
char fg0bg0; /* 0 Logic op to employ when both FG and BG are 0 */
char fg0bg1; /* 1 Logic op to employ when FG = 0 and BG = 1 */
char fg1bg0; /* 2 Logic op to employ when FG = 1 and BG = 0 */
char fg1bg1; /* 3 Logic op to employ when both FG and BG are 1 */
/* ------------------------------------------------------------------------- */
} OP_TAB;
/*
* Source and destination description blocks
*/
typedef struct {
short bl_xmin; /* Minimum x */
short bl_ymin; /* Minimum y */
char *bl_form; /* short aligned memory form */
short bl_nxwd; /* Offset to next word in line */
short bl_nxln; /* Offset to next line in plane */
short bl_nxpl; /* Offset to next plane */
}SDDB;
/* Offsets to next word in plane */
#define HI_NXWD 2 /* Hi Rez */
#define MED_NXWD 4
#define LOW_NXWD 8 /* lo Rez */
/* Scan line widths of the screen */
#define HI_NXLN 80 /* Hi Rez */
#define MED_NXLN 160
#define LOW_NXLN 160 /* lo Rez */
/*
* Offsets between planes - always the same due to
* the way the STs video memory is laid out
*/
#define NXPL 2
/*
* Bit Blt Parameter Block Type (for function $A007)
*
*/
typedef struct {
/* Type Name Offset Function Comments */
/* ------------------------------------------------------------------------- */
short bb_b_wd; /* width of block in pixels */
short bb_b_ht; /* height of block in pixels */
short bb_plane_ct; /* number of planes to blit */
short bb_fg_col; /* foreground color */
short bb_bg_col; /* back ground color */
OP_TAB bb_op_tab; /* logic for fg x bg combination */
SDDB bb_s; /* source info block */
SDDB bb_d; /* destination info block */
short *bb_p_addr; /* pattern buffer address */
short bb_p_nxln; /* offset to next line in pattern */
short bb_p_nxpl; /* offset to next plane in pattern */
short bb_p_mask; /* pattern index mask */
char bb_fill[24]; /* work space */
/* ------------------------------------------------------------------------- */
} BBPB;
#ifndef __MFDB__
#define __MFDB__
/*
* Memory Form Definition Block
*
*/
typedef struct
{
void *fd_addr; /* Address of upper left corner of first*/
/* plane of raster area. If NULL then */
/* MFDB is for a physical device */
short fd_w; /* Form Width in Pixels */
short fd_h; /* Form Height in Pixels */
short fd_wdwidth; /* Form Width in shorts(fd_w/sizeof(int)*/
short fd_stand; /* Form format 0= device spec 1=standard*/
short fd_nplanes; /* Number of memory planes */
short fd_r1; /* Reserved */
short fd_r2; /* Reserved */
short fd_r3; /* Reserved */
} MFDB;
#endif /* __MFDB__ */
/*
* Sprite definition block
*
*/
typedef struct
{
short sp_xhot; /* Offset to X hot spot */
short sp_yhot; /* Offset to Y hot spot */
short sp_format; /* Format SP_VDI or SP_XOR */
short sp_bg; /* Background color */
short sp_fg; /* Foregroud color */
short sp_data[32]; /* Sprite data - */
/* Alternating words of back/fore */
/* ground data */
/* Note that: */
/* sprite save block is */
/* 10+VPLANES*64 bytes long */
} SFORM;
/*****************************************************************************\
* *
* Global Variables *
* *
\*****************************************************************************/
/*
* Global Variables are defined in alglobal.c, extern every where else
*
*/
/* global vars */
/* Pointer to line a parameter block returned by init */
extern __LINEA *__aline;
/* Array of pointers to the three system font headers
returned by init (in register A1) */
extern __FONT **__fonts;
/* Array of pointers to the 16 line a functions returned
by init (in register A2) only valid in ROM'ed TOS */
extern short (**__funcs) __PROTO((void));
/* Functions */
#ifdef __GNUC_INLINE__
#define linea0() \
({ \
register __LINEA *__xaline __asm__ ("a0"); \
register __FONT **__xfonts __asm__ ("a1"); \
register short (**__xfuncs) (void) __asm__ ("a2"); \
\
__asm__ volatile \
("\
.word 0xA000" \
: "=g"(__xaline), "=g"(__xfonts), "=g"(__xfuncs) /* outputs */ \
: /* inputs */ \
: __CLOBBER_RETURN("a0") __CLOBBER_RETURN("a1") __CLOBBER_RETURN("a2") "d0", "d1", "d2" /* clobbered regs */ \
); \
__aline = __xaline; \
__fonts = __xfonts; \
__funcs = __xfuncs; \
})
#define linea1() \
({ \
\
__asm__ volatile \
("\
.word 0xA001" \
: /* outputs */ \
: /* inputs */ \
: "d0", "d1", "d2", "a0", "a1", "a2" /* clobbered regs */ \
); \
})
#define linea2() \
({ \
register short retvalue __asm__ ("d0"); \
__asm__ volatile \
("\
.word 0xA002" \
: "=g"(retvalue) /* outputs */ \
: /* inputs */ \
: __CLOBBER_RETURN("d0") "d1", "d2", "a0", "a1", "a2" /* clobbered regs */ \
); \
(int)retvalue; \
})
#define linea3() \
({ \
\
__asm__ volatile \
("\
.word 0xA003" \
: /* outputs */ \
: /* inputs */ \
: "d0", "d1", "d2", "a0", "a1", "a2" /* clobbered regs */ \
); \
})
#define linea4() \
({ \
\
__asm__ volatile \
("\
.word 0xA004" \
: /* outputs */ \
: /* inputs */ \
: "d0", "d1", "d2", "a0", "a1", "a2" /* clobbered regs */ \
); \
})
#define linea5() \
({ \
\
__asm__ volatile \
("\
.word 0xA005" \
: /* outputs */ \
: /* inputs */ \
: "d0", "d1", "d2", "a0", "a1", "a2" /* clobbered regs */ \
); \
})
#define linea6() \
({ \
\
__asm__ volatile \
("\
.word 0xA006" \
: /* outputs */ \
: /* inputs */ \
: "d0", "d1", "d2", "a0", "a1", "a2" /* clobbered regs */ \
); \
})
#define linea7(P) \
({ \
\
__asm__ volatile \
("\
movml d2/a2/a6, sp@-; \
movl %0,a6; \
.word 0xA007; \
movml sp@+, d2/a2/a6" \
: /* outputs */ \
: "r"(P) /* inputs */ \
: "d0", "d1", "a0", "a1" /* clobbered regs */ \
); \
})
#define linea8() \
({ \
\
__asm__ volatile \
("\
.word 0xA008" \
: /* outputs */ \
: /* inputs */ \
: "d0", "d1", "d2", "a0", "a1", "a2" /* clobbered regs */ \
); \
})
#define linea9() \
({ \
\
__asm__ volatile \
("\
.word 0xA009" \
: /* outputs */ \
: /* inputs */ \
: "d0", "d1", "d2", "a0", "a1", "a2" /* clobbered regs */ \
); \
})
#define lineaa() \
({ \
\
__asm__ volatile \
("\
.word 0xA00A" \
: /* outputs */ \
: /* inputs */ \
: "d0", "d1", "d2", "a0", "a1", "a2" /* clobbered regs */ \
); \
})
#define lineab() \
({ \
\
__asm__ volatile \
("\
.word 0xA00B" \
: /* outputs */ \
: /* inputs */ \
: "d0", "d1", "d2", "a0", "a1", "a2" /* clobbered regs */ \
); \
})
#define lineac(P) \
({ \
\
__asm__ volatile \
("\
movl %0,a2; \
movl a6,sp@-;\
.word 0xA00C; \
movl sp@+,a6"\
: /* outputs */ \
: "g"(P) /* inputs */ \
: "d0", "d1", "d2", "a0", "a1", "a2" /* clobbered regs */ \
); \
})
#define linead(x, y, sd, ss) __linead((short)x, (short)y, (void *)sd, (void *)ss)
#define __linead(x, y, sd, ss) \
({ \
\
__asm__ volatile \
("\
movw %0,d0; \
movw %1,d1; \
movl %2,a0; \
movl %3,a2; \
movl a6,sp@-;\
.word 0xA00D; \
movl sp@+,a6"\
: /* outputs */ \
: "g"(x), "g"(y), "g"(sd), "g"(ss) /* inputs */ \
: "d0", "d1", "d2", "a0", "a1", "a2" /* clobbered regs */ \
); \
})
#define lineae() \
({ \
\
__asm__ volatile \
("\
.word 0xA00E" \
: /* outputs */ \
: /* inputs */ \
: "d0", "d1", "d2", "a0", "a1", "a2" /* clobbered regs */ \
); \
})
#define lineaf() \
({ \
\
__asm__ volatile \
("\
.word 0xA00F" \
: /* outputs */ \
: /* inputs */ \
: "d0", "d1", "d2", "a0", "a1", "a2" /* clobbered regs */ \
); \
})
#else /* __NO_INLINE__ */
__EXTERN void linea0 __PROTO((void));
__EXTERN void linea1 __PROTO((void));
__EXTERN int linea2 __PROTO((void));
__EXTERN void linea3 __PROTO((void));
__EXTERN void linea4 __PROTO((void));
__EXTERN void linea5 __PROTO((void));
__EXTERN void linea6 __PROTO((void));
__EXTERN void linea7 __PROTO((BBPB *P));
__EXTERN void linea8 __PROTO((void));
__EXTERN void linea9 __PROTO((void));
__EXTERN void lineaa __PROTO((void));
__EXTERN void lineab __PROTO((void));
__EXTERN void lineac __PROTO((void *P));
__EXTERN void linead __PROTO((int x, int y, SFORM *sd, void *ss));
__EXTERN void lineae __PROTO((void));
__EXTERN void lineaf __PROTO((void));
#endif /* __GNUC_INLINE__ */
__END_DECLS
#endif /* _MINT_LINEA_H */

View File

@@ -0,0 +1,612 @@
#ifndef _MINT_MINTBIND_H
#define _MINT_MINTBIND_H 1
#ifndef _FEATURES_H
# include <features.h>
#endif
#ifndef _MINT_OSBIND_H
# include <mint/osbind.h>
#endif
__BEGIN_DECLS
/* see osbind.h for __extension__ and AND_MEMORY */
#define trap_1_wllw(n, a, b, c) \
__extension__ \
({ \
register long retvalue __asm__("d0"); \
long _a = (long)(a); \
long _b = (long) (b); \
short _c = (short) (c); \
\
__asm__ volatile \
("\
movw %4,sp@-; \
movl %3,sp@-; \
movl %2,sp@-; \
movw %1,sp@-; \
trap #1; \
lea sp@(10),sp " \
: "=r"(retvalue) /* outputs */ \
: "g"(n), "r"(_a), "r"(_b), "r"(_c) /* inputs */ \
: __CLOBBER_RETURN("d0") "d1", "d2", "a0", "a1", "a2" /* clobbered regs */ \
AND_MEMORY \
); \
retvalue; \
})
#define trap_1_wwlw(n, a, b, c) \
__extension__ \
({ \
register long retvalue __asm__("d0"); \
short _a = (short)(a); \
long _b = (long) (b); \
short _c = (short) (c); \
\
__asm__ volatile \
("\
movw %4,sp@-; \
movl %3,sp@-; \
movw %2,sp@-; \
movw %1,sp@-; \
trap #1; \
lea sp@(10),sp " \
: "=r"(retvalue) /* outputs */ \
: "g"(n), "r"(_a), "r"(_b), "r"(_c) /* inputs */ \
: __CLOBBER_RETURN("d0") "d1", "d2", "a0", "a1", "a2" /* clobbered regs */ \
AND_MEMORY \
); \
retvalue; \
})
#define trap_1_wwww(n, a, b, c) \
__extension__ \
({ \
register long retvalue __asm__("d0"); \
short _a = (short)(a); \
short _b = (short)(b); \
short _c = (short)(c); \
\
__asm__ volatile \
("\
movw %4,sp@-; \
movw %3,sp@-; \
movw %2,sp@-; \
movw %1,sp@-; \
trap #1; \
addqw #8,sp " \
: "=r"(retvalue) /* outputs */ \
: "g"(n), "r"(_a), "r"(_b), "r"(_c) /* inputs */ \
: __CLOBBER_RETURN("d0") "d1", "d2", "a0", "a1", "a2" /* clobbered regs */ \
AND_MEMORY \
); \
retvalue; \
})
#define trap_1_wwwl(n, a, b, c) \
__extension__ \
({ \
register long retvalue __asm__("d0"); \
short _a = (short)(a); \
short _b = (short)(b); \
long _c = (long)(c); \
\
__asm__ volatile \
("\
movl %4,sp@-; \
movw %3,sp@-; \
movw %2,sp@-; \
movw %1,sp@-; \
trap #1; \
lea sp@(10),sp " \
: "=r"(retvalue) /* outputs */ \
: "g"(n), "r"(_a), "r"(_b), "r"(_c) /* inputs */ \
: __CLOBBER_RETURN("d0") "d1", "d2", "a0", "a1", "a2" /* clobbered regs */ \
AND_MEMORY \
); \
retvalue; \
})
#define trap_1_wwl(n, a, b) \
__extension__ \
({ \
register long retvalue __asm__("d0"); \
short _a = (short)(a); \
long _b = (long) (b); \
\
__asm__ volatile \
("\
movl %3,sp@-; \
movw %2,sp@-; \
movw %1,sp@-; \
trap #1; \
addqw #8,sp " \
: "=r"(retvalue) /* outputs */ \
: "g"(n), "r"(_a), "r"(_b) /* inputs */ \
: __CLOBBER_RETURN("d0") "d1", "d2", "a0", "a1", "a2" /* clobbered regs */ \
AND_MEMORY \
); \
retvalue; \
})
#define trap_1_wlllw(n, a, b, c, d) \
__extension__ \
({ \
register long retvalue __asm__("d0"); \
long _a = (long) (a); \
long _b = (long) (b); \
long _c = (long) (c); \
short _d = (short) (d); \
\
__asm__ volatile \
(" \
movw %5,sp@-; \
movl %4,sp@-; \
movl %3,sp@-; \
movl %2,sp@-; \
movw %1,sp@-; \
trap #1; \
lea sp@(16),sp " \
: "=r"(retvalue) /* outputs */ \
: "g"(n), "r"(_a), "r"(_b), "r"(_c), "r"(_d) /* inputs */ \
: __CLOBBER_RETURN("d0") "d1", "d2", "a0", "a1", "a2" /* clobbered regs */ \
AND_MEMORY \
); \
retvalue; \
})
#define trap_1_wlll(n, a, b, c) \
__extension__ \
({ \
register long retvalue __asm__("d0"); \
long _a = (long)(a); \
long _b = (long)(b); \
long _c = (long)(c); \
\
__asm__ volatile \
( \
"movl %4,sp@-;" \
"movl %3,sp@-;" \
"movl %2,sp@-;" \
"movw %1,sp@-;" \
"trap #1;" \
"lea sp@(14),sp" \
: "=r"(retvalue) /* outputs */ \
: "g"(n), "r"(_a), "r"(_b), "r"(_c) /* inputs */ \
: __CLOBBER_RETURN("d0") "d1", "d2", "a0", "a1", "a2" /* clobbered regs */ \
AND_MEMORY \
); \
\
retvalue; \
})
#define trap_1_wwllll(n, a, b, c, d, e) \
__extension__ \
({ \
register long retvalue __asm__("d0"); \
short _a = (short)(a); \
long _b = (long) (b); \
long _c = (long) (c); \
long _d = (long) (d); \
long _e = (long) (e); \
\
__asm__ volatile \
("\
movl %6,sp@-; \
movl %5,sp@-; \
movl %4,sp@-; \
movl %3,sp@-; \
movw %2,sp@-; \
movw %1,sp@-; \
trap #1; \
lea sp@(20),sp " \
: "=r"(retvalue) /* outputs */ \
: "g"(n), "r"(_a), "r"(_b), "r"(_c), "r"(_d), "r"(_e) /* inputs */ \
: __CLOBBER_RETURN("d0") "d1", "d2", "a0", "a1", "a2" /* clobbered regs */ \
AND_MEMORY \
); \
retvalue; \
})
#define trap_1_wllll(n, a, b, c, d) \
__extension__ \
({ \
register long retvalue __asm__("d0"); \
long _a = (long)(a); \
long _b = (long)(b); \
long _c = (long)(c); \
long _d = (long)(d); \
\
__asm__ volatile \
( \
"movl %5,sp@-;" \
"movl %4,sp@-;" \
"movl %3,sp@-;" \
"movl %2,sp@-;" \
"movw %1,sp@-;" \
"trap #1;" \
"lea sp@(18),sp" \
: "=r"(retvalue) /* outputs */ \
: "g"(n), "r"(_a), "r"(_b), "r"(_c), \
"r"(_d) /* inputs */ \
: __CLOBBER_RETURN("d0") "d1", "d2", "a0", "a1", "a2" /* clobbered regs */ \
AND_MEMORY \
); \
\
retvalue; \
})
#define trap_1_wwlllll(n, a, b, c, d, e, f) \
__extension__ \
({ \
register long retvalue __asm__("d0"); \
short _a = (short)(a); \
long _b = (long)(b); \
long _c = (long)(c); \
long _d = (long)(d); \
long _e = (long)(e); \
long _f = (long)(f); \
\
__asm__ volatile \
( \
"movl %7,sp@-;" \
"movl %6,sp@-;" \
"movl %5,sp@-;" \
"movl %4,sp@-;" \
"movl %3,sp@-;" \
"movw %2,sp@-;" \
"movw %1,sp@-;" \
"trap #1;" \
"lea sp@(24),sp" \
: "=r"(retvalue) /* outputs */ \
: "g"(n), "r"(_a), "r"(_b), "r"(_c), \
"r"(_d), "r"(_e), "r"(_f) /* inputs */ \
: __CLOBBER_RETURN("d0") "d1", "d2", "a0", "a1", "a2" /* clobbered regs */ \
AND_MEMORY \
); \
\
retvalue; \
})
#define trap_1_wlllll(n, a, b, c, d, e) \
__extension__ \
({ \
register long retvalue __asm__("d0"); \
long _a = (long)(a); \
long _b = (long)(b); \
long _c = (long)(c); \
long _d = (long)(d); \
long _e = (long)(e); \
\
__asm__ volatile \
( \
"movl %6,sp@-;" \
"movl %5,sp@-;" \
"movl %4,sp@-;" \
"movl %3,sp@-;" \
"movl %2,sp@-;" \
"movw %1,sp@-;" \
"trap #1;" \
"lea sp@(22),sp" \
: "=r"(retvalue) /* outputs */ \
: "g"(n), "r"(_a), "r"(_b), "r"(_c), \
"r"(_d), "r"(_e) /* inputs */ \
: __CLOBBER_RETURN("d0") "d1", "d2", "a0", "a1", "a2" /* clobbered regs */ \
AND_MEMORY \
); \
\
retvalue; \
})
#define trap_1_wllllll(n, a, b, c, d, e, f) \
__extension__ \
({ \
register long retvalue __asm__("d0"); \
long _a = (long)(a); \
long _b = (long)(b); \
long _c = (long)(c); \
long _d = (long)(d); \
long _e = (long)(e); \
long _f = (long)(f); \
\
__asm__ volatile \
( \
"movl %7,sp@-;" \
"movl %6,sp@-;" \
"movl %5,sp@-;" \
"movl %4,sp@-;" \
"movl %3,sp@-;" \
"movl %2,sp@-;" \
"movw %1,sp@-;" \
"trap #1;" \
"lea sp@(26),sp" \
: "=r"(retvalue) /* outputs */ \
: "g"(n), "r"(_a), "r"(_b), "r"(_c), \
"r"(_d), "r"(_e), "r"(_f) /* inputs */ \
: __CLOBBER_RETURN("d0") "d1", "d2", "a0", "a1", "a2" /* clobbered regs */ \
AND_MEMORY \
); \
\
retvalue; \
})
#define Srealloc(newsize) \
trap_1_wl(0x15, (long)(newsize))
#define Slbopen(name, path, min_ver, sl, fn) \
trap_1_wlllll(0x16, (long)(name), (long)(path), (long)(min_ver), (long)(sl), (long)(fn))
#define Slbclose(sl) \
trap_1_wl(0x17, (long)(sl))
#define Syield() \
(int)trap_1_w(0xff)
#define Fpipe(ptr) \
(int)trap_1_wl(0x100, (long)(ptr))
#define Ffchown(f, uid, gid) \
trap_1_wwww(0x101, (short)(f), (short)(uid), (short)(gid))
#define Ffchmod(f, mode) \
trap_1_www(0x102, (short)(f), (short)(mode))
#define Fsync(f) \
trap_1_ww(0x103, (short)(f))
#define Fcntl(f, arg, cmd) \
trap_1_wwlw(0x104, (short)(f), (long)(arg), (short)(cmd))
#define Finstat(f) \
trap_1_ww(0x105, (short)(f))
#define Foutstat(f) \
trap_1_ww(0x106, (short)(f))
#define Fgetchar(f, mode) \
trap_1_www(0x107, (short)(f), (short)(mode))
#define Fputchar(f, ch, mode) \
trap_1_wwlw(0x108, (short)(f), (long)(ch), (short)(mode))
#define Pwait() \
trap_1_w(0x109)
#define Pnice(delta) \
(int)trap_1_ww(0x10a, (short)(delta))
#define Pgetpid() \
(int)trap_1_w(0x10b)
#define Pgetppid() \
(int)trap_1_w(0x10c)
#define Pgetpgrp() \
(int)trap_1_w(0x10d)
#define Psetpgrp(pid, grp) \
(int)trap_1_www(0x10e, (short)(pid), (short)(grp))
#define Pgetuid() \
(int)trap_1_w(0x10f)
#define Psetuid(id) \
(int)trap_1_ww(0x110, (short)(id))
#define Pkill(pid, sig) \
(int)trap_1_www(0x111, (short)(pid), (short)(sig))
#define Psignal(sig, handler) \
trap_1_wwl(0x112, (short)(sig), (long)(handler))
#define Pvfork() \
trap_1_w(0x113)
#define Pgetgid() \
(int)trap_1_w(0x114)
#define Psetgid(id) \
(int)trap_1_ww(0x115, (short)(id))
#define Psigblock(mask) \
trap_1_wl(0x116, (unsigned long)(mask))
#define Psigsetmask(mask) \
trap_1_wl(0x117, (unsigned long)(mask))
#define Pusrval(arg) \
trap_1_wl(0x118, (long)(arg))
#define Pdomain(arg) \
(int)trap_1_ww(0x119, (short)(arg))
#define Psigreturn() \
(void)trap_1_w(0x11a)
#define Pfork() \
trap_1_w(0x11b)
#define Pwait3(flag, rusage) \
trap_1_wwl(0x11c, (short)(flag), (long)(rusage))
#define Fselect(time, rfd, wfd, xfd) \
(int)trap_1_wwlll(0x11d, (unsigned short)(time), (long)(rfd), \
(long)(wfd), (long)(xfd))
#define Prusage(rsp) \
(int)trap_1_wl(0x11e, (long)(rsp))
#define Psetlimit(i, val) \
trap_1_wwl(0x11f, (short)(i), (long)(val))
#define Talarm(sec) \
trap_1_wl(0x120, (long)(sec))
#define Pause() \
(void)trap_1_w(0x121)
#define Sysconf(n) \
trap_1_ww(0x122, (short)(n))
#define Psigpending() \
trap_1_w(0x123)
#define Dpathconf(name, which) \
trap_1_wlw(0x124, (long)(name), (short)(which))
#define Pmsg(mode, mbox, msg) \
trap_1_wwll(0x125, (short)(mode), (long)(mbox), (long)(msg))
#define Fmidipipe(pid, in, out) \
trap_1_wwww(0x126, (short)(pid), (short)(in),(short)(out))
#define Prenice(pid, delta) \
(int)trap_1_www(0x127, (short)(pid), (short)(delta))
#define Dopendir(name, flag) \
trap_1_wlw(0x128, (long)(name), (short)(flag))
#define Dreaddir(len, handle, buf) \
trap_1_wwll(0x129, (short)(len), (long)(handle), (long)(buf))
#define Drewinddir(handle) \
trap_1_wl(0x12a, (long)(handle))
#define Dclosedir(handle) \
trap_1_wl(0x12b, (long)(handle))
#define Fxattr(flag, name, buf) \
trap_1_wwll(0x12c, (short)(flag), (long)(name), (long)(buf))
#define Flink(old, new) \
trap_1_wll(0x12d, (long)(old), (long)(new))
#define Fsymlink(old, new) \
trap_1_wll(0x12e, (long)(old), (long)(new))
#define Freadlink(siz, buf, linknm) \
trap_1_wwll(0x12f, (short)(siz), (long)(buf), (long)(linknm))
#define Dcntl(cmd, name, arg) \
trap_1_wwll(0x130, (short)(cmd), (long)(name), (long)(arg))
#define Fchown(name, uid, gid) \
trap_1_wlww(0x131, (long)(name), (short)(uid), (short)(gid))
#define Fchmod(name, mode) \
trap_1_wlw(0x132, (long)(name), (short)(mode))
#define Pumask(mask) \
(int)trap_1_ww(0x133, (short)(mask))
#define Psemaphore(mode, id, tmout) \
trap_1_wwll(0x134, (short)(mode), (long)(id), (long)(tmout))
#define Dlock(mode, drive) \
(int)trap_1_www(0x135, (short)(mode), (short)(drive))
#define Psigpause(mask) \
(void)trap_1_wl(0x136, (unsigned long)(mask))
#define Psigaction(sig, act, oact) \
trap_1_wwll(0x137, (short)(sig), (long)(act), (long)(oact))
#define Pgeteuid() \
(int)trap_1_w(0x138)
#define Pgetegid() \
(int)trap_1_w(0x139)
#define Pwaitpid(pid,flag, rusage) \
trap_1_wwwl(0x13a, (short)(pid), (short)(flag), (long)(rusage))
#define Dgetcwd(path, drv, size) \
trap_1_wlww(0x13b, (long)(path), (short)(drv), (short)(size))
#define Salert(msg) \
trap_1_wl(0x13c, (long)(msg))
/* The following are not yet official... */
#define Tmalarm(ms) \
trap_1_wl(0x13d, (long)(ms))
#define Psigintr(vec, sig) \
trap_1_www(0x13e, (short)(vec), (short)(sig))
#define Suptime(uptime, avenrun) \
trap_1_wll(0x13f, (long)(uptime), (long)(avenrun))
#define Ptrace(request, pid, addr, data) \
trap_1_wwwll(0x140, (short)(request), (short)(pid), \
(long)(addr), (long)(data))
#define Mvalidate(pid,addr,size,flags) \
trap_1_wwlll (0x141, (short)(pid), (long)(addr), (long)(size), (long)(flags))
#define Dxreaddir(len, handle, buf, xattr, xret) \
trap_1_wwllll(0x142, (short)(len), (long)(handle), \
(long)(buf), (long)(xattr), (long)(xret))
#define Pseteuid(id) \
(int)trap_1_ww(0x143, (short)(id))
#define Psetegid(id) \
(int)trap_1_ww(0x144, (short)(id))
#define Psetauid(id) \
(int)trap_1_ww(0x145, (short)(id))
#define Pgetauid() \
(int)trap_1_w(0x146)
#define Pgetgroups(gidsetlen, gidset) \
trap_1_wwl(0x147, (short)(gidsetlen), (long)(gidset))
#define Psetgroups(gidsetlen, gidset) \
trap_1_wwl(0x148, (short)(gidsetlen), (long)(gidset))
#define Tsetitimer(which, interval, value, ointerval, ovalue) \
trap_1_wwllll(0x149, (short)(which), (long)(interval), \
(long)(value), (long)(ointerval), (long)(ovalue))
#define Dchroot(dir) \
trap_1_wl(0x14a, (long)(dir))
#define Fstat64(flag, name, stat) \
trap_1_wwll(0x14b, (short)(flag), (long)(name), (long)(stat))
#define Fseek64(high, low, fh, how, newpos) \
trap_1_wllwwl(0x14c, (long)(high), (long)(low), (short)(fh), \
(short)(how), (long)(newpos))
#define Dsetkey(major, minor, key, cipher) \
trap_1_wlllw(0x14d, (long)(major), (long)(minor), (long)(key), \
(short)(cipher))
#define Psetreuid(rid, eid) \
(int)trap_1_www(0x14e, (short)(rid), (short)(eid))
#define Psetregid(rid, eid) \
(int)trap_1_www(0x14f, (short)(rid), (short)(eid))
#define Sync() \
trap_1_w(0x150)
#define Shutdown(restart) \
trap_1_wl(0x151, (long)(restart))
#define Dreadlabel(path, label, maxlen) \
trap_1_wllw(0x152, (long)(path), (long)(label), (short)(maxlen))
#define Dwritelabel(path, label) \
trap_1_wll(0x153, (long)(path), (long)(label))
#define Ssystem(mode, arg1, arg2) \
trap_1_wwll(0x154, (int)(mode), (long)(arg1), (long)(arg2))
#define Tgettimeofday(tvp, tzp) \
trap_1_wll(0x155, (long)(tvp), (long)(tzp))
#define Tsettimeofday(tvp, tzp) \
trap_1_wll(0x156, (long)(tvp), (long)(tzp))
#define Tadjtime(delta, olddelta) \
trap_1_wll(0x157, (long)(delta), (long)(olddelta))
#define Pgetpriority(which, who) \
trap_1_www(0x158, (short)(which), (short)(who))
#define Psetpriority(which, who, prio) \
trap_1_wwww(0x159, (short)(which), (short)(who), (short)(prio))
/* #define Fpoll(fds, nfds, timeout) \
trap_1_wlll(0x15a,(long)(fds),(long)(nfds),(long)(timeout)) */
#define Fwritev(fh, iovp, iovcnt) \
trap_1_wwll(0x15b,(short)(fh),(long)(iovp),(long)(iovcnt))
#define Freadv(fh, iovp, iovcnt) \
trap_1_wwll(0x15c,(short)(fh),(long)(iovp),(long)(iovcnt))
#define Ffstat64(fh, stat) \
trap_1_wwl(0x15d,(short)(fh),(long)(stat))
#define Psysctl(name, namelen, old, oldlenp, new, newlen) \
trap_1_wllllll(0x15e,(long)(name),(long)(namelen),(long)(old),(long)(oldlenp),(long)(new),(long)(newlen))
#define Pemulation(which, op, a1, a2, a3, a4, a5, a6, a7) \
trap_1_wwwlllllll(0x15f,(short)(which),(short)(op),(long)(a1),(long)(a2),(long)(a3),(long)(a4),(long)(a5),(long)(a6),(long)(a7))
#define Fsocket(domain, type, protocol) \
trap_1_wlll(0x160,(long)(domain),(long)(type),(long)(protocol))
#define Fsocketpair(domain, type, protocol, rsv) \
trap_1_wllll(0x161,(long)(domain),(long)(type),(long)(protocol),(long)(rsv))
#define Faccept(fh, name, namelen) \
trap_1_wwll(0x162,(short)(fh),(long)(name),(long)(namelen))
#define Fconnect(fh, name, namelen) \
trap_1_wwll(0x163,(short)(fh),(long)(name),(long)(namelen))
#define Fbind(fh, name, namelen) \
trap_1_wwll(0x164,(short)(fh),(long)(name),(long)(namelen))
#define Flisten(fh, backlog) \
trap_1_wwl(0x165,(short)(fh),(long)(backlog))
#define Frecvmsg(fh, msg, flags) \
trap_1_wwll(0x166,(short)(fh),(long)(msg),(long)(flags))
#define Fsendmsg(fh, msg, flags) \
trap_1_wwll(0x167,(short)(fh),(long)(msg),(long)(flags))
#define Frecvfrom(fh, buf, len, flags, from, fromlen) \
trap_1_wwlllll(0x168,(short)(fh),(long)(buf),(long)(len),(long)(flags),(long)(from),(long)(fromlen))
#define Fsendto(fh, buf, len, flags, to, tolen) \
trap_1_wwlllll(0x169,(short)(fh),(long)(buf),(long)(len),(long)(flags),(long)(to),(long)(tolen))
#define Fsetsockopt(fh, level, name, val, valsize) \
trap_1_wwllll(0x16a,(short)(fh),(long)(level),(long)(name),(long)(val),(long)(valsize))
#define Fgetsockopt(fh, level, name, val, avalsize) \
trap_1_wwllll(0x16b,(short)(fh),(long)(level),(long)(name),(long)(val),(long)(avalsize))
#define Fgetpeername(fh, addr, addrlen) \
trap_1_wwll(0x16c,(short)(fh),(long)(addr),(long)(addrlen))
#define Fgetsockname(fh, addr, addrlen) \
trap_1_wwll(0x16d,(short)(fh),(long)(addr),(long)(addrlen))
#define Fshutdown(fh, how) \
trap_1_wwl(0x16e,(short)(fh),(long)(how))
/* 0x16f */
#define Pshmget(key, size, shmflg) \
trap_1_wlll(0x170,(long)(key),(long)(size),(long)(shmflg))
#define Pshmctl(shmid, cmd, buf) \
trap_1_wlll(0x171,(long)(shmid),(long)(cmd),(long)(buf))
#define Pshmat(shmid, shmaddr, shmflg) \
trap_1_wlll(0x172,(long)(shmid),(long)(shmaddr),(long)(shmflg))
#define Pshmdt(shmaddr) \
trap_1_wl(0x173,(long)(shmaddr))
#define Psemget(key, nsems, semflg) \
trap_1_wlll(0x174,(long)(key),(long)(nsems),(long)(semflg))
#define Psemctl(semid, semnum, cmd, arg) \
trap_1_wllll(0x175,(long)(semid),(long)(semnum),(long)(cmd),(long)(arg))
#define Psemop(semid, sops, nsops) \
trap_1_wlll(0x176,(long)(semid),(long)(sops),(long)(nsops))
#define Psemconfig(flag) \
trap_1_wl(0x177,(long)(flag))
#define Pmsgget(key, msgflg) \
trap_1_wll(0x178,(long)(key),(long)(msgflg))
#define Pmsgctl(msqid, cmd, buf) \
trap_1_wlll(0x179,(long)(msqid),(long)(cmd),(long)(buf))
#define Pmsgsnd(msqid, msgp, msgsz, msgflg) \
trap_1_wllll(0x17a,(long)(msqid),(long)(msgp),(long)(msgsz),(long)(msgflg))
#define Pmsgrcv(msqid, msgp, msgsz, msgtyp, msgflg) \
trap_1_wlllll(0x17b,(long)(msqid),(long)(msgp),(long)(msgsz),(long)(msgtyp),(long)(msgflg))
/* 0x17c */
#define Maccess(addr,size,mode) \
trap_1_wllw (0x141, (long)(addr), (long)(size), (short)(mode))
/* 0x17e */
/* 0x17f */
#define Fchown16(name, uid, gid, follow_links) \
trap_1_wlwww(0x180, (long)(name), (short)(uid), (short)(gid), (short)follow_links)
__END_DECLS
#endif /* _MINT_MINTBIND_H */

View File

@@ -0,0 +1,25 @@
#ifndef _MINT_MOUSE_H
#define _MINT_MOUSE_H 1
#ifndef _FEATURES_H
# include <features.h>
#endif
__BEGIN_DECLS
/* header file for mouse access */
struct mouse_buf {
int m_buttons; /* button states */
int m_dx; /* change in x since last read */
int m_dy; /* change in y since last read */
};
#define M_LEFT_BUTTON 0x02
#define M_RIGHT_BUTTON 0x01
#define M_MID_BUTTON 0x00 /* there is none! */
__END_DECLS
#endif /* _MINT_MOUSE_H */

View File

@@ -0,0 +1,233 @@
/*
* NFS protocol definitions
*/
/* This is stolen from the linux sources since rpcsvc/bootparam.h needs
the file. Hope it is ok for MiNT. */
/* $Id: nfs.h,v 1.2 2001/07/11 23:59:05 fna Exp $ */
#ifndef _MINT_NFS_H
#define _MINT_NFS_H 1
#ifndef __MINT__
# include <linux/sunrpc/msg_prot.h>
#endif
#define NFS_PORT 2049
#define NFS_MAXDATA 8192
#define NFS_MAXPATHLEN 1024
#define NFS_MAXNAMLEN 255
#define NFS_MAXGROUPS 16
#define NFS_FHSIZE 32
#define NFS_COOKIESIZE 4
#define NFS_FIFO_DEV (-1)
#define NFSMODE_FMT 0170000
#define NFSMODE_DIR 0040000
#define NFSMODE_CHR 0020000
#define NFSMODE_BLK 0060000
#define NFSMODE_REG 0100000
#define NFSMODE_LNK 0120000
#define NFSMODE_SOCK 0140000
#define NFSMODE_FIFO 0010000
enum nfs_stat {
NFS_OK = 0,
NFSERR_PERM = 1,
NFSERR_NOENT = 2,
NFSERR_IO = 5,
NFSERR_NXIO = 6,
NFSERR_EAGAIN = 11,
NFSERR_ACCES = 13,
NFSERR_EXIST = 17,
NFSERR_XDEV = 18,
NFSERR_NODEV = 19,
NFSERR_NOTDIR = 20,
NFSERR_ISDIR = 21,
NFSERR_INVAL = 22, /* that Sun forgot */
NFSERR_FBIG = 27,
NFSERR_NOSPC = 28,
NFSERR_ROFS = 30,
NFSERR_OPNOTSUPP = 45,
NFSERR_NAMETOOLONG = 63,
NFSERR_NOTEMPTY = 66,
NFSERR_DQUOT = 69,
NFSERR_STALE = 70,
NFSERR_WFLUSH = 99
};
enum nfs_ftype {
NFNON = 0,
NFREG = 1,
NFDIR = 2,
NFBLK = 3,
NFCHR = 4,
NFLNK = 5,
NFSOCK = 6,
NFBAD = 7,
NFFIFO = 8
};
struct nfs_fh {
char data[NFS_FHSIZE];
};
#define NFS_PROGRAM 100003
#define NFS_VERSION 2
#define NFSPROC_NULL 0
#define NFSPROC_GETATTR 1
#define NFSPROC_SETATTR 2
#define NFSPROC_ROOT 3
#define NFSPROC_LOOKUP 4
#define NFSPROC_READLINK 5
#define NFSPROC_READ 6
#define NFSPROC_WRITECACHE 7
#define NFSPROC_WRITE 8
#define NFSPROC_CREATE 9
#define NFSPROC_REMOVE 10
#define NFSPROC_RENAME 11
#define NFSPROC_LINK 12
#define NFSPROC_SYMLINK 13
#define NFSPROC_MKDIR 14
#define NFSPROC_RMDIR 15
#define NFSPROC_READDIR 16
#define NFSPROC_STATFS 17
/* Mount support for NFSroot */
#ifdef __KERNEL__
#define NFS_MNT_PROGRAM 100005
#define NFS_MNT_VERSION 1
#define NFS_MNT_PORT 627
#define NFS_MNTPROC_MNT 1
#define NFS_MNTPROC_UMNT 3
#endif
#if defined(__KERNEL__) || defined(NFS_NEED_KERNEL_TYPES)
extern struct rpc_program nfs_program;
extern struct rpc_stat nfs_rpcstat;
struct nfs_time {
__u32 seconds;
__u32 useconds;
};
struct nfs_fattr {
enum nfs_ftype type;
__u32 mode;
__u32 nlink;
__u32 uid;
__u32 gid;
__u64 size;
__u32 blocksize;
__u32 rdev;
__u32 blocks;
__u32 fsid;
__u32 fileid;
struct nfs_time atime;
struct nfs_time mtime;
struct nfs_time ctime;
};
struct nfs_sattr {
__u32 mode;
__u32 uid;
__u32 gid;
__u64 size;
struct nfs_time atime;
struct nfs_time mtime;
};
struct nfs_fsinfo {
__u32 tsize;
__u32 bsize;
__u32 blocks;
__u32 bfree;
__u32 bavail;
};
struct nfs_writeargs {
struct nfs_fh * fh;
__u64 offset;
__u32 count;
const void * buffer;
};
#ifdef NFS_NEED_XDR_TYPES
struct nfs_sattrargs {
struct nfs_fh * fh;
struct nfs_sattr * sattr;
};
struct nfs_diropargs {
struct nfs_fh * fh;
const char * name;
};
struct nfs_readargs {
struct nfs_fh * fh;
__u64 offset;
__u32 count;
void * buffer;
};
struct nfs_createargs {
struct nfs_fh * fh;
const char * name;
struct nfs_sattr * sattr;
};
struct nfs_renameargs {
struct nfs_fh * fromfh;
const char * fromname;
struct nfs_fh * tofh;
const char * toname;
};
struct nfs_linkargs {
struct nfs_fh * fromfh;
struct nfs_fh * tofh;
const char * toname;
};
struct nfs_symlinkargs {
struct nfs_fh * fromfh;
const char * fromname;
const char * topath;
struct nfs_sattr * sattr;
};
struct nfs_readdirargs {
struct nfs_fh * fh;
__u32 cookie;
void * buffer;
unsigned int bufsiz;
};
struct nfs_diropok {
struct nfs_fh * fh;
struct nfs_fattr * fattr;
};
struct nfs_readres {
struct nfs_fattr * fattr;
unsigned int count;
};
struct nfs_readlinkres {
char ** string;
unsigned int * lenp;
unsigned int maxlen;
void * buffer;
};
struct nfs_readdirres {
void * buffer;
unsigned int bufsiz;
};
#endif /* NFS_NEED_XDR_TYPES */
#endif /* __KERNEL__ */
#endif

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,214 @@
#ifndef _MINT_OSTRUCT_H
#define _MINT_OSTRUCT_H 1
#ifndef _FEATURES_H
# include <features.h>
#endif
__BEGIN_DECLS
/*
* General OS specific codes here
*
*/
/*
* GEMDOS defines and structures
*/
/* Structure used by Dfree() */
typedef struct {
long b_free; /* number of free clusters */
long b_total; /* total number of clusters */
long b_secsiz; /* number of bytes per sector */
long b_clsiz; /* number of sectors per cluster */
} _DISKINFO;
/* Structure returned by Fdatime() */
typedef struct {
unsigned short time;
unsigned short date;
} _DOSTIME;
/* Structure used by Cconrs */
typedef struct
{
unsigned char maxlen;
unsigned char actuallen;
char buffer[255];
} _CCONLINE;
/* Structure used by Fgetdta(), Fsetdta(), Fsfirst(), Fsnext() */
typedef struct _dta {
char dta_buf[21]; /* reserved */
char dta_attribute; /* file attribute */
unsigned short dta_time; /* file time stamp */
unsigned short dta_date; /* file date stamp */
long dta_size; /* file size */
char dta_name[14]; /* file name */
} _DTA;
/* Codes used with Fsfirst() */
#define FA_RDONLY 0x01
#define FA_HIDDEN 0x02
#define FA_SYSTEM 0x04
#define FA_LABEL 0x08
#define FA_DIR 0x10
#define FA_CHANGED 0x20
/* Codes used with Pexec */
#define PE_LOADGO 0 /* load & go */
#define PE_LOAD 3 /* just load */
#define PE_GO 4 /* just go */
#define PE_CBASEPAGE 5 /* just create basepage */
/* Tos 1.4: like 4, but memory ownership changed to child, and freed
on exit
*/
#define PE_GO_FREE 6 /* just go, then free */
#ifdef __MINT__
/* ers: what exactly does mode 7 do ??? */
# define PE_ASYNC_LOADGO 100 /* load and asynchronously go */
# define PE_ASYNC_GO 104 /* asynchronously go */
# define PE_ASYNC_GO_FREE 106 /* asynchronously go and free */
# define PE_OVERLAY 200 /* load and overlay */
#endif
/*
* BIOS defines and structures
*/
/* Device codes for Bconin(), Bconout(), Bcostat(), Bconstat() */
#define _PRT 0
#define _AUX 1
#define _CON 2
#define _MIDI 3
#define _IKBD 4
#define _RAWCON 5
/* Structure returned by Getbpb() */
typedef struct {
short recsiz; /* bytes per sector */
short clsiz; /* sectors per cluster */
short clsizb; /* bytes per cluster */
short rdlen; /* root directory size */
short fsiz; /* size of file allocation table */
short fatrec; /* startsector of second FAT */
short datrec; /* first data sector */
short numcl; /* total number of clusters */
short bflags; /* some flags */
} _BPB;
/* Structures used by Getmpb() */
/* Memory descriptor */
typedef struct _md {
struct _md *md_next; /* next descriptor in the chain */
long md_start; /* starting address of block */
long md_length; /* length of the block */
long md_owner; /* owner's process descriptor */
} _MD;
/* Memory parameter block */
typedef struct {
_MD *mp_free; /* free memory chunks */
_MD *mp_used; /* used memory descriptors */
_MD *mp_rover; /* rover memory descriptor */
} _MPB;
/*
* XBIOS defines and structures
*/
/* Codes used with Cursconf() */
#define CURS_HIDE 0
#define CURS_SHOW 1
#define CURS_BLINK 2
#define CURS_NOBLINK 3
#define CURS_SETRATE 4
#define CURS_GETRATE 5
/* dont find SCURS_HIDE */
/* Structure returned by Iorec() */
typedef struct {
char *ibuf;
short ibufsiz;
volatile short ibufhd;
volatile short ibuftl;
short ibuflow;
short ibufhi;
} _IOREC;
/* Structure used by Initmouse() */
typedef struct {
char topmode;
char buttons;
char xparam;
char yparam;
short xmax;
short ymax;
short xstart;
short ystart;
} _PARAM;
/* Structure returned by Kbdvbase() */
typedef struct {
void (*midivec) (void);
void (*vkbderr) (void);
void (*vmiderr) (void);
void (*statvec) (void *);
void (*mousevec) (void *);
void (*clockvec) (void *);
void (*joyvec) (void *);
long (*midisys) (void);
long (*ikbdsys) (void);
char kbstate;
} _KBDVECS;
/* Structure returned by Keytbl() */
typedef struct {
char *unshift; /* pointer to unshifted keys */
char *shift; /* pointer to shifted keys */
char *caps; /* pointer to capslock keys */
/* Entries below available
* when _AKP cookie is present.
*/
char *alt; /* pointers to alt translation tables */
char *altshift;
char *altcaps;
/* Entry below is available
* on MilanTOS and as of FreeMiNT 1.16.1
*/
char *altgr;
} _KEYTAB;
/* Structure used by Prtblk() */
typedef struct
{
void *pb_scrptr;
int pb_offset;
int pb_width;
int pb_height;
int pb_left;
int pb_right;
int pb_screz;
int pb_prrez;
void *pb_colptr;
int pb_prtype;
int pb_prport;
void *pb_mask;
} _PBDEF;
__END_DECLS
#endif /* _MINT_OSTRUCT_H */

View File

@@ -0,0 +1,55 @@
/*
* This file belongs to FreeMiNT. It's not in the original MiNT 1.12
* distribution. See the file CHANGES for a detailed log of changes.
*
*
* Copyright 2000 Frank Naumann <fnaumann@freemint.de>
* All rights reserved.
*
* This file is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2, or (at your option)
* any later version.
*
* This file is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
*
* begin: 2000-10-08
* last change: 2000-10-08
*
* Author: Frank Naumann <fnaumann@freemint.de>
*
* Please send suggestions, patches or bug reports to me or
* the MiNT mailing list.
*
*/
# ifndef _MINT_PTRACE_H
# define _MINT_PTRACE_H 1
# define PT_TRACE_ME 0 /* child declares it's being traced */
# define PT_READ_I 1 /* read word in child's I space */
# define PT_READ_D 2 /* read word in child's D space */
# define PT_WRITE_I 4 /* write word in child's I space */
# define PT_WRITE_D 5 /* write word in child's D space */
# define PT_CONTINUE 7 /* continue the child */
# define PT_KILL 8 /* kill the child process */
# define PT_ATTACH 9 /* attach to running process */
# define PT_DETACH 10 /* detach from running process */
# define PT_SYSCALL 11 /* continue and stop at next return from syscall */
# define PT_BASEPAGE 999
# define PT_FIRSTMACH 32 /* for machine-specific requests */
# include "arch/ptrace.h"
# endif /* mint/ptrace.h */

View File

@@ -0,0 +1,71 @@
#ifndef _MINT_SCREEN_H
#define _MINT_SCREEN_H 1
#ifndef _FEATURES_H
# include <features.h>
#endif
__BEGIN_DECLS
/* Data structures for IOCTL on /dev/screen */
#define SCR_NUM_COLORS 256 /* max possible num. of colors (even more on Falcon) */
/* SCR_ALIGN gives a mask telling how the physical screen must be
aligned (for the SCRSETP ioctl call. A typical use might be
newscrn = malloc(size + SCR_ALIGN) & (~SCR_ALIGN)
If SCR_ALIGN is -1, then the physical screen may not be remapped
*/
#define SCR_ALIGN 0x0ffL
/* define the following only if the physical memory occupied by the
screen is not accessible to user programs without an operating
system request to re-map or shar memory (i.e. don't define this
unless you have a version of Minix with a hardware memory
manager
*/
/* #define SCR_VIRT_MEM */ /* screen lives in virtual memory */
/* physical screen attributes; information returned by the
SCRGETPARAM ioctl call */
struct scr_param {
long scr_base; /* physical address of screen */
short scr_width; /* width of screen (pixels) */
short scr_height; /* height of screen (pixels) */
short scr_depth; /* no. of bitplanes on screen */
short scr_mode; /* special mode info about screen */
};
/* Each palette entry for the screen colors holds three entries;
the red, green, and blue values for this color, from 0 (no color)
to 255 (max. color).
The actual number of different values recognized by the hardware
is given by SCR_RGB_VALUES; for example, the atari ST recognizes
only 8 possible values for each of red, green, and blue, for
a total of 512 colors; for it, SCR_RGB_VALUES == 8.
*/
#define SCR_RGB_VALUES 16
/* constants for accessing the scr_rgb array */
#define RED 0
#define BLUE 1
#define GREEN 2
/* data structure returned by SCRGETCOLOR ioctl call */
struct scr_palette {
unsigned char scr_rgb[SCR_NUM_COLORS][3];
};
#define SCRGETPARAM (('S'<<8) | 1)
#define SCRSETPARAM (('S'<<8) | 2)
#define SCRGETCOLOR (('S'<<8) | 3)
#define SCRSETCOLOR (('S'<<8) | 4)
__END_DECLS
#endif /* _MINT_SCREEN_H */

View File

@@ -0,0 +1,35 @@
/*
* Copyright (C) 2000 Konrad Kokoszkiewicz <draco@atari.org.pl>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
* MA 02111-1307, USA
*
*/
# ifndef _MINT_SLB_H
# define _MINT_SLB_H 1
typedef void *SLB_HANDLE;
typedef long (*SLB_EXEC)(SLB_HANDLE sl, long fn, short nargs, ...);
typedef struct {
SLB_HANDLE handle;
SLB_EXEC exec;
} SLB;
long _slbopen (char *fname, char *path, long ver, void *hnd, void *exec);
# endif /* mint/slb.h */

View File

@@ -0,0 +1,68 @@
/*
* This file belongs to FreeMiNT. It's not in the original MiNT 1.12
* distribution. See the file Changes.MH for a detailed log of changes.
*/
# ifndef _MINT_SSYSTEM_H
# define _MINT_SSYSTEM_H 1
#ifdef __KERNEL
# include "include/mint.h"
#endif
# define HAS_SSYSTEM
# define S_OSNAME 0
# define S_OSXNAME 1
# define S_OSVERSION 2
# define S_OSHEADER 3
# define S_OSBUILDDATE 4
# define S_OSBUILDTIME 5
# define S_OSCOMPILE 6
# define S_OSFEATURES 7
# define S_GETCOOKIE 8
# define S_SETCOOKIE 9
# define S_GETLVAL 10
# define S_GETWVAL 11
# define S_GETBVAL 12
# define S_SETLVAL 13
# define S_SETWVAL 14
# define S_SETBVAL 15
# define S_SECLEVEL 16
# define S_RUNLEVEL 17 /* currently disabled, reserved */
# define S_TSLICE 18
# define S_FASTLOAD 19
# define S_SYNCTIME 20
# define S_BLOCKCACHE 21
# define S_FLUSHCACHE 22
# define S_CTRLCACHE 23
# define S_INITIALTPA 24
# define S_CTRLALTDEL 25 /* ctraltdel behavoiur */
# define S_DELCOOKIE 26
# define S_LOADKBD 27 /* reload the keyboard table */
# define S_CLOCKUTC 100
# define S_TIOCMGET 0x54f8 /* 21752 */
/* experimental - need feedback
* additional informations about the kernel
* reserved 900 - 999
*/
# define S_KNAME 900 /* kernel name - arg1 pointer to a buffer of arg2 len */
# define S_CNAME 910 /* compiler name - arg1 pointer to a buffer of arg2 len */
# define S_CVERSION 911 /* compiler version - arg1 pointer to a buffer of arg2 len */
# define S_CDEFINES 912 /* compiler definitions - arg1 pointer to a buffer of arg2 len */
# define S_COPTIM 913 /* compiler flags - arg1 pointer to a buffer of arg2 len */
/* debug section
* reserved 1000 - 1999
*/
# define S_DEBUGLEVEL 1000 /* debug level */
# define S_DEBUGDEVICE 1001 /* BIOS device number */
# define S_DEBUGKMTRACE 1100 /* KM_TRACE debug feature */
# ifdef __KERNEL__
long _cdecl s_system (int mode, ulong arg1, ulong arg2);
# endif
# endif /* _MINT_SSYSTEM_H */

View File

@@ -0,0 +1,191 @@
/*
* $Id: sysctl.h,v 1.3 2001/07/11 23:59:06 fna Exp $
*
* This file belongs to FreeMiNT. It's not in the original MiNT 1.12
* distribution. See the file CHANGES for a detailed log of changes.
*
*
* Modified for FreeMiNT by Frank Naumann <fnaumann@freemint.de>
*
* Please send suggestions, patches or bug reports to me or
* the MiNT mailing list.
*
*
* Copyright (c) 1989, 1993
* The Regents of the University of California. All rights reserved.
*
* This code is derived from software contributed to Berkeley by
* Mike Karels at Berkeley Software Design, Inc.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. All advertising materials mentioning features or use of this software
* must display the following acknowledgement:
* This product includes software developed by the University of
* California, Berkeley and its contributors.
* 4. Neither the name of the University nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* @(#)sysctl.h 8.1 (Berkeley) 6/2/93
*/
# ifndef _MINT_SYSCTL_H
# define _MINT_SYSCTL_H 1
/*
* Definitions for sysctl call. The sysctl call uses a hierarchical name
* for objects that can be examined or modified. The name is expressed as
* a sequence of integers. Like a file path name, the meaning of each
* component depends on its place in the hierarchy. The top-level and kern
* identifiers are defined here, and other identifiers are defined in the
* respective subsystem header files.
*/
# define CTL_MAXNAME 12 /* largest number of components supported */
/*
* Each subsystem defined by sysctl defines a list of variables
* for that subsystem. Each name is either a node with further
* levels defined below it, or it is a leaf of some particular
* type given below. Each sysctl level defines a set of name/type
* pairs to be used by sysctl(1) in manipulating the subsystem.
*/
struct ctlname
{
const char *ctl_name; /* subsystem name */
int ctl_type; /* type of name */
};
# define CTLTYPE_NODE 1 /* name is a node */
# define CTLTYPE_INT 2 /* name describes an integer */
# define CTLTYPE_STRING 3 /* name describes a string */
# define CTLTYPE_QUAD 4 /* name describes a 64-bit number */
# define CTLTYPE_STRUCT 5 /* name describes a structure */
/*
* Top-level identifiers
*/
# define CTL_UNSPEC 0 /* unused */
# define CTL_KERN 1 /* "high kernel" */
# define CTL_HW 2 /* generic cpu/io */
# define CTL_MACHDEP 3 /* machine dependent */
# define CTL_DEBUG 4 /* debugging parameters */
# define CTL_MAXID 5 /* number of valid top-level ids */
# define CTL_NAMES \
{ \
{ 0, 0 }, \
{ "kern", CTLTYPE_NODE }, \
{ "hw", CTLTYPE_NODE }, \
{ "machdep", CTLTYPE_NODE }, \
{ "debug", CTLTYPE_NODE }, \
}
/*
* CTL_KERN identifiers
*/
# define KERN_OSTYPE 1 /* string: system version */
# define KERN_OSRELEASE 2 /* string: system release */
# define KERN_OSREV 3 /* int: system revision */
# define KERN_VERSION 4 /* string: compile time info */
# define KERN_HOSTNAME 5 /* string: hostname */
# define KERN_DOMAINNAME 6 /* string: (YP) domainname */
# define KERN_SECURELVL 7 /* int: system security level */
# define KERN_MAXPROC 8 /* int: max processes */
# define KERN_MAXFILES 9 /* int: max open files */
# define KERN_NGROUPS 10 /* int: # of supplemental group ids */
# define KERN_IOV_MAX 11 /* int: max iovec's for readv(2) etc. */
# define KERN_LOGIN_NAME_MAX 12 /* int: max length login name + NUL */
# define KERN_BOOTTIME 13 /* struct: time kernel was booted */
# define KERN_INITIALTPA 14 /* int: max TPA size of a process */
# define KERN_MAXID 15 /* number of valid kern ids */
# define CTL_KERN_NAMES \
{ \
{ 0, 0 }, \
{ "ostype", CTLTYPE_STRING }, \
{ "osrelease", CTLTYPE_STRING }, \
{ "osrevision", CTLTYPE_INT }, \
{ "version", CTLTYPE_STRING }, \
{ "hostname", CTLTYPE_STRING }, \
{ "domainname", CTLTYPE_STRING }, \
{ "securelevel", CTLTYPE_INT }, \
{ "maxproc", CTLTYPE_INT }, \
{ "maxfiles", CTLTYPE_INT }, \
{ "ngroups", CTLTYPE_INT }, \
{ "iov_max", CTLTYPE_INT }, \
{ "login_name_max", CTLTYPE_INT }, \
{ "boottime", CTLTYPE_STRUCT }, \
{ "initialtpa", CTLTYPE_INT }, \
}
/*
* CTL_HW identifiers
*/
# define HW_MACHINE 1 /* string: machine class */
# define HW_MACHINE_ARCH 2 /* string: machine architecture */
# define HW_MODEL 3 /* string: specific machine model */
# define HW_NCPU 4 /* int: number of cpus */
# define HW_BYTEORDER 5 /* int: machine byte order */
# define HW_PAGESIZE 6 /* int: software page size */
# define HW_FREEPHYSMEM 7 /* int: free physical memory */
# define HW_MAXID 8 /* number of valid hw ids */
# define CTL_HW_NAMES \
{ \
{ 0, 0 }, \
{ "machine", CTLTYPE_STRING }, \
{ "machine_arch", CTLTYPE_STRING }, \
{ "model", CTLTYPE_STRING }, \
{ "ncpu", CTLTYPE_INT }, \
{ "byteorder", CTLTYPE_INT }, \
{ "pagesize", CTLTYPE_INT }, \
{ "freephysmem", CTLTYPE_INT }, \
}
/*
* CTL_DEBUG definitions
*
* Second level identifier specifies which debug variable.
* Third level identifier specifies which stucture component.
*/
# define CTL_DEBUG_NAME 0 /* string: variable name */
# define CTL_DEBUG_VALUE 1 /* int: variable value */
# define CTL_DEBUG_MAXID 20
# ifndef __KERNEL__
int __sysctl (int *name, unsigned long namelen, void *old, unsigned long *oldlenp,
const void *new, unsigned long newlen);
int sysctl (int *name, unsigned long namelen, void *old, unsigned long *oldlenp,
const void *new, unsigned long newlen);
# endif
# endif /* _MINT_SYSCTL_H */

View File

@@ -0,0 +1,127 @@
/* definitions for various GEMDOS system variables in low memory */
/* WARNING: this file is not compatible with the old one */
/*
* Convention:
* the address for each variable is defined.
*/
#ifndef _SYSVARS_H
# define _SYSVARS_H 1
#ifndef _FEATURES_H
# include <features.h>
#endif
__BEGIN_DECLS
/* Processor state and post mortem dump area */
#define PROC_LIVES_MAGIC 0x12345678L /* proc_lives if dump is valid */
#define proc_lives ((unsigned long *) 0x380L)
struct __post_mortem_dump {
unsigned long d0, d1, d2, d3, d4, d5, d6, d7;
void *a0, *a1, *a2, *a3, *a4, *a5, *a6, *a7; /* a7 == ssp */
void *pc; /* first byte is exception # */
void *usp;
unsigned short stk[16]; /* sixteen word of super stack */
};
#define proc_post_mortem_dump_p ((struct __post_mortem_dump *) 0x384L)
#define proc_dregs (&proc_post_mortem_dump_p->d0)
#define proc_aregs (&proc_post_mortem_dump_p->a0)
#define proc_pc (proc_post_mortem_dump_p->pc)
#define proc_usp (proc_post_mortem_dump_p->usp)
#define proc_utk (proc_post_mortem_dump_p->stk)
/* timer, crit error and process termination handoff vectors */
#define etv_timer (((void (**)()) 0x400L))
#define etv_critic (((void (**)()) 0x404L))
#define etv_term (((void (**)()) 0x408L))
/* memory controller */
#define MEMVALID_MAGIC 0x752019F3L /* once memory is sized */
#define memvalid (((unsigned long *) 0x420L))
#define mencntlr (((unsigned char *) 0x424L))
/* 0 = 128K, 4 = 512K 0 = 256k(2banks) 5 = 1M */
/* reset vector, jump through resvector if resvalid on reset */
#define RESVALID_MAGIC 0x31415926L
#define resvalid ((unsigned long *) 0x426L)
#define resvector ((void (**)()) 0x42aL)
/* do a jmp 0x24L(a6) at end to go to system reset */
/* mem */
#define phystop (((unsigned long *) 0x42eL)) /* physical top of ram */
#define _membot (((unsigned long *) 0x432L)) /* bottom of avail */
#define _memtop (((unsigned long *) 0x436L)) /* top of avail */
#define MEMVAL2_MAGIC 0x237698AAL /* after suc. coldstart && memvalid */
#define memval2 (((unsigned long *) 0x43aL))
/* floppy */
#define flock (((short *) 0x43eL)) /* lock usage of DMA chip */
#define seekrate (((short *) 0x440L)) /* 0=6ms 1=12ms 2=2ms 3=3ms */
#define _timr_ms (((short *) 0x442L)) /* timer calib == 20ms */
#define _fverify (((short *) 0x444L)) /* write verify flag */
#define _bootdev (((short *) 0x446L))
/* video */
#define palmode (((short *) 0x448L)) /* PAL video mode flag */
#define defshiftmd (((unsigned char *) 0x44aL)) /* default video rez */
#define sshiftmd (((short *) 0x44cL)) /* shadow of hdwr. shiftmd reg */
/* 0=Lo 1=med 2=Hi rez */
#define _v_bas_ad (((void *) 0x44eL)) /* screen mem base */
#define vblsem ((short *) 0x452L)) /* vbl semaphore */
#define nvbls (((short *) 0x454L)) /* # of vbl entries def. == 8 */
#define _vblqueue (((void (***)()) 0x456L)) /* vbl queue pointer */
#define colorptr (((short **) 0x45aL)) /* pal. on next vblank if!NULL */
#define _vbclock (((unsigned long *) 0x462L)) /* vbi counter */
#define _frclock (((unsigned long *) 0x466L)) /* #vbi not vblsem'ed */
#define _hz_200 ((unsigned long *) 0x4baL)
#define conterm (*((char *) 0x484L))
#define savptr ((long *) 0x4A2L)
#define _nflops ((short *) 0x4A6L)
#define _sysbase ((long *) 0x4F2L)
#define _shell_p ((long *) 0x4F6L)
typedef struct {
short puns;
char v_p_un[16];
long pstart[16];
short bpbs[1]; /* really 16 BPB's (bios parameter block) */
} HDINFO;
#define pun_ptr ((HDINFO *) 0x516L)
#define _p_cookies ((long **) 0x5A0L)
/* os header */
typedef struct _osheader
{
unsigned short os_entry; /* 0x00 BRA to reset handler */
unsigned short os_version; /* 0x02 TOS version */
void (*reseth) __PROTO((void)); /* 0x04 -> reset handler */
struct _osheader *os_beg; /* 0x08 -> base of OS */
void *os_end; /* 0x0c -> end of OS ram usage */
char *os_rsv1; /* 0x10 reserved */
char *os_magic; /* 0x14 GEM memory usage param */
long os_date; /* 0x18 Build date 0xMMDDYYYY */
unsigned short os_conf; /* 0x1c OS conf bits */
unsigned short os_dosdate; /* 0x1e DOS format build date */
/* the following available on TOS version >= 1.2 */
char **p_root; /* 0x20 -> base of OS pool */
char **pkbshift; /* 0x24 -> kbd shift state var */
char **p_run; /* 0x28 -> PID of current proc */
char *p_rsv2; /* 0x2c reserved */
} OSHEADER;
/* zzzz to-do more */
extern long get_sysvar (void *var) __THROW;
extern void set_sysvar_to_long (void *var, long val) __THROW;
__END_DECLS
#endif /* _SYSVARS_H */

View File

@@ -0,0 +1,49 @@
#ifndef _MINT_XBRA_H
# define _MINT_XBRA_H 1
#ifndef _FEATURES_H
# include <features.h>
#endif
__BEGIN_DECLS
typedef void (*xptr) __PROTO((void));
typedef struct __xbra
{
long xbra_magic;
long gnuc_magic;
xptr next;
short jump;
void (*this) __PROTO((void));
} xbra_struct;
#define _XBRA_MAGIC 0x58425241L /* "XBRA" */
#define _GNUC_MAGIC 0x474E5543L /* "GNUC" */
#define _JMP_OPCODE 0x4EF9
#define _JSR_OPCODE 0x4EB9
#define _XBRA_VEC(x) ((void (*) __PROTO((void))) &(x.jump))
#define _XBRA_INIT(fn) { \
_XBRA_MAGIC, \
_GNUC_MAGIC, \
(xptr) 0, \
_JMP_OPCODE, \
(void (*) __PROTO((void))) fn \
}
#define _TRAP_VEC(n,x) ((void (*) __PROTO((void))) (((long) n << 24) | (long) &(x.jump)))
#define _TRAP_INIT(fn) { \
_XBRA_MAGIC, \
_GNUC_MAGIC, \
(xptr) 0, \
_JSR_OPCODE, \
(void (*) __PROTO((void))) fn \
}
__END_DECLS
#endif /* _XBRA_H */