add volatile to hardware structs, add __stdargs to alib protos

This commit is contained in:
bebbo 2018-01-22 19:52:39 +01:00
parent 1c6c0b112d
commit 4b83f8afc5
4 changed files with 459 additions and 0 deletions

View File

@ -0,0 +1,137 @@
--- NDK_3.9/Include/include_h/clib/alib_protos.h 2001-12-17 15:14:42.000000000 +0100
+++ NDK_3.9/Include/include_h/clib/alib_protos.h 2018-01-22 19:33:39.671085000 +0100
@@ -45,54 +45,54 @@
/* Exec support functions */
-VOID BeginIO( struct IORequest *ioReq );
-struct IORequest *CreateExtIO( CONST struct MsgPort *port, LONG ioSize );
-struct MsgPort *CreatePort( CONST_STRPTR name, LONG pri );
-struct IOStdReq *CreateStdIO( CONST struct MsgPort *port );
-struct Task *CreateTask( CONST_STRPTR name, LONG pri, CONST APTR initPC, ULONG stackSize );
-VOID DeleteExtIO( struct IORequest *ioReq );
-VOID DeletePort( struct MsgPort *ioReq );
-VOID DeleteStdIO( struct IOStdReq *ioReq );
-VOID DeleteTask( struct Task *task );
-VOID NewList( struct List *list );
-APTR LibAllocPooled( APTR poolHeader, ULONG memSize );
-APTR LibCreatePool( ULONG memFlags, ULONG puddleSize, ULONG threshSize );
-VOID LibDeletePool( APTR poolHeader );
-VOID LibFreePooled( APTR poolHeader, APTR memory, ULONG memSize );
+__stdargs VOID BeginIO( struct IORequest *ioReq );
+__stdargs struct IORequest *CreateExtIO( CONST struct MsgPort *port, LONG ioSize );
+__stdargs struct MsgPort *CreatePort( CONST_STRPTR name, LONG pri );
+__stdargs struct IOStdReq *CreateStdIO( CONST struct MsgPort *port );
+__stdargs struct Task *CreateTask( CONST_STRPTR name, LONG pri, CONST APTR initPC, ULONG stackSize );
+__stdargs VOID DeleteExtIO( struct IORequest *ioReq );
+__stdargs VOID DeletePort( struct MsgPort *ioReq );
+__stdargs VOID DeleteStdIO( struct IOStdReq *ioReq );
+__stdargs VOID DeleteTask( struct Task *task );
+__stdargs VOID NewList( struct List *list );
+__stdargs APTR LibAllocPooled( APTR poolHeader, ULONG memSize );
+__stdargs APTR LibCreatePool( ULONG memFlags, ULONG puddleSize, ULONG threshSize );
+__stdargs VOID LibDeletePool( APTR poolHeader );
+__stdargs VOID LibFreePooled( APTR poolHeader, APTR memory, ULONG memSize );
/* Assorted functions in amiga.lib */
-ULONG FastRand( ULONG seed );
-UWORD RangeRand( ULONG maxValue );
+__stdargs ULONG FastRand( ULONG seed );
+__stdargs UWORD RangeRand( ULONG maxValue );
/* Graphics support functions in amiga.lib */
-VOID AddTOF( struct Isrvstr *i, LONG (*p)(APTR args), APTR a );
-VOID RemTOF( struct Isrvstr *i );
-VOID waitbeam( LONG b );
+__stdargs VOID AddTOF( struct Isrvstr *i, LONG (*p)(APTR args), APTR a );
+__stdargs VOID RemTOF( struct Isrvstr *i );
+__stdargs VOID waitbeam( LONG b );
/* math support functions in amiga.lib */
-FLOAT afp( CONST_STRPTR string );
-VOID arnd( LONG place, LONG exp, STRPTR string );
-FLOAT dbf( ULONG exp, ULONG mant );
-LONG fpa( FLOAT fnum, BYTE *string );
-VOID fpbcd( FLOAT fnum, BYTE *string );
+__stdargs FLOAT afp( CONST_STRPTR string );
+__stdargs VOID arnd( LONG place, LONG exp, STRPTR string );
+__stdargs FLOAT dbf( ULONG exp, ULONG mant );
+__stdargs LONG fpa( FLOAT fnum, BYTE *string );
+__stdargs VOID fpbcd( FLOAT fnum, BYTE *string );
/* Timer support functions in amiga.lib (V36 and higher only) */
-LONG TimeDelay( LONG unit, ULONG secs, ULONG microsecs );
-LONG DoTimer( struct timeval *, LONG unit, LONG command );
+__stdargs LONG TimeDelay( LONG unit, ULONG secs, ULONG microsecs );
+__stdargs LONG DoTimer( struct timeval *, LONG unit, LONG command );
/* Commodities functions in amiga.lib (V36 and higher only) */
-VOID ArgArrayDone( VOID );
-STRPTR *ArgArrayInit( LONG argc, CONST_STRPTR *argv );
-LONG ArgInt( CONST_STRPTR *tt, CONST_STRPTR entry, LONG defaultval );
-STRPTR ArgString( CONST_STRPTR *tt, CONST_STRPTR entry, CONST_STRPTR defaultstring );
-CxObj *HotKey( CONST_STRPTR description, struct MsgPort *port, LONG id );
-struct InputEvent *InvertString( CONST_STRPTR str, CONST struct KeyMap *km );
-VOID FreeIEvents( struct InputEvent *events );
+__stdargs VOID ArgArrayDone( VOID );
+__stdargs STRPTR *ArgArrayInit( LONG argc, CONST_STRPTR *argv );
+__stdargs LONG ArgInt( CONST_STRPTR *tt, CONST_STRPTR entry, LONG defaultval );
+__stdargs STRPTR ArgString( CONST_STRPTR *tt, CONST_STRPTR entry, CONST_STRPTR defaultstring );
+__stdargs CxObj *HotKey( CONST_STRPTR description, struct MsgPort *port, LONG id );
+__stdargs struct InputEvent *InvertString( CONST_STRPTR str, CONST struct KeyMap *km );
+__stdargs VOID FreeIEvents( struct InputEvent *events );
/* Commodities Macros */
@@ -105,9 +105,9 @@
/* ARexx support functions in amiga.lib */
-BOOL CheckRexxMsg( CONST struct RexxMsg *rexxmsg );
-LONG GetRexxVar( CONST struct RexxMsg *rexxmsg, CONST_STRPTR name, STRPTR *result );
-LONG SetRexxVar( struct RexxMsg *rexxmsg, CONST_STRPTR name, CONST_STRPTR value, LONG length );
+__stdargs BOOL CheckRexxMsg( CONST struct RexxMsg *rexxmsg );
+__stdargs LONG GetRexxVar( CONST struct RexxMsg *rexxmsg, CONST_STRPTR name, STRPTR *result );
+__stdargs LONG SetRexxVar( struct RexxMsg *rexxmsg, CONST_STRPTR name, CONST_STRPTR value, LONG length );
/* Intuition hook and boopsi support functions in amiga.lib. */
/* These functions do not require any particular ROM revision */
@@ -115,22 +115,22 @@
/* in V36. These functions would work with compatibly-implemented */
/* hooks or objects under V34. */
-ULONG CallHookA( struct Hook *hookPtr, Object *obj, APTR message );
-ULONG CallHook( struct Hook *hookPtr, Object *obj, ... );
-ULONG DoMethodA( Object *obj, Msg message );
-ULONG DoMethod( Object *obj, ULONG methodID, ... );
-ULONG DoSuperMethodA( struct IClass *cl, Object *obj, Msg message );
-ULONG DoSuperMethod( struct IClass *cl, Object *obj, ULONG methodID, ... );
-ULONG CoerceMethodA( struct IClass *cl, Object *obj, Msg message );
-ULONG CoerceMethod( struct IClass *cl, Object *obj, ULONG methodID, ... );
-ULONG HookEntry( struct Hook *hookPtr, Object *obj, APTR message );
-ULONG SetSuperAttrs( struct IClass *cl, Object *obj, ULONG tag1, ... );
+__stdargs ULONG CallHookA( struct Hook *hookPtr, Object *obj, APTR message );
+__stdargs ULONG CallHook( struct Hook *hookPtr, Object *obj, ... );
+__stdargs ULONG DoMethodA( Object *obj, Msg message );
+__stdargs ULONG DoMethod( Object *obj, ULONG methodID, ... );
+__stdargs ULONG DoSuperMethodA( struct IClass *cl, Object *obj, Msg message );
+__stdargs ULONG DoSuperMethod( struct IClass *cl, Object *obj, ULONG methodID, ... );
+__stdargs ULONG CoerceMethodA( struct IClass *cl, Object *obj, Msg message );
+__stdargs ULONG CoerceMethod( struct IClass *cl, Object *obj, ULONG methodID, ... );
+__stdargs ULONG HookEntry( struct Hook *hookPtr, Object *obj, APTR message );
+__stdargs ULONG SetSuperAttrs( struct IClass *cl, Object *obj, ULONG tag1, ... );
/* Network-support functions in amiga.lib. */
/* ACrypt() first appeared in later V39 versions of amiga.lib, but */
/* operates correctly under V37 and up. */
-STRPTR ACrypt( STRPTR buffer, CONST_STRPTR password, CONST_STRPTR username );
+__stdargs STRPTR ACrypt( STRPTR buffer, CONST_STRPTR password, CONST_STRPTR username );
#ifdef __cplusplus
}

View File

@ -0,0 +1,29 @@
--- NDK_3.9/Include/include_h/clib/alib_stdio_protos.h 2001-12-17 15:14:44.000000000 +0100
+++ NDK_3.9/Include/include_h/clib/alib_stdio_protos.h 2018-01-22 19:33:55.310761400 +0100
@@ -21,16 +21,16 @@
/* stdio functions that duplicate those in a typical C library */
-LONG printf( CONST_STRPTR fmt, ... );
-LONG sprintf( CONST_STRPTR buffer, CONST_STRPTR fmt, ... );
-LONG fclose( LONG stream );
-LONG fgetc( LONG stream );
-LONG fprintf( LONG stream, CONST_STRPTR fmt, ... );
-LONG fputc( LONG c, LONG stream );
-LONG fputs( CONST_STRPTR s, LONG stream );
-LONG getchar( VOID );
-LONG putchar( ULONG c );
-LONG puts( CONST_STRPTR s );
+__stdargs LONG printf( CONST_STRPTR fmt, ... );
+__stdargs LONG sprintf( CONST_STRPTR buffer, CONST_STRPTR fmt, ... );
+__stdargs LONG fclose( LONG stream );
+__stdargs LONG fgetc( LONG stream );
+__stdargs LONG fprintf( LONG stream, CONST_STRPTR fmt, ... );
+__stdargs LONG fputc( LONG c, LONG stream );
+__stdargs LONG fputs( CONST_STRPTR s, LONG stream );
+__stdargs LONG getchar( VOID );
+__stdargs LONG putchar( ULONG c );
+__stdargs LONG puts( CONST_STRPTR s );
#ifdef __cplusplus
}

View File

@ -0,0 +1,56 @@
--- NDK_3.9/Include/include_h/hardware/cia.h 2001-12-17 14:15:20.000000000 +0100
+++ NDK_3.9/Include/include_h/hardware/cia.h 2018-01-22 19:24:59.855698700 +0100
@@ -27,37 +27,37 @@
struct CIA {
- UBYTE ciapra;
+ volatile UBYTE ciapra;
UBYTE pad0[0xff];
- UBYTE ciaprb;
+ volatile UBYTE ciaprb;
UBYTE pad1[0xff];
- UBYTE ciaddra;
+ volatile UBYTE ciaddra;
UBYTE pad2[0xff];
- UBYTE ciaddrb;
+ volatile UBYTE ciaddrb;
UBYTE pad3[0xff];
- UBYTE ciatalo;
+ volatile UBYTE ciatalo;
UBYTE pad4[0xff];
- UBYTE ciatahi;
+ volatile UBYTE ciatahi;
UBYTE pad5[0xff];
- UBYTE ciatblo;
+ volatile UBYTE ciatblo;
UBYTE pad6[0xff];
- UBYTE ciatbhi;
+ volatile UBYTE ciatbhi;
UBYTE pad7[0xff];
- UBYTE ciatodlow;
+ volatile UBYTE ciatodlow;
UBYTE pad8[0xff];
- UBYTE ciatodmid;
+ volatile UBYTE ciatodmid;
UBYTE pad9[0xff];
- UBYTE ciatodhi;
+ volatile UBYTE ciatodhi;
UBYTE pad10[0xff];
- UBYTE unusedreg;
+ volatile UBYTE unusedreg;
UBYTE pad11[0xff];
- UBYTE ciasdr;
+ volatile UBYTE ciasdr;
UBYTE pad12[0xff];
- UBYTE ciaicr;
+ volatile UBYTE ciaicr;
UBYTE pad13[0xff];
- UBYTE ciacra;
+ volatile UBYTE ciacra;
UBYTE pad14[0xff];
- UBYTE ciacrb;
+ volatile UBYTE ciacrb;
};

View File

@ -0,0 +1,237 @@
--- NDK_3.9/Include/include_h/hardware/custom.h 2001-12-17 14:15:22.000000000 +0100
+++ NDK_3.9/Include/include_h/hardware/custom.h 2018-01-22 18:49:45.382919800 +0100
@@ -23,122 +23,122 @@
struct Custom {
- UWORD bltddat;
- UWORD dmaconr;
- UWORD vposr;
- UWORD vhposr;
- UWORD dskdatr;
- UWORD joy0dat;
- UWORD joy1dat;
- UWORD clxdat;
- UWORD adkconr;
- UWORD pot0dat;
- UWORD pot1dat;
- UWORD potinp;
- UWORD serdatr;
- UWORD dskbytr;
- UWORD intenar;
- UWORD intreqr;
- APTR dskpt;
- UWORD dsklen;
- UWORD dskdat;
- UWORD refptr;
- UWORD vposw;
- UWORD vhposw;
- UWORD copcon;
- UWORD serdat;
- UWORD serper;
- UWORD potgo;
- UWORD joytest;
- UWORD strequ;
- UWORD strvbl;
- UWORD strhor;
- UWORD strlong;
- UWORD bltcon0;
- UWORD bltcon1;
- UWORD bltafwm;
- UWORD bltalwm;
- APTR bltcpt;
- APTR bltbpt;
- APTR bltapt;
- APTR bltdpt;
- UWORD bltsize;
- UBYTE pad2d;
- UBYTE bltcon0l; /* low 8 bits of bltcon0, write only */
- UWORD bltsizv;
- UWORD bltsizh; /* 5e */
- UWORD bltcmod;
- UWORD bltbmod;
- UWORD bltamod;
- UWORD bltdmod;
- UWORD pad34[4];
- UWORD bltcdat;
- UWORD bltbdat;
- UWORD bltadat;
- UWORD pad3b[3];
- UWORD deniseid; /* 7c */
- UWORD dsksync;
- ULONG cop1lc;
- ULONG cop2lc;
- UWORD copjmp1;
- UWORD copjmp2;
- UWORD copins;
- UWORD diwstrt;
- UWORD diwstop;
- UWORD ddfstrt;
- UWORD ddfstop;
- UWORD dmacon;
- UWORD clxcon;
- UWORD intena;
- UWORD intreq;
- UWORD adkcon;
+ volatile UWORD bltddat;
+ volatile UWORD dmaconr;
+ volatile UWORD vposr;
+ volatile UWORD vhposr;
+ volatile UWORD dskdatr;
+ volatile UWORD joy0dat;
+ volatile UWORD joy1dat;
+ volatile UWORD clxdat;
+ volatile UWORD adkconr;
+ volatile UWORD pot0dat;
+ volatile UWORD pot1dat;
+ volatile UWORD potinp;
+ volatile UWORD serdatr;
+ volatile UWORD dskbytr;
+ volatile UWORD intenar;
+ volatile UWORD intreqr;
+ volatile APTR dskpt;
+ volatile UWORD dsklen;
+ volatile UWORD dskdat;
+ volatile UWORD refptr;
+ volatile UWORD vposw;
+ volatile UWORD vhposw;
+ volatile UWORD copcon;
+ volatile UWORD serdat;
+ volatile UWORD serper;
+ volatile UWORD potgo;
+ volatile UWORD joytest;
+ volatile UWORD strequ;
+ volatile UWORD strvbl;
+ volatile UWORD strhor;
+ volatile UWORD strlong;
+ volatile UWORD bltcon0;
+ volatile UWORD bltcon1;
+ volatile UWORD bltafwm;
+ volatile UWORD bltalwm;
+ volatile APTR bltcpt;
+ volatile APTR bltbpt;
+ volatile APTR bltapt;
+ volatile APTR bltdpt;
+ volatile UWORD bltsize;
+ volatile UBYTE pad2d;
+ volatile UBYTE bltcon0l; /* low 8 bits of bltcon0, write only */
+ volatile UWORD bltsizv;
+ volatile UWORD bltsizh; /* 5e */
+ volatile UWORD bltcmod;
+ volatile UWORD bltbmod;
+ volatile UWORD bltamod;
+ volatile UWORD bltdmod;
+ volatile UWORD pad34[4];
+ volatile UWORD bltcdat;
+ volatile UWORD bltbdat;
+ volatile UWORD bltadat;
+ volatile UWORD pad3b[3];
+ volatile UWORD deniseid; /* 7c */
+ volatile UWORD dsksync;
+ volatile ULONG cop1lc;
+ volatile ULONG cop2lc;
+ volatile UWORD copjmp1;
+ volatile UWORD copjmp2;
+ volatile UWORD copins;
+ volatile UWORD diwstrt;
+ volatile UWORD diwstop;
+ volatile UWORD ddfstrt;
+ volatile UWORD ddfstop;
+ volatile UWORD dmacon;
+ volatile UWORD clxcon;
+ volatile UWORD intena;
+ volatile UWORD intreq;
+ volatile UWORD adkcon;
struct AudChannel {
- UWORD *ac_ptr; /* ptr to start of waveform data */
- UWORD ac_len; /* length of waveform in words */
- UWORD ac_per; /* sample period */
- UWORD ac_vol; /* volume */
- UWORD ac_dat; /* sample pair */
- UWORD ac_pad[2]; /* unused */
+ volatile UWORD *ac_ptr; /* ptr to start of waveform data */
+ volatile UWORD ac_len; /* length of waveform in words */
+ volatile UWORD ac_per; /* sample period */
+ volatile UWORD ac_vol; /* volume */
+ volatile UWORD ac_dat; /* sample pair */
+ volatile UWORD ac_pad[2]; /* unused */
} aud[4];
- APTR bplpt[8];
- UWORD bplcon0;
- UWORD bplcon1;
- UWORD bplcon2;
- UWORD bplcon3;
- UWORD bpl1mod;
- UWORD bpl2mod;
- UWORD bplcon4;
- UWORD clxcon2;
- UWORD bpldat[8];
- APTR sprpt[8];
+ volatile APTR bplpt[8];
+ volatile UWORD bplcon0;
+ volatile UWORD bplcon1;
+ volatile UWORD bplcon2;
+ volatile UWORD bplcon3;
+ volatile UWORD bpl1mod;
+ volatile UWORD bpl2mod;
+ volatile UWORD bplcon4;
+ volatile UWORD clxcon2;
+ volatile UWORD bpldat[8];
+ volatile APTR sprpt[8];
struct SpriteDef {
- UWORD pos;
- UWORD ctl;
- UWORD dataa;
- UWORD datab;
+ volatile UWORD pos;
+ volatile UWORD ctl;
+ volatile UWORD dataa;
+ volatile UWORD datab;
} spr[8];
- UWORD color[32];
- UWORD htotal;
- UWORD hsstop;
- UWORD hbstrt;
- UWORD hbstop;
- UWORD vtotal;
- UWORD vsstop;
- UWORD vbstrt;
- UWORD vbstop;
- UWORD sprhstrt;
- UWORD sprhstop;
- UWORD bplhstrt;
- UWORD bplhstop;
- UWORD hhposw;
- UWORD hhposr;
- UWORD beamcon0;
- UWORD hsstrt;
- UWORD vsstrt;
- UWORD hcenter;
- UWORD diwhigh; /* 1e4 */
- UWORD padf3[11];
- UWORD fmode;
+ volatile UWORD color[32];
+ volatile UWORD htotal;
+ volatile UWORD hsstop;
+ volatile UWORD hbstrt;
+ volatile UWORD hbstop;
+ volatile UWORD vtotal;
+ volatile UWORD vsstop;
+ volatile UWORD vbstrt;
+ volatile UWORD vbstop;
+ volatile UWORD sprhstrt;
+ volatile UWORD sprhstop;
+ volatile UWORD bplhstrt;
+ volatile UWORD bplhstop;
+ volatile UWORD hhposw;
+ volatile UWORD hhposr;
+ volatile UWORD beamcon0;
+ volatile UWORD hsstrt;
+ volatile UWORD vsstrt;
+ volatile UWORD hcenter;
+ volatile UWORD diwhigh; /* 1e4 */
+ volatile UWORD padf3[11];
+ volatile UWORD fmode;
};
#ifdef ECS_SPECIFIC