diff --git a/README b/README index cd8d8c7..5fa84cc 100644 --- a/README +++ b/README @@ -64,6 +64,12 @@ Windows using mingw32. So far that port hasn't been tried since putting the code on Github. It probably doesn't work, but probably could be made to work without much effort. +At one time we had Executor running on the Alpha, a 64-bit +environment. We actually modified gcc to support "pointer bit-fields" +and were able to get Executor to run. Now that 64-bit machines are +more popular, I've begun an experiment in supporting 64-bit machines +without modifying the compiler. + As I continue Executor's transition to a recent gnu build system I may inadvertantly push versions that don't build when using the above commands. Don't hesitate to ask me if you're having trouble diff --git a/TODO b/TODO index 4f0fdc1..460254a 100644 --- a/TODO +++ b/TODO @@ -1,3 +1,5 @@ + Document work in progress on 64-bit port + Yank all the misleading RCS strings Update the copyright notices to make it that the code is under diff --git a/src/Makefile.am b/src/Makefile.am index 50f88cc..01894c2 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -215,6 +215,11 @@ arch_sources = config/arch/powerpc/powerpc.c \ AM_CPPFLAGS += -D_GNU_SOURCE endif CONFIG_ARCH_POWERPC +if CONFIG_ARCH_X86_64 +arch_sources = config/arch/x86_64/x86_64.c +endif CONFIG_ARCH_X86_64 + + if CONFIG_FRONT_END_DOS # The DOS port of Executor hasn't ever been built using automake. Most likely # we'll rip all the DOS support out of the code before ever making it go, but diff --git a/src/configure.ac b/src/configure.ac index 49cb80d..c2678e5 100644 --- a/src/configure.ac +++ b/src/configure.ac @@ -133,6 +133,7 @@ AM_CONDITIONAL([CONFIG_ARCH_ALPHA], [test x$host_cpu = xalpha]) AM_CONDITIONAL([CONFIG_ARCH_I386], [test x$host_cpu = xi386]) AM_CONDITIONAL([CONFIG_ARCH_M68K], [test x$host_cpu = xm68k]) AM_CONDITIONAL([CONFIG_ARCH_POWERPC], [test x$host_cpu = xpowerpc]) +AM_CONDITIONAL([CONFIG_ARCH_X86_64], [test x$host_cpu = xx86_64]) AM_CONDITIONAL([CONFIG_FRONT_END_DOS], [test x$front_end = xdos]) AM_CONDITIONAL([CONFIG_FRONT_END_NEXTSTEP], [test x$front_end = xnextstep]) @@ -157,6 +158,8 @@ AM_CONDITIONAL([CONFIG_SOUND_DJGPP], [test x$sound_config = xdjgpp]) AM_CONDITIONAL([CONFIG_SOUND_LINUX], [test x$sound_config = xlinux]) AM_CONDITIONAL([CONFIG_SOUND_SDL], [test x$sound_config = xsdl]) +AC_CHECK_SIZEOF([char *]) + AC_CONFIG_FILES([Makefile]) AC_OUTPUT diff --git a/src/ctlInit.c b/src/ctlInit.c index c8d5b65..13a49d5 100644 --- a/src/ctlInit.c +++ b/src/ctlInit.c @@ -111,7 +111,7 @@ P2(PUBLIC pascal trap, ControlHandle, GetNewControl, /* IMI-321 */ INTEGER, cid, WindowPtr, wst) { typedef contrlrestype *wp; - typedef struct { wp p PACKED_P; } HIDDEN_wp; + MAKE_HIDDEN(wp); HIDDEN_wp *wh; ControlHandle retval; Handle ctab_res_h; @@ -170,9 +170,9 @@ P2 (PUBLIC pascal trap, void, SetCtlColor, ControlHandle, ctl, CCTabHandle, ctab P1(PUBLIC pascal trap, void, DisposeControl, ControlHandle, c) /* IMI-321 */ { - typedef struct { ControlHandle p PACKED_P; } HIDDEN_ControlHandle; + MAKE_HIDDEN(ControlHandle); HIDDEN_ControlHandle *t; - typedef struct { AuxCtlHandle p PACKED_P; } HIDDEN_AuxCtlHandle; + MAKE_HIDDEN(AuxCtlHandle); HIDDEN_AuxCtlHandle *auxhp; AuxCtlHandle saveauxh; diff --git a/src/font.c b/src/font.c index 4563ac4..5f6bc53 100644 --- a/src/font.c +++ b/src/font.c @@ -200,7 +200,7 @@ A2(PRIVATE, void, mungfmo, ctrip, cp, FMOutput *, fmop) A1(PRIVATE, BOOLEAN, widthlistmatch, FMInput *, fmip) { - typedef struct { WHandle p PACKED_P; } HIDDEN_WHandle; + MAKE_HIDDEN(WHandle); HIDDEN_WHandle *whp, *ewhp; for (whp = (HIDDEN_WHandle *) STARH(WIDTHLISTHAND), ewhp = whp + MAXTABLES; whp != ewhp; whp++) { diff --git a/src/gestalt.c b/src/gestalt.c index 4e1d25f..f164800 100644 --- a/src/gestalt.c +++ b/src/gestalt.c @@ -90,7 +90,13 @@ PRIVATE gestaltentry_t gtable[] = { /* gestaltTermMgrAttr, 0, */ /* gestaltParityAttr, 0, */ -#if defined(BINCOMPAT) && !defined(__alpha) +/* + * TODO: instead of casting these to LONGINT, shouldn't we be using something + * like US_TO_SYN68K here, or if not, soemthing that takes ROMlib_offset + * into account? + */ + +#if defined(BINCOMPAT) && SIZEOF_CHAR_P == 4 { gestaltExtToolboxTable, (LONGINT) (tooltraptable + 0x200), }, { gestaltToolboxTable, (LONGINT) tooltraptable, }, { gestaltOSTable, (LONGINT) ostraptable, }, @@ -98,9 +104,6 @@ PRIVATE gestaltentry_t gtable[] = { { gestaltExtToolboxTable, UNKNOWN, }, { gestaltOSTable, UNKNOWN, }, { gestaltToolboxTable, UNKNOWN, }, -#endif - -#if defined(__alpha) #warning gestalt{ExtToolboxTable,ToolboxTable,OSTable} not initialized #endif @@ -229,7 +232,7 @@ gestaltPhysicalRAMSize 'ram ' PRIVATE gestaltentry_t phystable[] = { { gestaltSystemVersion, EXECUTOR_VERSION_NUMERIC }, -#if !defined (__alpha) +#if SIZEOF_CHAR_P == 4 { gestaltExecutorVersionString, (long) EXECUTOR_VERSION }, #else #warning gestaltExecutorVersionString not currently available diff --git a/src/include/ADB.h b/src/include/ADB.h index 5b55b6c..569854a 100644 --- a/src/include/ADB.h +++ b/src/include/ADB.h @@ -12,14 +12,14 @@ typedef struct PACKED { SignedByte devType; SignedByte origADBAddr; - Ptr dbServiceRtPtr PACKED_P; - Ptr dbDataAreaAddr PACKED_P; + PACKED_MEMBER(Ptr, dbServiceRtPtr); + PACKED_MEMBER(Ptr, dbDataAreaAddr); } ADBDataBlock; typedef struct PACKED { - Ptr siServiceRtPtr PACKED_P; - Ptr siDataAreaAddr PACKED_P; + PACKED_MEMBER(Ptr, siServiceRtPtr); + PACKED_MEMBER(Ptr, siDataAreaAddr); } ADBSetInfoBlock; extern void ADBReInit (void); diff --git a/src/include/AppleEvents.h b/src/include/AppleEvents.h index b06c866..f72485e 100644 --- a/src/include/AppleEvents.h +++ b/src/include/AppleEvents.h @@ -114,7 +114,7 @@ typedef ProcPtr EventFilterProcPtr; typedef struct PACKED AE_hdlr { - ProcPtr fn PACKED_P; + PACKED_MEMBER(ProcPtr, fn); int32 refcon; } AE_hdlr_t; @@ -158,14 +158,14 @@ typedef struct PACKED AE_hdlr_table } AE_hdlr_table_t; typedef AE_hdlr_table_t *AE_hdlr_table_ptr; -typedef struct { AE_hdlr_table_ptr p PACKED_P; } HIDDEN_AE_hdlr_table_ptr; +MAKE_HIDDEN(AE_hdlr_table_ptr); typedef HIDDEN_AE_hdlr_table_ptr *AE_hdlr_table_h; typedef struct PACKED AE_zone_tables { - AE_hdlr_table_h event_hdlr_table PACKED_P; - AE_hdlr_table_h coercion_hdlr_table PACKED_P; - AE_hdlr_table_h special_hdlr_table PACKED_P; + PACKED_MEMBER(AE_hdlr_table_h, event_hdlr_table); + PACKED_MEMBER(AE_hdlr_table_h, coercion_hdlr_table); + PACKED_MEMBER(AE_hdlr_table_h, special_hdlr_table); char pad_1[28]; @@ -175,11 +175,11 @@ typedef struct PACKED AE_zone_tables /* points to a 32byte handle of unknown contents (at least, sometimes) */ - Handle unknown_sys_handle PACKED_P; + PACKED_MEMBER(Handle, unknown_sys_handle); } AE_zone_tables_t; typedef AE_zone_tables_t *AE_zone_tables_ptr; -typedef struct { AE_zone_tables_ptr p PACKED_P; } HIDDEN_AE_zone_tables_ptr; +MAKE_HIDDEN(AE_zone_tables_ptr); typedef HIDDEN_AE_zone_tables_ptr *AE_zone_tables_h; typedef struct PACKED AE_info @@ -187,18 +187,18 @@ typedef struct PACKED AE_info char pad_1[340]; /* offset of `appl_zone_tables' is 340; handle to a `struct tables' */ - AE_zone_tables_h appl_zone_tables PACKED_P; + PACKED_MEMBER(AE_zone_tables_h, appl_zone_tables); char pad_2[36]; /* offset of `system_zone_tables' is 380; handle to a `struct tables' */ - AE_zone_tables_h system_zone_tables PACKED_P; + PACKED_MEMBER(AE_zone_tables_h, system_zone_tables); char pad_3[212]; } AE_info_t; typedef AE_info_t *AE_info_ptr; -typedef struct { AE_info_ptr p PACKED_P; } HIDDEN_AE_info_ptr; +MAKE_HIDDEN(AE_info_ptr); extern pascal trap OSErr C__AE_hdlr_table_alloc (int32, int32, int32, int8, AE_hdlr_table_h *); diff --git a/src/include/CQuickDraw.h b/src/include/CQuickDraw.h index 2a98581..4b80ea1 100644 --- a/src/include/CQuickDraw.h +++ b/src/include/CQuickDraw.h @@ -4,13 +4,12 @@ #include "WindowMgr.h" -typedef struct -{ - HIDDEN_CGrafPtr *p PACKED_P; -} HIDDEN_CGrafPtr_Ptr; +typedef HIDDEN_CGrafPtr *HIDDEN_CGrafPtr_Ptr; +MAKE_HIDDEN(HIDDEN_CGrafPtr_Ptr); -#define theCPort (STARH (STARH ((HIDDEN_CGrafPtr_Ptr *) SYN68K_TO_US(a5)))) -#define theCPortX ((*STARH ((HIDDEN_CGrafPtr_Ptr *) SYN68K_TO_US(a5))).p) + +#define theCPort (STARH (STARH ((HIDDEN_HIDDEN_CGrafPtr_Ptr *) SYN68K_TO_US(a5)))) +#define theCPortX ((*STARH ((HIDDEN_HIDDEN_CGrafPtr_Ptr *) SYN68K_TO_US(a5))).p) #define minSeed 1024 @@ -24,29 +23,33 @@ typedef struct PACKED unsigned char iTTable[1]; } ITab, *ITabPtr; -typedef struct { ITabPtr p PACKED_P; } HIDDEN_ITabPtr; +MAKE_HIDDEN(ITabPtr); typedef HIDDEN_ITabPtr *ITabHandle; typedef struct GDevice *GDPtr; -typedef struct { GDPtr p PACKED_P; } HIDDEN_GDevicePtr; +typedef GDPtr GDevicePtr; +MAKE_HIDDEN(GDevicePtr); typedef HIDDEN_GDevicePtr *GDHandle; -typedef struct { GDHandle p PACKED_P; } HIDDEN_GDHandle; +MAKE_HIDDEN(GDHandle); -typedef struct { struct SProcRec *p PACKED_P; } HIDDEN_SProcPtr; +typedef struct PACKED SProcRec *SProcPtr; +MAKE_HIDDEN(SProcPtr); typedef HIDDEN_SProcPtr *SProcHndl; typedef struct PACKED SProcRec { - SProcHndl nxtSrch PACKED_P; - ProcPtr srchProc PACKED_P; -} SProcRec, *SProcPtr; + PACKED_MEMBER(SProcHndl, nxtSrch); + PACKED_MEMBER(ProcPtr, srchProc); +} SProcRec; + +typedef struct PACKED CProcRec *CProcPtr; +MAKE_HIDDEN(CProcPtr); -typedef struct { struct CProcRec *p PACKED_P; } HIDDEN_CProcPtr; typedef HIDDEN_CProcPtr *CProcHndl; typedef struct PACKED CProcRec { - CProcHndl nxtComp PACKED_P; - ProcPtr compProc PACKED_P; -} CProcRec, *CProcPtr; + PACKED_MEMBER(CProcHndl, nxtComp); + PACKED_MEMBER(ProcPtr, compProc); +} CProcRec; typedef void *DeviceLoopDrawingProcPtr; @@ -55,20 +58,20 @@ typedef struct PACKED GDevice INTEGER gdRefNum; INTEGER gdID; INTEGER gdType; - ITabHandle gdITable PACKED_P; + PACKED_MEMBER(ITabHandle, gdITable); INTEGER gdResPref; - SProcHndl gdSearchProc PACKED_P; - CProcHndl gdCompProc PACKED_P; + PACKED_MEMBER(SProcHndl, gdSearchProc); + PACKED_MEMBER(CProcHndl, gdCompProc); INTEGER gdFlags; - PixMapHandle gdPMap PACKED_P; + PACKED_MEMBER(PixMapHandle, gdPMap); LONGINT gdRefCon; - GDHandle gdNextGD PACKED_P; + PACKED_MEMBER(GDHandle, gdNextGD); Rect gdRect; LONGINT gdMode; INTEGER gdCCBytes; INTEGER gdCCDepth; - Handle gdCCXData PACKED_P; - Handle gdCCXMask PACKED_P; + PACKED_MEMBER(Handle, gdCCXData); + PACKED_MEMBER(Handle, gdCCXMask); LONGINT gdReserved; } GDevice; @@ -91,10 +94,10 @@ typedef struct PACKED ColorInfo typedef struct PACKED Palette { INTEGER pmEntries; - GrafPtr pmWindow PACKED_P; + PACKED_MEMBER(GrafPtr, pmWindow); INTEGER pmPrivate; LONGINT /* Handle? */ pmDevices; - Handle pmSeeds PACKED_P; + PACKED_MEMBER(Handle,pmSeeds); ColorInfo pmInfo[1]; } Palette, *PalettePtr; @@ -129,7 +132,7 @@ typedef enum #define pmFgUpdates ((INTEGER) pmFgUpdates_enum) #define pmAllUpdates ((INTEGER) pmAllUpdates_enum) -typedef struct { PalettePtr p PACKED_P; } HIDDEN_PalettePtr; +MAKE_HIDDEN(PalettePtr); typedef HIDDEN_PalettePtr *PaletteHandle; /* return TRUE if `maybe_graphics_world' points to a graphics world, @@ -169,7 +172,7 @@ typedef struct PACKED CommonSpec } CommentSpec; typedef CommentSpec *CommentSpecPtr; -typedef struct { CommentSpecPtr p PACKED_P; } HIDDEN_CommentSpecPtr; +MAKE_HIDDEN(CommentSpecPtr); typedef HIDDEN_CommentSpecPtr *CommentSpecHandle; typedef struct PACKED FontSpec @@ -182,15 +185,15 @@ typedef struct PACKED FontSpec } FontSpec; typedef FontSpec *FontSpecPtr; -typedef struct { FontSpecPtr p PACKED_P; } HIDDEN_FontSpecPtr; +MAKE_HIDDEN(FontSpecPtr); typedef HIDDEN_FontSpecPtr *FontSpecHandle; typedef struct PACKED PictInfo { int16 version; /* 0 */ int32 uniqueColors; /* 2 */ - PaletteHandle thePalette PACKED_P; /* 6 */ - CTabHandle theColorTable PACKED_P; /* 10 */ + PACKED_MEMBER(PaletteHandle, thePalette); /* 6 */ + PACKED_MEMBER(CTabHandle, theColorTable); /* 10 */ Fixed hRes; /* 14 */ Fixed vRes; /* 18 */ INTEGER depth; /* 22 */ @@ -208,19 +211,19 @@ typedef struct PACKED PictInfo int32 commentCount; int32 uniqueComments; - CommentSpecHandle commentHandle PACKED_P; + PACKED_MEMBER(CommentSpecHandle, commentHandle); int32 uniqueFonts; - FontSpecHandle fontHandle PACKED_P; + PACKED_MEMBER(FontSpecHandle, fontHandle); - Handle fontNamesHandle PACKED_P; + PACKED_MEMBER(Handle, fontNamesHandle); int32 reserved1; int32 reserved2; } PictInfo; typedef PictInfo *PictInfoPtr; -typedef struct { PictInfoPtr p PACKED_P; } HIDDEN_PictInfoPtr; +MAKE_HIDDEN(PictInfoPtr); typedef HIDDEN_PictInfoPtr *PictInfoHandle; typedef int32 PictInfoID; @@ -452,8 +455,12 @@ extern HIDDEN_GDHandle MainDevice_H; extern HIDDEN_GDHandle DeviceList_H; #endif -#define TheGDevice (TheGDevice_H.p) -#define MainDevice (MainDevice_H.p) -#define DeviceList (DeviceList_H.p) +# define TheGDevice (TheGDevice_H.p) +# define MainDevice (MainDevice_H.p) +# define DeviceList (DeviceList_H.p) + +#if SIZEOF_CHAR_P == 8 +# warning "no type info in TheGDevice, MainDevice, DeviceList" +#endif #endif /* _CQUICKDRAW_H_ */ diff --git a/src/include/CommTool.h b/src/include/CommTool.h index 0e6a7b8..ef47004 100644 --- a/src/include/CommTool.h +++ b/src/include/CommTool.h @@ -10,7 +10,7 @@ typedef struct PACKED { - QElemPtr qLink PACKED_P; + PACKED_MEMBER(QElemPtr, qLink); INTEGER qType; INTEGER crmVersion; LONGINT crmPrivate; @@ -35,9 +35,9 @@ enum { crmSerialDevice = 1 }; typedef struct PACKED { INTEGER version; - StringHandle inputDriverName PACKED_P; - StringHandle outputDriverName PACKED_P; - StringHandle name PACKED_P; + PACKED_MEMBER(StringHandle, inputDriverName); + PACKED_MEMBER(StringHandle, outputDriverName); + PACKED_MEMBER(StringHandle, name); Handle deviceIcon ; LONGINT ratedSpeed; LONGINT maxSpeed; diff --git a/src/include/ControlMgr.h b/src/include/ControlMgr.h index 952d63c..889343e 100644 --- a/src/include/ControlMgr.h +++ b/src/include/ControlMgr.h @@ -78,24 +78,24 @@ enum typedef struct __cr ControlRecord; typedef ControlRecord *ControlPtr; -typedef struct { ControlPtr p PACKED_P; } HIDDEN_ControlPtr; +MAKE_HIDDEN(ControlPtr); typedef HIDDEN_ControlPtr *ControlHandle; -typedef struct { ControlHandle p PACKED_P; } HIDDEN_ControlHandle; +MAKE_HIDDEN(ControlHandle); #include "WindowMgr.h" struct PACKED __cr { - ControlHandle nextControl PACKED_P; /* actually ControlHandle */ - WindowPtr contrlOwner PACKED_P; + PACKED_MEMBER(ControlHandle, nextControl); + PACKED_MEMBER(WindowPtr, contrlOwner); Rect contrlRect; Byte contrlVis; Byte contrlHilite; INTEGER contrlValue; INTEGER contrlMin; INTEGER contrlMax; - Handle contrlDefProc PACKED_P; - Handle contrlData PACKED_P; - ProcPtr contrlAction PACKED_P; + PACKED_MEMBER(Handle, contrlDefProc); + PACKED_MEMBER(Handle, contrlData); + PACKED_MEMBER(ProcPtr, contrlAction); LONGINT contrlRfCon; Str255 contrlTitle; }; @@ -106,18 +106,18 @@ typedef struct PACKED { INTEGER ctSize; cSpecArray ctTable; } CtlCTab, *CCTabPtr; -typedef struct { CCTabPtr p PACKED_P; } HIDDEN_CCTabPtr; +MAKE_HIDDEN(CCTabPtr); typedef HIDDEN_CCTabPtr *CCTabHandle; typedef struct AuxCtlRec *AuxCtlPtr; -typedef struct { AuxCtlPtr p PACKED_P; } HIDDEN_AuxCtlPtr; +MAKE_HIDDEN(AuxCtlPtr); typedef HIDDEN_AuxCtlPtr *AuxCtlHandle; -typedef struct { AuxCtlHandle p PACKED_P; } HIDDEN_AuxCtlHandle; +MAKE_HIDDEN(AuxCtlHandle); typedef struct PACKED AuxCtlRec { - AuxCtlHandle acNext PACKED_P; - ControlHandle acOwner PACKED_P; - CCTabHandle acCTable PACKED_P; + PACKED_MEMBER(AuxCtlHandle, acNext); + PACKED_MEMBER(ControlHandle, acOwner); + PACKED_MEMBER(CCTabHandle, acCTable); INTEGER acFlags; LONGINT acReserved; LONGINT acRefCon; diff --git a/src/include/DeviceMgr.h b/src/include/DeviceMgr.h index cba007b..2045d98 100644 --- a/src/include/DeviceMgr.h +++ b/src/include/DeviceMgr.h @@ -41,29 +41,30 @@ typedef struct PACKED { } ramdriver; typedef ramdriver *ramdriverptr; -typedef struct { ramdriverptr p PACKED_P; } HIDDEN_ramdriverptr; +MAKE_HIDDEN(ramdriverptr); typedef HIDDEN_ramdriverptr *ramdriverhand; typedef enum { Open, Prime, Ctl, Stat, Close } DriverRoutineType; typedef struct PACKED { - umacdriverptr dCtlDriver PACKED_P; /* not just Ptr */ + PACKED_MEMBER(umacdriverptr, dCtlDriver); /* not just Ptr */ INTEGER dCtlFlags; QHdr dCtlQHdr; LONGINT dCtlPosition; - Handle dCtlStorage PACKED_P; + PACKED_MEMBER(Handle, dCtlStorage); INTEGER dCtlRefNum; LONGINT dCtlCurTicks; - WindowPtr dCtlWindow PACKED_P; + PACKED_MEMBER(WindowPtr, dCtlWindow); INTEGER dCtlDelay; INTEGER dCtlEMask; INTEGER dCtlMenu; } DCtlEntry, *DCtlPtr; -typedef struct { DCtlPtr p PACKED_P; } HIDDEN_DCtlPtr; + +MAKE_HIDDEN(DCtlPtr); typedef HIDDEN_DCtlPtr *DCtlHandle; -typedef struct { DCtlHandle p PACKED_P; } HIDDEN_DCtlHandle; +MAKE_HIDDEN(DCtlHandle); typedef HIDDEN_DCtlHandle *DCtlHandlePtr; -typedef struct { DCtlHandlePtr p PACKED_P; } HIDDEN_DCtlHandlePtr; +MAKE_HIDDEN(DCtlHandlePtr); #define asyncTrpBit (1 << 10) #define noQueueBit (1 << 9) diff --git a/src/include/DialogMgr.h b/src/include/DialogMgr.h index 3ace66d..e7c33b6 100644 --- a/src/include/DialogMgr.h +++ b/src/include/DialogMgr.h @@ -33,8 +33,8 @@ typedef struct PACKED { WindowRecord window; - Handle items PACKED_P; - TEHandle textH PACKED_P; + PACKED_MEMBER(Handle, items); + PACKED_MEMBER(TEHandle, textH); INTEGER editField; INTEGER editOpen; INTEGER aDefItem; @@ -74,7 +74,7 @@ typedef struct PACKED } DialogTemplate; typedef DialogTemplate *DialogTPtr; -typedef struct { DialogTPtr p PACKED_P; } HIDDEN_DialogTPtr; +MAKE_HIDDEN(DialogTPtr); typedef HIDDEN_DialogTPtr *DialogTHndl; typedef struct PACKED { @@ -98,7 +98,7 @@ typedef struct PACKED { StageList stages; } AlertTemplate; typedef AlertTemplate *AlertTPtr; -typedef struct { AlertTPtr p PACKED_P; } HIDDEN_AlertTPtr; +MAKE_HIDDEN(AlertTPtr); typedef HIDDEN_AlertTPtr *AlertTHndl; #define overlayDITL 0 diff --git a/src/include/Disk.h b/src/include/Disk.h index 0da09ed..7bf5227 100644 --- a/src/include/Disk.h +++ b/src/include/Disk.h @@ -38,7 +38,7 @@ typedef struct PACKED { SignedByte diskInPlace; SignedByte installed; SignedByte sides; - QElemPtr qLink PACKED_P; + PACKED_MEMBER(QElemPtr, qLink); INTEGER qType; INTEGER dQDrive; INTEGER dQRefNum; diff --git a/src/include/EditionMgr.h b/src/include/EditionMgr.h index 67ca506..15b4616 100644 --- a/src/include/EditionMgr.h +++ b/src/include/EditionMgr.h @@ -15,13 +15,13 @@ #define declare_subtypes(type) \ typedef struct type ## Record type ## Record; \ typedef type ## Record *type ## Ptr; \ -typedef struct { type ## Ptr p PACKED_P; } HIDDEN_ ## type ## Ptr; \ +MAKE_HIDDEN(type ## Ptr); \ typedef HIDDEN_ ## type ## Ptr * type ## Handle #define declare_record_subtypes(type) \ typedef struct type type; \ typedef type *type ## Ptr; \ -typedef struct { type ## Ptr p PACKED_P; } HIDDEN_ ## type ## Ptr; \ +MAKE_HIDDEN(type ## Ptr); \ typedef HIDDEN_ ## type ## Ptr * type ## Handle typedef int32 TimeStamp; @@ -43,11 +43,11 @@ struct PACKED SectionRecord TimeStamp mdDate; int32 sectionID; int32 refCon; - AliasHandle alias PACKED_P; + PACKED_MEMBER(AliasHandle, alias); int32 subPart; - /* ### Section */ Handle nextSection PACKED_P; - Handle controlBlock PACKED_P; + PACKED_MEMBER(/* ### Section */ Handle, nextSection); + PACKED_MEMBER(Handle, controlBlock); EditionRefNum refNum; }; @@ -83,7 +83,7 @@ struct PACKED NewPublisherReply Boolean replacing; Boolean usePart; uint8 _filler; - Handle preview PACKED_P; + PACKED_MEMBER(Handle, preview); FormatType previewFormat; EditionContainerSpec container; }; @@ -105,7 +105,7 @@ struct PACKED SectionOptionsReply { Boolean canceled; Boolean changed; - SectionHandle sectionH PACKED_P; + PACKED_MEMBER(SectionHandle, sectionH); ResType action; }; @@ -123,11 +123,11 @@ typedef uint8 EditionOpenerVerb; struct PACKED EditionOpenerParamBlock { EditionInfoRecord info; - SectionHandle sectionH PACKED_P; - FSSpecPtr document PACKED_P; + PACKED_MEMBER(SectionHandle, sectionH); + PACKED_MEMBER(FSSpecPtr, document); OSType fdCreator; int32 ioRefNum; - FormatIOProcPtr ioProc PACKED_P; + PACKED_MEMBER(FormatIOProcPtr, ioProc); Boolean success; SignedByte formatsMask; }; @@ -148,7 +148,7 @@ struct PACKED FormatIOParamBlock FormatType format; int32 formatIndex; int32 offset; - Ptr buffPtr PACKED_P; + PACKED_MEMBER(Ptr, buffPtr); int32 buffLen; }; diff --git a/src/include/FileMgr.h b/src/include/FileMgr.h index 50243cc..ee88aa9 100644 --- a/src/include/FileMgr.h +++ b/src/include/FileMgr.h @@ -107,15 +107,15 @@ typedef enum { cntrlParamType } ParamBlkType; -#define COMMONFSQUEUEDEFS \ - QElemPtr qLink PACKED_P; \ - INTEGER qType; \ - INTEGER ioTrap; \ - Ptr ioCmdAddr PACKED_P; \ - ProcPtr ioCompletion PACKED_P; \ - OSErr ioResult; \ - StringPtr ioNamePtr PACKED_P; \ - INTEGER ioVRefNum +#define COMMONFSQUEUEDEFS \ + PACKED_MEMBER(QElemPtr, qLink); \ + INTEGER qType; \ + INTEGER ioTrap; \ + PACKED_MEMBER(Ptr, ioCmdAddr); \ + PACKED_MEMBER(ProcPtr, ioCompletion); \ + OSErr ioResult; \ + PACKED_MEMBER(StringPtr, ioNamePtr); \ + INTEGER ioVRefNum typedef struct PACKED { COMMONFSQUEUEDEFS; @@ -123,7 +123,7 @@ typedef struct PACKED { SignedByte ioVersNum; SignedByte ioPermssn; LONGINT ioMisc; /* should be largest of Ptr, LONGINT */ - Ptr ioBuffer PACKED_P; + PACKED_MEMBER(Ptr, ioBuffer); LONGINT ioReqCount; LONGINT ioActCount; INTEGER ioPosMode; @@ -189,7 +189,7 @@ typedef struct PACKED { SignedByte ioVersNum; SignedByte ioPermssn; LONGINT ioMisc; /* should be largest of Ptr, LONGINT */ - Ptr ioBuffer PACKED_P; + PACKED_MEMBER(Ptr, ioBuffer); LONGINT ioReqCount; LONGINT ioActCount; INTEGER ioPosMode; @@ -302,7 +302,7 @@ typedef CInfoPBRec *CInfoPBPtr; typedef struct PACKED { COMMONFSQUEUEDEFS; LONGINT filler1; - StringPtr ioNewName PACKED_P; + PACKED_MEMBER(StringPtr, ioNewName); LONGINT filler2; LONGINT ioNewDirID; LONGINT filler3[2]; @@ -340,7 +340,7 @@ typedef struct PACKED { typedef FCBPBRec *FCBPBPtr; typedef struct PACKED { - QElemPtr qLink PACKED_P; /* 0 */ + PACKED_MEMBER(QElemPtr, qLink); /* 0 */ INTEGER qType; /* 4 */ uint16_t vcbFlags; /* 6 */ uint16_t vcbSigWord; /* 8 */ @@ -361,8 +361,8 @@ typedef struct PACKED { INTEGER vcbDRefNum; /* 74 */ INTEGER vcbFSID; /* 76 */ INTEGER vcbVRefNum; /* 78 */ - Ptr vcbMAdr PACKED_P; - Ptr vcbBufAdr PACKED_P; + PACKED_MEMBER(Ptr, vcbMAdr); + PACKED_MEMBER(Ptr, vcbBufAdr); uint16_t vcbMLen; INTEGER vcbDirIndex; uint16_t vcbDirBlk; @@ -382,16 +382,16 @@ typedef struct PACKED { uint16_t vcbCTAlBlks; INTEGER vcbXTRef; INTEGER vcbCTRef; - Ptr vcbCtlBuf PACKED_P; + PACKED_MEMBER(Ptr, vcbCtlBuf); LONGINT vcbDirIDM; uint16_t vcbOffsM; } VCB; typedef VCB *VCBPtr; -typedef struct { VCBPtr p PACKED_P; } HIDDEN_VCBPtr; +MAKE_HIDDEN(VCBPtr); typedef struct PACKED { - QElemPtr qLink PACKED_P; + PACKED_MEMBER(QElemPtr, qLink); INTEGER qType; INTEGER dQDrive; INTEGER dQRefNum; diff --git a/src/include/Finder.h b/src/include/Finder.h index 5ef427f..b31fa55 100644 --- a/src/include/Finder.h +++ b/src/include/Finder.h @@ -10,17 +10,17 @@ typedef struct PACKED { - QElemPtr qLink PACKED_P; + PACKED_MEMBER(QElemPtr, qLink); INTEGER qType; - Ptr ioCmdAddr PACKED_P; - ProcPtr ioCompletion PACKED_P; + PACKED_MEMBER(Ptr, ioCmdAddr); + PACKED_MEMBER(ProcPtr, ioCompletion); OSErr ioResult; - StringPtr ioNamePtr PACKED_P; + PACKED_MEMBER(StringPtr, ioNamePtr); INTEGER ioVRefNum; INTEGER ioDTRefNum; INTEGER ioIndex; LONGINT ioTagInfo; - Ptr ioDTBuffer PACKED_P; + PACKED_MEMBER(Ptr, ioDTBuffer); LONGINT ioDTReqCount; LONGINT ioDTActCount; SignedByte filler1; diff --git a/src/include/FontMgr.h b/src/include/FontMgr.h index 1ca2a07..43e591d 100644 --- a/src/include/FontMgr.h +++ b/src/include/FontMgr.h @@ -56,7 +56,7 @@ typedef struct PACKED { Fixed descent; Fixed leading; Fixed widMax; - Handle wTabHandle PACKED_P; + PACKED_MEMBER(Handle, wTabHandle); } FMetricRec; typedef struct PACKED { @@ -82,7 +82,7 @@ typedef struct PACKED { typedef struct PACKED { Fixed tabData[256]; - Handle tabFont PACKED_P; + PACKED_MEMBER(Handle, tabFont); LONGINT sExtra; LONGINT style; INTEGER fID; @@ -92,7 +92,7 @@ typedef struct PACKED { Point inNumer; Point inDenom; INTEGER aFID; - Handle fHand PACKED_P; + PACKED_MEMBER(Handle, fHand); BOOLEAN usedFam; Byte aFace; INTEGER vOutput; @@ -116,7 +116,7 @@ typedef struct PACKED { typedef struct PACKED { INTEGER errNum; /* 0x00 */ - Handle fontHandle PACKED_P; /* 0x02 */ + PACKED_MEMBER(Handle, fontHandle); /* 0x02 */ Byte bold; /* 0x06 */ Byte italic; /* 0x07 */ Byte ulOffset; /* 0x08 */ @@ -153,14 +153,14 @@ typedef struct PACKED { } FontRec; typedef FamRec *FamRecPtr; -typedef struct { FamRecPtr p PACKED_P; } HIDDEN_FamRecPtr; +MAKE_HIDDEN(FamRecPtr); typedef HIDDEN_FamRecPtr *FamRecHandle; -typedef struct { FamRecHandle p PACKED_P; } HIDDEN_FamRecHandle; +MAKE_HIDDEN(FamRecHandle); typedef WidthTable *WidthTablePtr; -typedef struct { WidthTablePtr p PACKED_P; } HIDDEN_WidthTablePtr; +MAKE_HIDDEN(WidthTablePtr); typedef HIDDEN_WidthTablePtr *WidthTableHandle; -typedef struct { WidthTableHandle p PACKED_P; } HIDDEN_WidthTableHandle; +MAKE_HIDDEN(WidthTableHandle); #if !defined (JSwapFont_H) extern HIDDEN_ProcPtr JSwapFont_H; diff --git a/src/include/HelpMgr.h b/src/include/HelpMgr.h index 6081d09..96bbd00 100644 --- a/src/include/HelpMgr.h +++ b/src/include/HelpMgr.h @@ -26,8 +26,8 @@ typedef struct PACKED HMMessageRecord Str255 hmmString; INTEGER hmmPict; HMStringResType hmmStringRes; - TEHandle hmmTEHandle PACKED_P; - PicHandle hmmPictHandle PACKED_P; + PACKED_MEMBER(TEHandle, hmmTEHandle); + PACKED_MEMBER(PicHandle, hmmPictHandle); INTEGER hmmTERes; INTEGER hmmSTRRes; } u; diff --git a/src/include/Iconutil.h b/src/include/Iconutil.h index 8f11b06..633112f 100644 --- a/src/include/Iconutil.h +++ b/src/include/Iconutil.h @@ -100,10 +100,10 @@ typedef struct PACKED CIcon PixMap iconPMap; BitMap iconMask; BitMap iconBMap; - Handle iconData PACKED_P; + PACKED_MEMBER(Handle, iconData); int16 iconMaskData[1]; } CIcon, *CIconPtr; -typedef struct { CIconPtr p PACKED_P; } HIDDEN_CIconPtr; +MAKE_HIDDEN(CIconPtr); typedef HIDDEN_CIconPtr *CIconHandle; /* icon utility function prototypes */ diff --git a/src/include/IntlUtil.h b/src/include/IntlUtil.h index 578fe24..1445b6d 100644 --- a/src/include/IntlUtil.h +++ b/src/include/IntlUtil.h @@ -82,7 +82,7 @@ typedef struct PACKED { INTEGER intl0Vers; } Intl0Rec; typedef Intl0Rec *Intl0Ptr; -typedef struct { Intl0Ptr p PACKED_P; } HIDDEN_Intl0Ptr; +MAKE_HIDDEN(Intl0Ptr); typedef HIDDEN_Intl0Ptr *Intl0Hndl; typedef Byte STRING15[16]; @@ -103,7 +103,7 @@ typedef struct PACKED { INTEGER localRtn; } Intl1Rec; typedef Intl1Rec *Intl1Ptr; -typedef struct { Intl1Ptr p PACKED_P; } HIDDEN_Intl1Ptr; +MAKE_HIDDEN(Intl1Ptr); typedef HIDDEN_Intl1Ptr *Intl1Hndl; typedef comp LongDateTime; diff --git a/src/include/ListMgr.h b/src/include/ListMgr.h index 86cc437..147a2b1 100644 --- a/src/include/ListMgr.h +++ b/src/include/ListMgr.h @@ -20,17 +20,17 @@ typedef Byte DataArray; #endif /* defined(__alpha) */ typedef DataArray *DataPtr; -typedef struct { DataPtr p PACKED_P; } HIDDEN_DataPtr; +MAKE_HIDDEN(DataPtr); typedef HIDDEN_DataPtr *DataHandle; typedef struct PACKED { Rect rView; - GrafPtr port PACKED_P; + PACKED_MEMBER(GrafPtr, port); Point indent; Point cellSize; Rect visible; - ControlHandle vScroll PACKED_P; - ControlHandle hScroll PACKED_P; + PACKED_MEMBER(ControlHandle, vScroll); + PACKED_MEMBER(ControlHandle, hScroll); SignedByte selFlags; BOOLEAN lActive; SignedByte lReserved; @@ -38,18 +38,18 @@ typedef struct PACKED { LONGINT clikTime; Point clikLoc; Point mouseLoc; - Ptr lClikLoop PACKED_P; + PACKED_MEMBER(Ptr, lClikLoop); Cell lastClick; LONGINT refCon; - Handle listDefProc PACKED_P; - Handle userHandle PACKED_P; + PACKED_MEMBER(Handle, listDefProc); + PACKED_MEMBER(Handle, userHandle); Rect dataBounds; - DataHandle cells PACKED_P; + PACKED_MEMBER(DataHandle, cells); INTEGER maxIndex; INTEGER cellArray[1]; } ListRec; typedef ListRec *ListPtr; -typedef struct { ListPtr p PACKED_P; } HIDDEN_ListPtr; +MAKE_HIDDEN(ListPtr); typedef HIDDEN_ListPtr *ListHandle; #define lDoVAutoscroll 2 diff --git a/src/include/MacTypes.h b/src/include/MacTypes.h index 4b98971..9acc0be 100644 --- a/src/include/MacTypes.h +++ b/src/include/MacTypes.h @@ -15,9 +15,18 @@ typedef int8 SignedByte; typedef uint8 Byte; typedef int8 *Ptr; -typedef struct { Ptr p PACKED_P; } HIDDEN_Ptr; +#if (SIZEOF_CHAR_P == 4) || 1 /* always do this for now */ +#define MAKE_HIDDEN(typ) typedef struct { typ p; } HIDDEN_ ## typ +#else +#define MAKE_HIDDEN(typ) \ + typedef union PACKED { uint32 pp; typ type[0];} HIDDEN_ ## typ +#endif + +MAKE_HIDDEN(Ptr); + typedef HIDDEN_Ptr *Handle; -typedef struct { Handle p PACKED_P; } HIDDEN_Handle; + +MAKE_HIDDEN(Handle); typedef BOOLEAN Boolean; @@ -28,11 +37,13 @@ typedef Byte Str63[64]; typedef Byte Str255[256]; typedef Byte *StringPtr; -typedef struct { StringPtr p PACKED_P; } HIDDEN_StringPtr; +MAKE_HIDDEN(StringPtr); + typedef HIDDEN_StringPtr *StringHandle; typedef int (*ProcPtr)(); -typedef struct { ProcPtr p PACKED_P; } HIDDEN_ProcPtr; + +MAKE_HIDDEN(ProcPtr); typedef LONGINT Fixed, Fract; @@ -54,15 +65,23 @@ typedef LONGINT INTEGERRET; typedef LONGINT BOOLEANRET; typedef LONGINT SignedByteRET; + +#if (SIZEOF_CHAR_P == 4) || 1 +# define PACKED_MEMBER(typ, name) typ name +#else +# define PACKED_MEMBER(typ, name) \ + union PACKED { uint32 pp; typ *type[0]; } name +#endif + typedef struct PACKED { - INTEGER qFlags; - union __qe *qHead PACKED_P; /* actually QElemPtr */ - union __qe *qTail PACKED_P; /* actually QElemPtr */ + INTEGER qFlags; + PACKED_MEMBER(union __qe *, qHead); /* actually QElemPtr */ + PACKED_MEMBER(union __qe *, qTail); /* actually QElemPtr */ } QHdr; typedef QHdr *QHdrPtr; typedef union __qe *QElemPtr; -typedef struct { QElemPtr p PACKED_P; } HIDDEN_QElemPtr; +MAKE_HIDDEN(QElemPtr); #define noErr 0 diff --git a/src/include/MemoryMgr.h b/src/include/MemoryMgr.h index f1b1cb9..d0b4ca2 100644 --- a/src/include/MemoryMgr.h +++ b/src/include/MemoryMgr.h @@ -25,11 +25,11 @@ enum { memAZErr = -113 }; typedef struct PACKED Zone { - Ptr bkLim PACKED_P; - Ptr purgePtr PACKED_P; - Ptr hFstFree PACKED_P; + PACKED_MEMBER(Ptr, bkLim); + PACKED_MEMBER(Ptr, purgePtr); + PACKED_MEMBER(Ptr, hFstFree); LONGINT zcbFree; - ProcPtr gzProc PACKED_P; + PACKED_MEMBER(ProcPtr, gzProc); INTEGER moreMast; INTEGER flags; INTEGER cntRel; @@ -39,14 +39,14 @@ typedef struct PACKED Zone INTEGER cntEmpty; INTEGER cntHandles; LONGINT minCBFree; - ProcPtr purgeProc PACKED_P; - Ptr sparePtr PACKED_P; - Ptr allocPtr PACKED_P; + PACKED_MEMBER(ProcPtr, purgeProc); + PACKED_MEMBER(Ptr, sparePtr); + PACKED_MEMBER(Ptr, allocPtr); INTEGER heapData; } Zone; typedef Zone *THz; -typedef struct { THz p PACKED_P; } HIDDEN_THz; +MAKE_HIDDEN(THz); #if !defined (MemErr) extern int16 MemErr; diff --git a/src/include/MenuMgr.h b/src/include/MenuMgr.h index f9d0ee8..d52255f 100644 --- a/src/include/MenuMgr.h +++ b/src/include/MenuMgr.h @@ -24,12 +24,12 @@ typedef struct PACKED { INTEGER menuID; INTEGER menuWidth; INTEGER menuHeight; - Handle menuProc PACKED_P; + PACKED_MEMBER(Handle, menuProc); LONGINT enableFlags; Str255 menuData; } MenuInfo; typedef MenuInfo *MenuPtr; -typedef struct { MenuPtr p PACKED_P; } HIDDEN_MenuPtr; +MAKE_HIDDEN(MenuPtr); typedef HIDDEN_MenuPtr *MenuHandle; typedef struct PACKED MCEntry @@ -42,14 +42,14 @@ typedef struct PACKED MCEntry RGBColor mctRGB4; INTEGER mctReserved; } MCEntry, *MCEntryPtr; -typedef struct { MCEntryPtr p PACKED_P; } HIDDEN_MCEntryPtr; +MAKE_HIDDEN(MCEntryPtr); typedef MCEntry MCTable[1]; typedef MCEntry *MCTablePtr; -typedef struct { MCTablePtr p PACKED_P; } HIDDEN_MCTablePtr; +MAKE_HIDDEN(MCTablePtr); typedef HIDDEN_MCTablePtr *MCTableHandle; -typedef struct { MCTableHandle p PACKED_P; } HIDDEN_MCTableHandle; +MAKE_HIDDEN(MCTableHandle); #if !defined (MenuList_H) extern HIDDEN_Handle MenuList_H; diff --git a/src/include/NotifyMgr.h b/src/include/NotifyMgr.h index 6f2d82d..1053a8e 100644 --- a/src/include/NotifyMgr.h +++ b/src/include/NotifyMgr.h @@ -9,16 +9,16 @@ */ typedef struct PACKED { - QElemPtr qLink PACKED_P; + PACKED_MEMBER(QElemPtr, qLink); INTEGER qType; INTEGER nmFlags; LONGINT nmPrivate; INTEGER nmReserved; INTEGER nmMark; - Handle nmIcon PACKED_P; - Handle nmSound PACKED_P; - StringPtr nmStr PACKED_P; - ProcPtr nmResp PACKED_P; /* pascal void myresponse(NMRecPtr foo) */ + PACKED_MEMBER(Handle, nmIcon); + PACKED_MEMBER(Handle, nmSound); + PACKED_MEMBER(StringPtr, nmStr); + PACKED_MEMBER(ProcPtr, nmResp); /* pascal void myresponse(NMRecPtr foo) */ /* value of -1 means remove queue element automatically */ LONGINT nmRefCon; diff --git a/src/include/OSEvent.h b/src/include/OSEvent.h index 6c48b1a..0da5f94 100644 --- a/src/include/OSEvent.h +++ b/src/include/OSEvent.h @@ -16,7 +16,7 @@ #define evtNotEnb 1 typedef struct PACKED { - QElemPtr qLink PACKED_P; + PACKED_MEMBER(QElemPtr, qLink); INTEGER qType; INTEGER evtQWhat; LONGINT evtQMessage; @@ -26,7 +26,7 @@ typedef struct PACKED { } EvQEl; typedef EvQEl *EvQElPtr; -typedef struct { EvQElPtr p PACKED_P; } HIDDEN_EvQElPtr; +MAKE_HIDDEN(EvQElPtr); #define osEvt 15 #define SUSPENDRESUMEBITS 0x01000000 diff --git a/src/include/PrintMgr.h b/src/include/PrintMgr.h index e18d7b7..f5f087b 100644 --- a/src/include/PrintMgr.h +++ b/src/include/PrintMgr.h @@ -84,8 +84,8 @@ typedef struct PACKED { INTEGER iCopies; SignedByte bJDocLoop; BOOLEAN fFromUsr; - ProcPtr pIdleProc PACKED_P; - StringPtr pFileName PACKED_P; + PACKED_MEMBER(ProcPtr, pIdleProc); + PACKED_MEMBER(StringPtr, pFileName); INTEGER iFileVol; SignedByte bFileVers; SignedByte bJobX; @@ -102,7 +102,7 @@ typedef struct PACKED { INTEGER printX[19]; } TPrint; typedef TPrint *TPPrint; -typedef struct { TPPrint p PACKED_P; } HIDDEN_TPPrint; +MAKE_HIDDEN(TPPrint); typedef HIDDEN_TPPrint *THPrint; typedef Rect *TPRect; @@ -116,17 +116,17 @@ typedef struct PACKED { INTEGER iCurBand; BOOLEAN fPgDirty; BOOLEAN fImaging; - THPrint hPrint PACKED_P; - TPPrPort pPRPort PACKED_P; - PicHandle hPic PACKED_P; + PACKED_MEMBER(THPrint, hPrint); + PACKED_MEMBER(TPPrPort, pPRPort); + PACKED_MEMBER(PicHandle, hPic); } TPrStatus; typedef struct PACKED { /* From Technote 095 */ DialogRecord dlg; - ProcPtr pFltrProc PACKED_P; - ProcPtr pItemProc PACKED_P; - THPrint hPrintUsr PACKED_P; + PACKED_MEMBER(ProcPtr, pFltrProc); + PACKED_MEMBER(ProcPtr, pItemProc); + PACKED_MEMBER(THPrint, hPrintUsr); BOOLEAN fDoIt; BOOLEAN fDone; LONGINT lUser1; diff --git a/src/include/ProcessMgr.h b/src/include/ProcessMgr.h index ce8cced..2289c30 100644 --- a/src/include/ProcessMgr.h +++ b/src/include/ProcessMgr.h @@ -70,18 +70,18 @@ enum { launchContinue = 0x4000 }; typedef struct PACKED ProcessInfoRec { uint32 processInfoLength; - StringPtr processName PACKED_P; + PACKED_MEMBER(StringPtr, processName); ProcessSerialNumber processNumber; uint32 processType; OSType processSignature; uint32 processMode; - Ptr processLocation PACKED_P; + PACKED_MEMBER(Ptr, processLocation); uint32 processSize; uint32 processFreeMem; ProcessSerialNumber processLauncher; uint32 processLaunchDate; uint32 processActiveTime; - FSSpecPtr processAppSpec PACKED_P; + PACKED_MEMBER(FSSpecPtr, processAppSpec); } ProcessInfoRec; typedef ProcessInfoRec *ProcessInfoPtr; diff --git a/src/include/QuickDraw.h b/src/include/QuickDraw.h index cf506f9..c9efc38 100644 --- a/src/include/QuickDraw.h +++ b/src/include/QuickDraw.h @@ -74,12 +74,12 @@ typedef struct PACKED { } Region; typedef Region *RgnPtr; -typedef struct { RgnPtr p PACKED_P; } HIDDEN_RgnPtr; +MAKE_HIDDEN(RgnPtr); typedef HIDDEN_RgnPtr *RgnHandle; -typedef struct { RgnHandle p PACKED_P; } HIDDEN_RgnHandle; +MAKE_HIDDEN(RgnHandle); typedef struct PACKED { - Ptr baseAddr PACKED_P; + PACKED_MEMBER(Ptr, baseAddr); INTEGER rowBytes; Rect bounds; } BitMap; @@ -94,7 +94,7 @@ typedef struct PACKED { } Cursor; typedef Cursor *CursPtr; -typedef struct { CursPtr p PACKED_P; } HIDDEN_CursPtr; +MAKE_HIDDEN(CursPtr); typedef HIDDEN_CursPtr *CursHandle; typedef SignedByte GrafVerb; @@ -111,7 +111,7 @@ typedef struct PACKED { } Polygon; typedef Polygon *PolyPtr; -typedef struct { PolyPtr p PACKED_P; } HIDDEN_PolyPtr; +MAKE_HIDDEN(PolyPtr); typedef HIDDEN_PolyPtr *PolyHandle; typedef struct PACKED { @@ -121,24 +121,38 @@ typedef struct PACKED { INTEGER leading; } FontInfo; +typedef pascal trap void (*textProc_t)(INTEGER bc, Ptr textb, Point num, Point den); +typedef pascal trap void (*lineProc_t)(Point drawto); +typedef pascal trap void (*rectProc_t)(GrafVerb verb, Rect *rp); +typedef pascal trap void (*rRectProc_t)(GrafVerb verb, Rect *rp, INTEGER ow, + INTEGER oh); +typedef pascal trap void (*ovalProc_t)(GrafVerb verb, Rect *rp); +typedef pascal trap void (*arcProc_t)(GrafVerb verb, Rect *rp, INTEGER ang, + INTEGER arc); +typedef pascal trap void (*polyProc_t)(GrafVerb verb, PolyHandle poly); +typedef pascal trap void (*rgnProc_t)(GrafVerb verb, RgnHandle rgn); +typedef pascal trap void (*bitsProc_t)(BitMap *srcb, Rect *srcr, Rect *dstr, + INTEGER mod, RgnHandle mask); +typedef pascal trap void (*commentProc_t)(INTEGER kind, INTEGER size, Handle data); +typedef pascal trap INTEGER (*txMeasProc_t)(INTEGER bc, Ptr texta, Point *numer, + Point *denom, FontInfo *info); +typedef pascal trap void (*getPicProc_t)(Ptr data, INTEGER bc); +typedef pascal trap void (*putPicProc_t)(Ptr data, INTEGER bc); + typedef struct PACKED { - pascal trap void (*textProc)(INTEGER bc, Ptr textb, Point num, Point den) PACKED_P; - pascal trap void (*lineProc)(Point drawto) PACKED_P; - pascal trap void (*rectProc)(GrafVerb verb, Rect *rp) PACKED_P; - pascal trap void (*rRectProc)(GrafVerb verb, Rect *rp, INTEGER ow, - INTEGER oh) PACKED_P; - pascal trap void (*ovalProc)(GrafVerb verb, Rect *rp) PACKED_P; - pascal trap void (*arcProc)(GrafVerb verb, Rect *rp, INTEGER ang, - INTEGER arc) PACKED_P; - pascal trap void (*polyProc)(GrafVerb verb, PolyHandle poly) PACKED_P; - pascal trap void (*rgnProc)(GrafVerb verb, RgnHandle rgn) PACKED_P; - pascal trap void (*bitsProc)(BitMap *srcb, Rect *srcr, Rect *dstr, - INTEGER mod, RgnHandle mask) PACKED_P; - pascal trap void (*commentProc)(INTEGER kind, INTEGER size, Handle data) PACKED_P; - pascal trap INTEGER (*txMeasProc)(INTEGER bc, Ptr texta, Point *numer, - Point *denom, FontInfo *info) PACKED_P; - pascal trap void (*getPicProc)(Ptr data, INTEGER bc) PACKED_P; - pascal trap void (*putPicProc)(Ptr data, INTEGER bc) PACKED_P; + PACKED_MEMBER(textProc_t, textProc); + PACKED_MEMBER(lineProc_t, lineProc); + PACKED_MEMBER(rectProc_t, rectProc); + PACKED_MEMBER(rRectProc_t, rRectProc); + PACKED_MEMBER(ovalProc_t, ovalProc); + PACKED_MEMBER(arcProc_t, arcProc); + PACKED_MEMBER(polyProc_t, polyProc); + PACKED_MEMBER(rgnProc_t, rgnProc); + PACKED_MEMBER(bitsProc_t, bitsProc); + PACKED_MEMBER(commentProc_t, commentProc); + PACKED_MEMBER(txMeasProc_t, txMeasProc); + PACKED_MEMBER(getPicProc_t, getPicProc); + PACKED_MEMBER(putPicProc_t, putPicProc); } QDProcs; typedef QDProcs *QDProcsPtr; @@ -147,8 +161,8 @@ typedef struct PACKED { INTEGER device; BitMap portBits; Rect portRect; - RgnHandle visRgn PACKED_P; - RgnHandle clipRgn PACKED_P; + PACKED_MEMBER(RgnHandle, visRgn); + PACKED_MEMBER(RgnHandle,clipRgn); Pattern bkPat; Pattern fillPat; Point pnLoc; @@ -166,14 +180,14 @@ typedef struct PACKED { LONGINT bkColor; INTEGER colrBit; INTEGER patStretch; - Handle picSave PACKED_P; - Handle rgnSave PACKED_P; - Handle polySave PACKED_P; - QDProcsPtr grafProcs PACKED_P; + PACKED_MEMBER(Handle, picSave); + PACKED_MEMBER(Handle, rgnSave); + PACKED_MEMBER(Handle, polySave); + PACKED_MEMBER(QDProcsPtr, grafProcs); } GrafPort; typedef GrafPort *GrafPtr; -typedef struct { GrafPtr p PACKED_P; } HIDDEN_GrafPtr; +MAKE_HIDDEN(GrafPtr); typedef struct PACKED { INTEGER picSize; @@ -181,7 +195,7 @@ typedef struct PACKED { } Picture; typedef Picture *PicPtr; -typedef struct { PicPtr p PACKED_P; } HIDDEN_PicPtr; +MAKE_HIDDEN(PicPtr); typedef HIDDEN_PicPtr *PicHandle; typedef struct PACKED { @@ -241,35 +255,35 @@ typedef struct PACKED { cSpecArray ctTable; } ColorTable, *CTabPtr; -typedef struct { CTabPtr p PACKED_P; } HIDDEN_CTabPtr; +MAKE_HIDDEN(CTabPtr); typedef HIDDEN_CTabPtr *CTabHandle; -typedef struct { CTabHandle p PACKED_P; } HIDDEN_CTabHandle; +MAKE_HIDDEN(CTabHandle); typedef struct PACKED { - Ptr textProc PACKED_P; - Ptr lineProc PACKED_P; - Ptr rectProc PACKED_P; - Ptr rRectProc PACKED_P; - Ptr ovalProc PACKED_P; - Ptr arcProc PACKED_P; - Ptr polyProc PACKED_P; - Ptr rgnProc PACKED_P; - Ptr bitsProc PACKED_P; - Ptr commentProc PACKED_P; - Ptr txMeasProc PACKED_P; - Ptr getPicProc PACKED_P; - Ptr putPicProc PACKED_P; - Ptr opcodeProc PACKED_P; - Ptr newProc1Proc PACKED_P; - Ptr newProc2Proc PACKED_P; - Ptr newProc3Proc PACKED_P; - Ptr newProc4Proc PACKED_P; - Ptr newProc5Proc PACKED_P; - Ptr newProc6Proc PACKED_P; + PACKED_MEMBER(Ptr, textProc); + PACKED_MEMBER(Ptr, lineProc); + PACKED_MEMBER(Ptr, rectProc); + PACKED_MEMBER(Ptr, rRectProc); + PACKED_MEMBER(Ptr, ovalProc); + PACKED_MEMBER(Ptr, arcProc); + PACKED_MEMBER(Ptr, polyProc); + PACKED_MEMBER(Ptr, rgnProc); + PACKED_MEMBER(Ptr, bitsProc); + PACKED_MEMBER(Ptr, commentProc); + PACKED_MEMBER(Ptr, txMeasProc); + PACKED_MEMBER(Ptr, getPicProc); + PACKED_MEMBER(Ptr, putPicProc); + PACKED_MEMBER(Ptr, opcodeProc); + PACKED_MEMBER(Ptr, newProc1Proc); + PACKED_MEMBER(Ptr, newProc2Proc); + PACKED_MEMBER(Ptr, newProc3Proc); + PACKED_MEMBER(Ptr, newProc4Proc); + PACKED_MEMBER(Ptr, newProc5Proc); + PACKED_MEMBER(Ptr, newProc6Proc); } CQDProcs, *CQDProcsPtr; typedef struct PACKED { - Ptr baseAddr PACKED_P; + PACKED_MEMBER(Ptr, baseAddr); INTEGER rowBytes; Rect bounds; INTEGER pmVersion; @@ -282,12 +296,12 @@ typedef struct PACKED { INTEGER cmpCount; INTEGER cmpSize; LONGINT planeBytes; - CTabHandle pmTable PACKED_P; + PACKED_MEMBER(CTabHandle, pmTable); LONGINT pmReserved; } PixMap, *PixMapPtr; -typedef struct { PixMapPtr p PACKED_P; } HIDDEN_PixMapPtr; +MAKE_HIDDEN(PixMapPtr); typedef HIDDEN_PixMapPtr *PixMapHandle; -typedef struct { PixMapHandle p PACKED_P; } HIDDEN_PixMapHandle; +MAKE_HIDDEN(PixMapHandle); enum pixmap_pixel_types { @@ -300,35 +314,35 @@ enum pixmap_pixel_types typedef struct PACKED { INTEGER patType; - PixMapHandle patMap PACKED_P; - Handle patData PACKED_P; - Handle patXData PACKED_P; + PACKED_MEMBER(PixMapHandle, patMap); + PACKED_MEMBER(Handle, patData); + PACKED_MEMBER(Handle, patXData); INTEGER patXValid; - Handle patXMap PACKED_P; + PACKED_MEMBER(Handle, patXMap); Pattern pat1Data; } PixPat, *PixPatPtr; -typedef struct { PixPatPtr p PACKED_P; } HIDDEN_PixPatPtr; +MAKE_HIDDEN(PixPatPtr); typedef HIDDEN_PixPatPtr *PixPatHandle; -typedef struct { PixPatHandle p PACKED_P; } HIDDEN_PixPatHandle; +MAKE_HIDDEN(PixPatHandle); typedef struct PACKED { INTEGER device; - PixMapHandle portPixMap PACKED_P; + PACKED_MEMBER(PixMapHandle, portPixMap); INTEGER portVersion; - Handle grafVars PACKED_P; + PACKED_MEMBER(Handle, grafVars); INTEGER chExtra; INTEGER pnLocHFrac; Rect portRect; - RgnHandle visRgn PACKED_P; - RgnHandle clipRgn PACKED_P; - PixPatHandle bkPixPat PACKED_P; + PACKED_MEMBER(RgnHandle, visRgn); + PACKED_MEMBER(RgnHandle, clipRgn); + PACKED_MEMBER(PixPatHandle, bkPixPat); RGBColor rgbFgColor; RGBColor rgbBkColor; Point pnLoc; Point pnSize; INTEGER pnMode; - PixPatHandle pnPixPat PACKED_P; - PixPatHandle fillPixPat PACKED_P; + PACKED_MEMBER(PixPatHandle, pnPixPat); + PACKED_MEMBER(PixPatHandle, fillPixPat); INTEGER pnVis; INTEGER txFont; Style txFace; @@ -340,28 +354,28 @@ typedef struct PACKED { LONGINT bkColor; INTEGER colrBit; INTEGER patStretch; - Handle picSave PACKED_P; - Handle rgnSave PACKED_P; - Handle polySave PACKED_P; - CQDProcsPtr grafProcs PACKED_P; + PACKED_MEMBER(Handle, picSave); + PACKED_MEMBER(Handle, rgnSave); + PACKED_MEMBER(Handle, polySave); + PACKED_MEMBER(CQDProcsPtr, grafProcs); } CGrafPort, *CGrafPtr; -typedef struct { CGrafPtr p PACKED_P; } HIDDEN_CGrafPtr; +MAKE_HIDDEN(CGrafPtr); typedef struct PACKED { INTEGER crsrType; - PixMapHandle crsrMap PACKED_P; - Handle crsrData PACKED_P; - Handle crsrXData PACKED_P; + PACKED_MEMBER(PixMapHandle, crsrMap); + PACKED_MEMBER(Handle, crsrData); + PACKED_MEMBER(Handle, crsrXData); INTEGER crsrXValid; - Handle crsrXHandle PACKED_P; + PACKED_MEMBER(Handle, crsrXHandle); Bits16 crsr1Data; Bits16 crsrMask; Point crsrHotSpot; LONGINT crsrXTable; LONGINT crsrID; } CCrsr, *CCrsrPtr; -typedef struct { CCrsrPtr p PACKED_P; } HIDDEN_CCrsrPtr; +MAKE_HIDDEN(CCrsrPtr); typedef HIDDEN_CCrsrPtr *CCrsrHandle; typedef struct PACKED { @@ -371,11 +385,14 @@ typedef struct PACKED { int32 matchData; } MatchRec; -typedef struct { HIDDEN_GrafPtr *p PACKED_P; } HIDDEN_GrafPtr_Ptr; -typedef struct { Byte *p PACKED_P; } HIDDEN_BytePtr; +typedef HIDDEN_GrafPtr *HIDDEN_GrafPtr_Ptr; +MAKE_HIDDEN(HIDDEN_GrafPtr_Ptr); -#define thePort (STARH(STARH((HIDDEN_GrafPtr_Ptr *) (long) SYN68K_TO_US(a5)))) -#define thePortX ((*STARH((HIDDEN_GrafPtr_Ptr *) (long) SYN68K_TO_US(a5))).p) +typedef Byte *BytePtr; +MAKE_HIDDEN(BytePtr); + +#define thePort (STARH(STARH((HIDDEN_HIDDEN_GrafPtr_Ptr *) (long) SYN68K_TO_US(a5)))) +#define thePortX ((*STARH((HIDDEN_HIDDEN_GrafPtr_Ptr *) (long) SYN68K_TO_US(a5))).p) #define white (STARH((HIDDEN_BytePtr *)(long) SYN68K_TO_US(a5)) -8) #define black (STARH((HIDDEN_BytePtr *)(long) SYN68K_TO_US(a5)) -16) #define gray (STARH((HIDDEN_BytePtr *)(long) SYN68K_TO_US(a5)) -24) diff --git a/src/include/ScrapMgr.h b/src/include/ScrapMgr.h index 273e8ff..284af1e 100644 --- a/src/include/ScrapMgr.h +++ b/src/include/ScrapMgr.h @@ -15,10 +15,10 @@ typedef struct PACKED { LONGINT scrapSize; - Handle scrapHandle PACKED_P; + PACKED_MEMBER(Handle, scrapHandle); INTEGER scrapCount; INTEGER scrapState; - StringPtr scrapName PACKED_P; + PACKED_MEMBER(StringPtr, scrapName); } ScrapStuff; typedef ScrapStuff *PScrapStuff; diff --git a/src/include/SoundDvr.h b/src/include/SoundDvr.h index 9627d19..e999704 100644 --- a/src/include/SoundDvr.h +++ b/src/include/SoundDvr.h @@ -53,17 +53,17 @@ typedef struct PACKED { LONGINT sound3Phase; Fixed sound4Rate; LONGINT sound4Phase; - WavePtr sound1Wave PACKED_P; - WavePtr sound2Wave PACKED_P; - WavePtr sound3Wave PACKED_P; - WavePtr sound4Wave PACKED_P; + PACKED_MEMBER(WavePtr, sound1Wave); + PACKED_MEMBER(WavePtr, sound2Wave); + PACKED_MEMBER(WavePtr, sound3Wave); + PACKED_MEMBER(WavePtr, sound4Wave); } FTSoundRec; typedef FTSoundRec *FTSndRecPtr; -typedef struct { FTSndRecPtr p PACKED_P; } HIDDEN_FTSndRecPtr; +MAKE_HIDDEN(FTSndRecPtr); typedef struct PACKED { INTEGER mode; - FTSndRecPtr sndRec PACKED_P; + PACKED_MEMBER(FTSndRecPtr, sndRec); } FTSynthRec; typedef FTSynthRec *FTsynthPtr; diff --git a/src/include/SoundMgr.h b/src/include/SoundMgr.h index 6b2158c..af10d1e 100644 --- a/src/include/SoundMgr.h +++ b/src/include/SoundMgr.h @@ -25,10 +25,11 @@ enum extSH = 0xFF, /* extended sound header */ }; +typedef struct PACKED _SndChannel *SndChannelPtr; typedef struct PACKED _SndChannel { - struct _SndChannel *nextChan PACKED_P; - Ptr firstMod PACKED_P; - ProcPtr callBack PACKED_P; + PACKED_MEMBER(SndChannelPtr, nextChan); + PACKED_MEMBER(Ptr, firstMod); + PACKED_MEMBER(ProcPtr, callBack); LONGINT userInfo; LONGINT wait; SndCommand cmdInProg; @@ -37,12 +38,12 @@ typedef struct PACKED _SndChannel { INTEGER qHead; INTEGER qTail; SndCommand queue[stdQLength]; -} SndChannel, *SndChannelPtr; +} SndChannel; #define SND_CHAN_FLAGS_X(c) (c->flags) #define SND_CHAN_FLAGS(c) (CW (SND_CHAN_FLAGS_X (c))) -typedef struct { SndChannelPtr p PACKED_P; } HIDDEN_SndChannelPtr; +MAKE_HIDDEN(SndChannelPtr); enum { nullCmd, @@ -85,7 +86,7 @@ typedef struct PACKED { } soundbuffer_t; typedef struct PACKED _SoundHeader { - Ptr samplePtr PACKED_P; + PACKED_MEMBER(Ptr, samplePtr); LONGINT length; Fixed sampleRate; LONGINT loopStart; @@ -96,7 +97,7 @@ typedef struct PACKED _SoundHeader { } SoundHeader, *SoundHeaderPtr; typedef struct PACKED _ExtSoundHeader { - Ptr samplePtr PACKED_P; + PACKED_MEMBER(Ptr, samplePtr); LONGINT numChannels; Fixed sampleRate; LONGINT loopStart; diff --git a/src/include/TextEdit.h b/src/include/TextEdit.h index 171d69d..09f8c13 100644 --- a/src/include/TextEdit.h +++ b/src/include/TextEdit.h @@ -60,15 +60,15 @@ typedef struct PACKED { INTEGER selStart; INTEGER selEnd; INTEGER active; - ProcPtr wordBreak PACKED_P; - ProcPtr clikLoop PACKED_P; + PACKED_MEMBER(ProcPtr, wordBreak); + PACKED_MEMBER(ProcPtr, clikLoop); LONGINT clickTime; INTEGER clickLoc; LONGINT caretTime; INTEGER caretState; INTEGER just; INTEGER teLength; - Handle hText PACKED_P; + PACKED_MEMBER(Handle, hText); INTEGER recalBack; INTEGER recalLines; INTEGER clikStuff; @@ -78,15 +78,15 @@ typedef struct PACKED { Byte filler; INTEGER txMode; INTEGER txSize; - GrafPtr inPort PACKED_P; - ProcPtr highHook PACKED_P; - ProcPtr caretHook PACKED_P; + PACKED_MEMBER(GrafPtr, inPort); + PACKED_MEMBER(ProcPtr, highHook); + PACKED_MEMBER(ProcPtr, caretHook); INTEGER nLines; INTEGER lineStarts[1]; } TERec; typedef TERec *TEPtr; -typedef struct { TEPtr p PACKED_P; } HIDDEN_TEPtr; +MAKE_HIDDEN(TEPtr); typedef HIDDEN_TEPtr *TEHandle; typedef struct PACKED { @@ -107,7 +107,7 @@ typedef struct PACKED { typedef STElement TEStyleTable[1]; typedef STElement *STPtr; -typedef struct { STPtr p PACKED_P; } HIDDEN_STPtr; +MAKE_HIDDEN(STPtr); typedef HIDDEN_STPtr *STHandle; typedef struct PACKED { @@ -117,7 +117,7 @@ typedef struct PACKED { typedef LHElement LHTable[1]; typedef LHElement *LHPtr; -typedef struct { LHPtr p PACKED_P; } HIDDEN_LHPtr; +MAKE_HIDDEN(LHPtr); typedef HIDDEN_LHPtr *LHHandle; typedef struct PACKED { @@ -147,30 +147,30 @@ typedef struct PACKED { } StScrpRec; typedef StScrpRec *StScrpPtr; -typedef struct { StScrpPtr p PACKED_P; } HIDDEN_StScrpPtr; +MAKE_HIDDEN(StScrpPtr); typedef HIDDEN_StScrpPtr *StScrpHandle; typedef struct PACKED { LONGINT TEReserved; - StScrpHandle nullScrap PACKED_P; + PACKED_MEMBER(StScrpHandle, nullScrap); } NullSTRec; typedef NullSTRec *NullSTPtr; -typedef struct { NullSTPtr p PACKED_P; } HIDDEN_NullSTPtr; +MAKE_HIDDEN(NullSTPtr); typedef HIDDEN_NullSTPtr *NullSTHandle; typedef struct PACKED { INTEGER nRuns; INTEGER nStyles; - STHandle styleTab PACKED_P; - LHHandle lhTab PACKED_P; + PACKED_MEMBER(STHandle, styleTab); + PACKED_MEMBER(LHHandle, lhTab); LONGINT teRefCon; - NullSTHandle nullStyle PACKED_P; + PACKED_MEMBER(NullSTHandle, nullStyle); StyleRun runs[1]; } TEStyleRec; typedef TEStyleRec *TEStylePtr; -typedef struct { TEStylePtr p PACKED_P; } HIDDEN_TEStylePtr; +MAKE_HIDDEN(TEStylePtr); typedef HIDDEN_TEStylePtr *TEStyleHandle; typedef Byte Chars[1], *CharsPtr, **CharsHandle; diff --git a/src/include/TimeMgr.h b/src/include/TimeMgr.h index 52dd0da..7f4cf56 100644 --- a/src/include/TimeMgr.h +++ b/src/include/TimeMgr.h @@ -10,9 +10,9 @@ typedef struct PACKED { - QElemPtr qLink PACKED_P; + PACKED_MEMBER(QElemPtr, qLink); INTEGER qType; - ProcPtr tmAddr PACKED_P; + PACKED_MEMBER(ProcPtr, tmAddr); LONGINT tmCount; /* I don't trust IMIV-301 */ } TMTask; diff --git a/src/include/ToolboxUtil.h b/src/include/ToolboxUtil.h index 9d7d9a5..7c25c74 100644 --- a/src/include/ToolboxUtil.h +++ b/src/include/ToolboxUtil.h @@ -30,7 +30,7 @@ typedef char *PatPtr; #warning "Bad PatPtr def ... 'cause of problems with my gcc mods -- ctm" #endif /* defined(__alpha) */ -typedef struct { PatPtr p PACKED_P; } HIDDEN_PatPtr; +MAKE_HIDDEN(PatPtr); typedef HIDDEN_PatPtr *PatHandle; /* DO NOT DELETE THIS LINE */ diff --git a/src/include/VDriver.h b/src/include/VDriver.h index bda3868..1e80d4f 100644 --- a/src/include/VDriver.h +++ b/src/include/VDriver.h @@ -15,7 +15,7 @@ typedef struct PACKED COMMONFSQUEUEDEFS; INTEGER ioRefNum; INTEGER csCode; - Ptr csParam PACKED_P; + PACKED_MEMBER(Ptr, csParam); } VDParamBlock; typedef VDParamBlock *VDParamBlockPtr; @@ -23,7 +23,7 @@ typedef VDParamBlock *VDParamBlockPtr; typedef struct PACKED { - Ptr csTable PACKED_P; + PACKED_MEMBER(Ptr, csTable); INTEGER csStart; INTEGER csCount; } VDEntryRecord; @@ -33,7 +33,7 @@ typedef VDEntryRecord *VDEntRecPtr; typedef struct PACKED { - Ptr csGTable PACKED_P; + PACKED_MEMBER(Ptr, csGTable); } VDGammaRecord; typedef VDGammaRecord *VDGamRecPtr; @@ -44,7 +44,7 @@ typedef struct PACKED INTEGER csMode; LONGINT csData; INTEGER csPage; - Ptr csBaseAddr PACKED_P; + PACKED_MEMBER(Ptr, csBaseAddr); } VDPgInfo; typedef VDPgInfo *VDPgInfoPtr; diff --git a/src/include/VRetraceMgr.h b/src/include/VRetraceMgr.h index 3bc36a2..9f0f567 100644 --- a/src/include/VRetraceMgr.h +++ b/src/include/VRetraceMgr.h @@ -12,9 +12,9 @@ #define vTypErr (-2) typedef struct PACKED { - QElemPtr qLink PACKED_P; + PACKED_MEMBER(QElemPtr, qLink); INTEGER qType; - ProcPtr vblAddr PACKED_P; + PACKED_MEMBER(ProcPtr, vblAddr); INTEGER vblCount; INTEGER vblPhase; } VBLTask; diff --git a/src/include/WindowMgr.h b/src/include/WindowMgr.h index 8323992..1d5a755 100644 --- a/src/include/WindowMgr.h +++ b/src/include/WindowMgr.h @@ -74,7 +74,7 @@ typedef CGrafPtr CWindowPtr; typedef struct __wr WindowRecord; typedef WindowRecord *WindowPeek; -typedef struct { WindowPeek p PACKED_P; } HIDDEN_WindowPeek; +MAKE_HIDDEN(WindowPeek); #include "ControlMgr.h" @@ -85,16 +85,16 @@ struct PACKED __wr { BOOLEAN hilited; BOOLEAN goAwayFlag; BOOLEAN spareFlag; - RgnHandle strucRgn PACKED_P; - RgnHandle contRgn PACKED_P; - RgnHandle updateRgn PACKED_P; - Handle windowDefProc PACKED_P; - Handle dataHandle PACKED_P; - StringHandle titleHandle PACKED_P; + PACKED_MEMBER(RgnHandle, strucRgn); + PACKED_MEMBER(RgnHandle, contRgn); + PACKED_MEMBER(RgnHandle, updateRgn); + PACKED_MEMBER(Handle, windowDefProc); + PACKED_MEMBER(Handle, dataHandle); + PACKED_MEMBER(StringHandle, titleHandle); INTEGER titleWidth; - ControlHandle controlList PACKED_P; /* is really a ControlHandle */ - WindowPeek nextWindow PACKED_P; /* is really a WindowPeek */ - PicHandle windowPic PACKED_P; + PACKED_MEMBER(ControlHandle, controlList); + PACKED_MEMBER(WindowPeek, nextWindow); + PACKED_MEMBER(PicHandle, windowPic); LONGINT refCon; }; @@ -110,17 +110,17 @@ typedef struct PACKED { #define wInZoomOut 6 typedef struct AuxWinRec *AuxWinPtr; -typedef struct { AuxWinPtr p PACKED_P; } HIDDEN_AuxWinPtr; +MAKE_HIDDEN(AuxWinPtr); typedef HIDDEN_AuxWinPtr *AuxWinHandle; -typedef struct { AuxWinHandle p PACKED_P; } HIDDEN_AuxWinHandle; +MAKE_HIDDEN(AuxWinHandle); typedef struct PACKED AuxWinRec { - AuxWinHandle awNext PACKED_P; - WindowPtr awOwner PACKED_P; - CTabHandle awCTable PACKED_P; - Handle dialogCItem PACKED_P; + PACKED_MEMBER(AuxWinHandle, awNext); + PACKED_MEMBER(WindowPtr, awOwner); + PACKED_MEMBER(CTabHandle, awCTable); + PACKED_MEMBER(Handle, dialogCItem); LONGINT awFlags; - CTabHandle awReserved PACKED_P; + PACKED_MEMBER(CTabHandle, awReserved); LONGINT awRefCon; } AuxWinRec; diff --git a/src/include/rsys/alias.h b/src/include/rsys/alias.h index 5db2d96..17b4a8e 100644 --- a/src/include/rsys/alias.h +++ b/src/include/rsys/alias.h @@ -56,13 +56,19 @@ typedef struct PACKED /* 0x0009 */ } alias_tail_t; +typedef alias_head_t *alias_head_ptr; +typedef alias_parent_t *alias_parent_ptr; +typedef alias_unknown_000100_t *alias_unknown_000100_ptr; +typedef alias_fullpath_t *alias_fullpath_ptr; +typedef alias_tail_t *alias_tail_ptr; + typedef struct PACKED { - alias_head_t *headp PACKED_P; - alias_parent_t *parentp PACKED_P; - alias_unknown_000100_t *unknownp PACKED_P; - alias_fullpath_t *fullpathp PACKED_P; - alias_tail_t *tailp PACKED_P; + PACKED_MEMBER(alias_head_ptr, headp); + PACKED_MEMBER(alias_parent_ptr, parentp); + PACKED_MEMBER(alias_unknown_000100_ptr, unknownp); + PACKED_MEMBER(alias_fullpath_ptr, fullpathp); + PACKED_MEMBER(alias_tail_ptr, tailp); } alias_parsed_t; diff --git a/src/include/rsys/apple_events.h b/src/include/rsys/apple_events.h index 67668a3..9c05cb1 100644 --- a/src/include/rsys/apple_events.h +++ b/src/include/rsys/apple_events.h @@ -42,8 +42,9 @@ typedef struct PACKED list_header char data[0]; } list_header_t; -typedef struct { list_header_t *p PACKED_P; } hidden_list_header_ptr; -typedef hidden_list_header_ptr *list_header_h; +typedef list_header_t *list_header_ptr; +MAKE_HIDDEN(list_header_ptr); +typedef HIDDEN_list_header_ptr *list_header_h; #define PARAM_OFFSET_X(aggr_desc_h) \ (HxX ((list_header_h) aggr_desc_h, param_offset)) diff --git a/src/include/rsys/byteswap.h b/src/include/rsys/byteswap.h index 77b8934..c4fa255 100644 --- a/src/include/rsys/byteswap.h +++ b/src/include/rsys/byteswap.h @@ -38,8 +38,29 @@ #define MR(n) ((typeof (n))(n ? ((swap32 ((unsigned long) (n))) + ROMlib_offset) : 0)) #define RM(n) ((typeof (n))(n ? ((swap32 ((unsigned long) (n)- ROMlib_offset)) ) : 0)) #else -#define MR(n) ((typeof (n))({ typeof (n) _t = n; _t ? ((swap32 ((unsigned long) (_t))) + ROMlib_offset) : 0;})) + +#if (SIZEOF_CHAR_P == 4) || 1 /* always do this for now */ + +# define MR(n) ((typeof (n))({ typeof (n) _t = n; _t ? ((swap32 ((unsigned long) (_t))) + ROMlib_offset) : 0;})) + +#else + +/* YY needs a better name, right now it's just a helper for MR */ +# define YY(n) (swap32((uint32)(n)) + ROMlib_offset) + +# define MR(n) ((typeof (n))({ typeof (n) _t = n; _t ? (YY(_t)) : 0;})) +#endif + + #define RM(n) ((typeof (n))({ typeof (n) _t = n; _t ? ((swap32 ((unsigned long) (_t)- ROMlib_offset)) ) : 0;})) + +/* Packed Pointer to ROMlib */ +#if (SIZEOF_CHAR_P == 4) || 1 /* always do this for now */ +# define PPR(n) MR(n) +#else +# define PPR(n) ((typeof (n.type[0]))({ typeof (n) _t = n; _t.pp ? (YY(_t.pp)) : 0;})) +#endif + #endif #define CWC(n) ((typeof (n)) (signed short) ((((n) << 8) & 0xFF00) \ @@ -81,10 +102,17 @@ extern int bad_cx_splosion; #define CBC(rhs) (rhs) #define CBV(rhs) (rhs) -#define STARH(h) MR ((h)->p) +#if (SIZEOF_CHAR_P == 4) || 1 /* always do this for now */ +# define STARH(h) MR ((h)->p) +# define HxP(handle, field) MR (STARH(handle)->field) +# define HxX(handle, field) (STARH(handle)->field) +#else +# define STARH(h) ((typeof ((h)->type[0])) (YY ((h)->pp))) +# define HxP(handle, field) MR ((STARH(handle)->field).p) +# define HxX(handle, field) ((STARH(handle))->field) +#endif + #define Hx(handle, field) Cx (STARH(handle)->field) -#define HxP(handle, field) MR (STARH(handle)->field) -#define HxX(handle, field) (STARH(handle)->field) #if defined (BIGENDIAN) diff --git a/src/include/rsys/common.h b/src/include/rsys/common.h index f9c4c35..e28513d 100644 --- a/src/include/rsys/common.h +++ b/src/include/rsys/common.h @@ -1,6 +1,10 @@ #if !defined (_COMMON_H_) #define _COMMON_H_ +#if !defined(COMPILE_FOR_BUILD) +# include "config.h" +#endif + #if defined (_WIN32) && !defined(WIN32) #define WIN32 /* evil hackage needed to make SDL happy */ #endif diff --git a/src/include/rsys/cquick.h b/src/include/rsys/cquick.h index f0c5358..67d0d05 100644 --- a/src/include/rsys/cquick.h +++ b/src/include/rsys/cquick.h @@ -15,13 +15,15 @@ typedef struct PACKED GrafVars { RGBColor rgbOpColor; RGBColor rgbHiliteColor; - Handle pmFgColor PACKED_P; + PACKED_MEMBER(Handle, pmFgColor); INTEGER pmFgIndex; - Handle pmBkColor PACKED_P; + PACKED_MEMBER(Handle, pmBkColor); INTEGER pmBkIndex; INTEGER pmFlags; } GrafVars, *GrafVarsPtr; -typedef struct { GrafVarsPtr p PACKED_P; } HIDDEN_GrafVarsPtr, *GrafVarsHandle; + +MAKE_HIDDEN(GrafVarsPtr); +typedef HIDDEN_GrafVarsPtr *GrafVarsHandle; #define SAFE_PTR(ptr) (gui_assert (ptr)) #define SAFE_HANDLE(handle) (gui_assert (handle), gui_assert ((handle)->p)) @@ -84,8 +86,8 @@ static inline GrafPtr ASSERT_NOT_CPORT(void *port) #define PORT_CLIP_REGION_X(port) PORT_FIELD (port, clipRgn) #define PORT_PEN_MODE_X(port) PORT_FIELD (port, pnMode) /* native byte order */ -#define PORT_VIS_REGION(port) (MR (PORT_VIS_REGION_X (port))) -#define PORT_CLIP_REGION(port) (MR (PORT_CLIP_REGION_X (port))) +#define PORT_VIS_REGION(port) (PPR (PORT_VIS_REGION_X (port))) +#define PORT_CLIP_REGION(port) (PPR (PORT_CLIP_REGION_X (port))) #define PORT_PEN_MODE(port) (CW (PORT_PEN_MODE_X (port))) /* field accessors for members which exist in both types and are in @@ -120,12 +122,12 @@ static inline GrafPtr ASSERT_NOT_CPORT(void *port) #define PORT_BK_COLOR(port) (CL (PORT_BK_COLOR_X (port))) #define PORT_COLR_BIT(port) (CW (PORT_COLR_BIT_X (port))) #define PORT_PAT_STRETCH(port) (CW (PORT_PAT_STRETCH_X (port))) -#define PORT_PIC_SAVE(port) (MR (PORT_PIC_SAVE_X (port))) -#define PORT_REGION_SAVE(port) (MR (PORT_REGION_SAVE_X (port))) -#define PORT_POLY_SAVE(port) (MR (PORT_POLY_SAVE_X (port))) +#define PORT_PIC_SAVE(port) (PPR (PORT_PIC_SAVE_X (port))) +#define PORT_REGION_SAVE(port) (PPR (PORT_REGION_SAVE_X (port))) +#define PORT_POLY_SAVE(port) (PPR (PORT_POLY_SAVE_X (port))) /* NOTE: this returns a different type depending if the argument is a CGrafPort or not */ -#define PORT_GRAF_PROCS(port) (MR (PORT_GRAF_PROCS_X (port))) +#define PORT_GRAF_PROCS(port) (PPR (PORT_GRAF_PROCS_X (port))) /* accessors for fields which exist only in basic quickdraw graphics ports */ @@ -166,14 +168,14 @@ static inline GrafPtr ASSERT_NOT_CPORT(void *port) #define CPORT_GRAFVARS_X(cport) (ASSERT_CPORT(cport)->grafVars) /* native byte order */ -#define CPORT_PIXMAP(cport) (MR (CPORT_PIXMAP_X (cport))) +#define CPORT_PIXMAP(cport) (PPR (CPORT_PIXMAP_X (cport))) #define CPORT_VERSION(cport) (CW (CPORT_VERSION_X (cport))) #define CPORT_CH_EXTRA(cport) (CW (CPORT_CH_EXTRA_X (cport))) #define CPORT_PENLOC_HFRAC(cport) (CW (CPORT_PENLOC_HFRAC_X (cport))) -#define CPORT_BK_PIXPAT(cport) (MR (CPORT_BK_PIXPAT_X (cport))) -#define CPORT_FILL_PIXPAT(cport) (MR (CPORT_FILL_PIXPAT_X (cport))) -#define CPORT_PEN_PIXPAT(cport) (MR (CPORT_PEN_PIXPAT_X (cport))) -#define CPORT_GRAFVARS(cport) ((GrafVarsHandle) MR (CPORT_GRAFVARS_X (cport))) +#define CPORT_BK_PIXPAT(cport) (PPR (CPORT_BK_PIXPAT_X (cport))) +#define CPORT_FILL_PIXPAT(cport) (PPR (CPORT_FILL_PIXPAT_X (cport))) +#define CPORT_PEN_PIXPAT(cport) (PPR (CPORT_PEN_PIXPAT_X (cport))) +#define CPORT_GRAFVARS(cport) ((GrafVarsHandle) PPR (CPORT_GRAFVARS_X (cport))) #define CPORT_OP_COLOR(cport) \ (HxX ((GrafVarsHandle) CPORT_GRAFVARS (cport), rgbOpColor)) @@ -191,7 +193,7 @@ static inline GrafPtr ASSERT_NOT_CPORT(void *port) (CGrafPort_p (port) \ ? PIXMAP_BASEADDR_X (CPORT_PIXMAP ((CGrafPtr) port)) \ : PORT_BITS ((GrafPtr) port).baseAddr) -#define PORT_BASEADDR(port) (MR (PORT_BASEADDR_X (port))) +#define PORT_BASEADDR(port) (PPR (PORT_BASEADDR_X (port))) /* return TRUE if the given bitmap has the same baseAddr, rowBytes and bounds as thePort's bits (portBits or portPixMap) */ @@ -275,7 +277,7 @@ static inline GrafPtr ASSERT_NOT_CPORT(void *port) compatibility */ #define PIXMAP_RESERVED_X(pixmap) (HxX (pixmap, pmReserved)) /* native byte order */ -#define PIXMAP_BASEADDR(pixmap) (MR (PIXMAP_BASEADDR_X (pixmap))) +#define PIXMAP_BASEADDR(pixmap) (PPR (PIXMAP_BASEADDR_X (pixmap))) #define PIXMAP_VERSION(pixmap) (Cx (PIXMAP_VERSION_X (pixmap))) #define PIXMAP_PACK_TYPE(pixmap) (Cx (PIXMAP_PACK_TYPE_X (pixmap))) @@ -287,7 +289,7 @@ static inline GrafPtr ASSERT_NOT_CPORT(void *port) #define PIXMAP_CMP_COUNT(pixmap) (Cx (PIXMAP_CMP_COUNT_X (pixmap))) #define PIXMAP_CMP_SIZE(pixmap) (Cx (PIXMAP_CMP_SIZE_X (pixmap))) #define PIXMAP_PLANE_BYTES(pixmap) (Cx (PIXMAP_PLANE_BYTES_X (pixmap))) -#define PIXMAP_TABLE(pixmap) (MR (PIXMAP_TABLE_X (pixmap))) +#define PIXMAP_TABLE(pixmap) (PPR (PIXMAP_TABLE_X (pixmap))) #define PIXMAP_TABLE_AS_OFFSET(pixmap) (CL ((int32) PIXMAP_TABLE_X (pixmap))) #define WRAPPER_PIXMAP_FOR_COPY(wrapper_decl_name) \ @@ -323,21 +325,21 @@ enum pixpat_pattern_types #define PIXPAT_XVALID_X(pixpat) (HxX (pixpat, patXValid)) #define PIXPAT_XMAP_X(pixpat) (HxX (pixpat, patXMap)) #else -#define PIXPAT_TYPE_X(pixpat) (MR ((pixpat)->p)->patType) -#define PIXPAT_MAP_X(pixpat) (MR ((pixpat)->p)->patMap) -#define PIXPAT_DATA_X(pixpat) (MR ((pixpat)->p)->patData) -#define PIXPAT_XDATA_X(pixpat) (MR ((pixpat)->p)->patXData) -#define PIXPAT_XVALID_X(pixpat) (MR ((pixpat)->p)->patXValid) -#define PIXPAT_XMAP_X(pixpat) (MR ((pixpat)->p)->patXMap) +#define PIXPAT_TYPE_X(pixpat) (PPR ((pixpat)->p)->patType) +#define PIXPAT_MAP_X(pixpat) (PPR ((pixpat)->p)->patMap) +#define PIXPAT_DATA_X(pixpat) (PPR ((pixpat)->p)->patData) +#define PIXPAT_XDATA_X(pixpat) (PPR ((pixpat)->p)->patXData) +#define PIXPAT_XVALID_X(pixpat) (PPR ((pixpat)->p)->patXValid) +#define PIXPAT_XMAP_X(pixpat) (PPR ((pixpat)->p)->patXMap) #endif /* native byte order */ #define PIXPAT_TYPE(pixpat) (CW (PIXPAT_TYPE_X (pixpat))) -#define PIXPAT_MAP(pixpat) (MR (PIXPAT_MAP_X (pixpat))) -#define PIXPAT_DATA(pixpat) (MR (PIXPAT_DATA_X (pixpat))) +#define PIXPAT_MAP(pixpat) (PPR (PIXPAT_MAP_X (pixpat))) +#define PIXPAT_DATA(pixpat) (PPR (PIXPAT_DATA_X (pixpat))) #define PIXPAT_DATA_AS_OFFSET(pixpat) (CL ((int32) PIXPAT_DATA_X (pixpat))) -#define PIXPAT_XDATA(pixpat) (MR (PIXPAT_XDATA_X (pixpat))) +#define PIXPAT_XDATA(pixpat) (PPR (PIXPAT_XDATA_X (pixpat))) #define PIXPAT_XVALID(pixpat) (CW (PIXPAT_XVALID_X (pixpat))) -#define PIXPAT_XMAP(pixpat) ((PixMapHandle) MR (PIXPAT_XMAP_X (pixpat))) +#define PIXPAT_XMAP(pixpat) ((PixMapHandle) PPR (PIXPAT_XMAP_X (pixpat))) /* BitMap accessors NOTE: these take `BitMap *'s, not BitMap handles */ @@ -358,7 +360,7 @@ enum pixpat_pattern_types | BITMAP_FLAGS_X (bitmap))) #define BITMAP_BASEADDR_X(bitmap) ((bitmap)->baseAddr) -#define BITMAP_BASEADDR(bitmap) (MR (BITMAP_BASEADDR_X (bitmap))) +#define BITMAP_BASEADDR(bitmap) (PPR (BITMAP_BASEADDR_X (bitmap))) #define BITMAP_P(bitmap) (! ((bitmap)->rowBytes & PIXMAP_FLAG_BITS_X)) @@ -440,20 +442,20 @@ typedef BitMap blt_bitmap_t; #define GD_REF_NUM(gdhandle) (Cx (GD_REF_NUM_X (gdhandle))) #define GD_ID(gdhandle) (Cx (GD_ID_X (gdhandle))) #define GD_TYPE(gdhandle) (Cx (GD_TYPE_X (gdhandle))) -#define GD_ITABLE(gdhandle) (MR (GD_ITABLE_X (gdhandle))) +#define GD_ITABLE(gdhandle) (PPR (GD_ITABLE_X (gdhandle))) #define GD_RES_PREF(gdhandle) (Cx (GD_RES_PREF_X (gdhandle))) -#define GD_SEARCH_PROC(gdhandle) (MR (GD_SEARCH_PROC_X (gdhandle))) -#define GD_COMP_PROC(gdhandle) (MR (GD_COMP_PROC_X (gdhandle))) +#define GD_SEARCH_PROC(gdhandle) (PPR (GD_SEARCH_PROC_X (gdhandle))) +#define GD_COMP_PROC(gdhandle) (PPR (GD_COMP_PROC_X (gdhandle))) #define GD_FLAGS(gdhandle) (Cx (GD_FLAGS_X (gdhandle))) -#define GD_PMAP(gdhandle) (MR (GD_PMAP_X (gdhandle))) +#define GD_PMAP(gdhandle) (PPR (GD_PMAP_X (gdhandle))) #define GD_REF_CON(gdhandle) (Cx (GD_REF_CON_X (gdhandle))) -#define GD_NEXT_GD(gdhandle) (MR (GD_NEXT_GD_X (gdhandle))) +#define GD_NEXT_GD(gdhandle) (PPR (GD_NEXT_GD_X (gdhandle))) #define GD_MODE(gdhandle) (Cx (GD_MODE_X (gdhandle))) #define GD_CCBYTES(gdhandle) (CW (GD_CCBYTES_X (gdhandle))) #define GD_CCDEPTH(gdhandle) (CW (GD_CCDEPTH_X (gdhandle))) -#define GD_CCXDATA(gdhandle) (MR (GD_CCXDATA_X (gdhandle))) -#define GD_CCXMASK(gdhandle) (MR (GD_CCXMASK_X (gdhandle))) +#define GD_CCXDATA(gdhandle) (PPR (GD_CCXDATA_X (gdhandle))) +#define GD_CCXMASK(gdhandle) (PPR (GD_CCXMASK_X (gdhandle))) /* color icon accessors */ #define CICON_PMAP(cicon) (HxX (cicon, iconPMap)) @@ -462,7 +464,7 @@ typedef BitMap blt_bitmap_t; #define CICON_MASK_DATA(cicon) (HxX (cicon, iconMaskData)) #define CICON_DATA_X(cicon) (HxX (cicon, iconData)) -#define CICON_DATA(cicon) (MR (CICON_DATA_X (cicon))) +#define CICON_DATA(cicon) (PPR (CICON_DATA_X (cicon))) #define CICON_P(icon) \ ({ \ @@ -499,10 +501,10 @@ typedef BitMap blt_bitmap_t; #define PALETTE_SEEDS_X(palette) (HxX (palette, pmSeeds)) #define PALETTE_ENTRIES(palette) (CW (PALETTE_ENTRIES_X (palette))) -#define PALETTE_WINDOW(palette) (MR (PALETTE_WINDOW_X (palette))) +#define PALETTE_WINDOW(palette) (PPR (PALETTE_WINDOW_X (palette))) #define PALETTE_PRIVATE(palette) (CW (PALETTE_PRIVATE_X (palette))) -#define PALETTE_DEVICES(palette) (MR (PALETTE_DEVICES_X (palette))) -#define PALETTE_SEEDS(palette) (MR (PALETTE_SEEDS_X (palette))) +#define PALETTE_DEVICES(palette) (PPR (PALETTE_DEVICES_X (palette))) +#define PALETTE_SEEDS(palette) (PPR (PALETTE_SEEDS_X (palette))) #define PALETTE_UPDATE_FLAG_BITS_X (CWC (0xE000)) #define PALETTE_UPDATE_FLAG_BITS (0xE000) @@ -525,11 +527,11 @@ typedef BitMap blt_bitmap_t; #define CCRSR_ID_X(ccrsr) (HxX (ccrsr, crsrID)) #define CCRSR_TYPE(ccrsr) (CW (CCRSR_TYPE_X (ccrsr))) -#define CCRSR_MAP(ccrsr) (MR (CCRSR_MAP_X (ccrsr))) -#define CCRSR_DATA(ccrsr) (MR (CCRSR_DATA_X (ccrsr))) -#define CCRSR_XDATA(ccrsr) (MR (CCRSR_XDATA_X (ccrsr))) +#define CCRSR_MAP(ccrsr) (PPR (CCRSR_MAP_X (ccrsr))) +#define CCRSR_DATA(ccrsr) (PPR (CCRSR_DATA_X (ccrsr))) +#define CCRSR_XDATA(ccrsr) (PPR (CCRSR_XDATA_X (ccrsr))) #define CCRSR_XVALID(ccrsr) (CW (CCRSR_XVALID_X (ccrsr))) -#define CCRSR_XHANDLE(ccrsr) (MR (CCRSR_XHANDLE_X (ccrsr))) +#define CCRSR_XHANDLE(ccrsr) (PPR (CCRSR_XHANDLE_X (ccrsr))) #define CCRSR_XTABLE(ccrsr) (CL (CCRSR_XTABLE_X (ccrsr))) #define CCRSR_ID(ccrsr) (CL (CCRSR_ID_X (ccrsr))) @@ -537,7 +539,7 @@ extern void cursor_reset_current_cursor (void); #define IMV_XFER_MODE_P(mode) ((mode) >= blend && (mode) <= adMin) #define active_screen_addr_p(bitmap) \ - ((bitmap)->baseAddr == PIXMAP_BASEADDR_X (GD_PMAP (MR (MainDevice)))) + ((bitmap)->baseAddr == PIXMAP_BASEADDR_X (GD_PMAP (PPR (MainDevice)))) /* gd flags */ #define gdDevType 0 @@ -730,7 +732,7 @@ extern void canonical_from_bogo_color (uint32 index, RGBColor *rgb_out); #define AVERAGE_COLOR(c1, c2, ratio, out) \ - (average_color (MR (TheGDevice), (c1), (c2), (ratio), (out))) + (average_color (PPR (TheGDevice), (c1), (c2), (ratio), (out))) extern Handle ROMlib_copy_handle (Handle); @@ -744,7 +746,7 @@ extern Handle ROMlib_copy_handle (Handle); thePortX = thePort_saveX; } while (0) #define THEGDEVICE_SAVE_EXCURSION(TheGDevice_new, body) \ - do { GDHandle TheGDevice_save = MR (TheGDevice); \ + do { GDHandle TheGDevice_save = PPR (TheGDevice); \ SetGDevice (TheGDevice_new); \ body \ SetGDevice (TheGDevice_save); } while (0) diff --git a/src/include/rsys/ctl.h b/src/include/rsys/ctl.h index 17e926d..d1cea5c 100644 --- a/src/include/rsys/ctl.h +++ b/src/include/rsys/ctl.h @@ -46,7 +46,7 @@ extern AuxCtlHandle default_aux_ctl; #define CTL_MIN(ctl) (CW (CTL_MIN_X (ctl))) #define CTL_MAX(ctl) (CW (CTL_MAX_X (ctl))) #define CTL_DEFPROC(ctl) (MR (CTL_DEFPROC_X (ctl))) -#define CTL_DATA(ctl) ((RgnHandle) MR (CTL_DATA_X (ctl))) +#define CTL_DATA(ctl) ((RgnHandle) PPR (CTL_DATA_X (ctl))) #define CTL_ACTION(ctl) (MR (CTL_ACTION_X (ctl))) #define CTL_ACTION_AS_LONG(ctl) (CL ((LONGINT) CTL_ACTION_X (ctl))) #define CTL_REF_CON(ctl) (CL (CTL_REF_CON_X (ctl))) @@ -92,7 +92,7 @@ extern LONGINT ROMlib_ctlcall (ControlHandle c, INTEGER i, LONGINT l); struct PACKED popup_data { - MenuHandle menu PACKED_P; + PACKED_MEMBER(MenuHandle, menu); int16 menu_id; /* private fields */ @@ -102,8 +102,8 @@ struct PACKED popup_data typedef struct popup_data popup_data_t; typedef popup_data_t *popup_data_ptr; -typedef struct { popup_data_ptr p PACKED_P; } hidden_popup_data_ptr; -typedef hidden_popup_data_ptr *popup_data_handle; +MAKE_HIDDEN(popup_data_ptr); +typedef HIDDEN_popup_data_ptr *popup_data_handle; typedef struct PACKED { Rect _tlimit; diff --git a/src/include/rsys/dial.h b/src/include/rsys/dial.h index e8eb36a..b459002 100644 --- a/src/include/rsys/dial.h +++ b/src/include/rsys/dial.h @@ -4,7 +4,7 @@ typedef struct PACKED { int16 count; - Handle h PACKED_P; + PACKED_MEMBER(Handle, h); Rect r; uint8 type; uint8 len; diff --git a/src/include/rsys/emustubs.h b/src/include/rsys/emustubs.h index dc01846..69ab0b9 100644 --- a/src/include/rsys/emustubs.h +++ b/src/include/rsys/emustubs.h @@ -10,9 +10,9 @@ typedef struct PACKED { - Ptr buffer PACKED_P; - ProcPtr proc PACKED_P; - Ptr data PACKED_P; + PACKED_MEMBER(Ptr, buffer); + PACKED_MEMBER(ProcPtr, proc); + PACKED_MEMBER(Ptr, data); } adbop_t; typedef struct PACKED comm_toolbox_dispatch_args @@ -24,31 +24,33 @@ typedef struct PACKED comm_toolbox_dispatch_args struct PACKED { int16 n_items; - DialogPtr dp PACKED_P; + PACKED_MEMBER(DialogPtr, dp); } shorten_args; struct PACKED { DITLMethod method; - Handle new_items_h PACKED_P; - DialogPtr dp PACKED_P; + PACKED_MEMBER(Handle, new_items_h); + PACKED_MEMBER(DialogPtr, dp); } append_args; struct PACKED { - DialogPtr dp PACKED_P; + PACKED_MEMBER(DialogPtr, dp); } count_args; struct PACKED { - QElemPtr qp PACKED_P; + PACKED_MEMBER(QElemPtr, qp); } crm_args; } args; } comm_toolbox_dispatch_args_t; +typedef void *voidptr; + typedef struct PACKED { - void *startPtr PACKED_P; - void *limitPtr PACKED_P; + PACKED_MEMBER(voidptr, startPtr); + PACKED_MEMBER(voidptr, limitPtr); short cMoreMasters; - void *pGrowZone PACKED_P; + PACKED_MEMBER(voidptr, pGrowZone); } initzonehiddenargs_t; diff --git a/src/include/rsys/file.h b/src/include/rsys/file.h index acd875f..f0ea10d 100644 --- a/src/include/rsys/file.h +++ b/src/include/rsys/file.h @@ -75,8 +75,8 @@ typedef struct PACKED { LONGINT fcleof; /* LONGINT fcbEOF */ LONGINT fcPLen; LONGINT fcbCrPs; - VCB *fcvptr PACKED_P; /* VCB *fcbVPtr */ - Ptr fcbBfAdr PACKED_P; + PACKED_MEMBER(VCB, *fcvptr); /* VCB *fcbVPtr */ + PACKED_MEMBER(Ptr, fcbBfAdr); INTEGER fcbFlPos; LONGINT fcbClmpSize; LONGINT fcfd; /* instead of: LONGINT fcbBTCBPtr PACKED; */ diff --git a/src/include/rsys/font.h b/src/include/rsys/font.h index ed6b73b..46619ad 100644 --- a/src/include/rsys/font.h +++ b/src/include/rsys/font.h @@ -17,15 +17,15 @@ typedef struct PACKED { } widentry_t; typedef WidthTable *WPtr; -typedef struct { WPtr p PACKED_P; } HIDDEN_WPtr; +MAKE_HIDDEN(WPtr); typedef HIDDEN_WPtr *WHandle; typedef FamRec *FPtr; -typedef struct { FPtr p PACKED_P; } HIDDEN_FPtr; +MAKE_HIDDEN(FPtr); typedef HIDDEN_FPtr *FHandle; typedef WHandle *WHandlePtr; -typedef struct { WHandlePtr p PACKED_P; } HIDDEN_WHandlePtr; +MAKE_HIDDEN(WHandlePtr); typedef HIDDEN_WHandlePtr *WHandleHandle; #define FONTRESID(font, size) (((font) << 7) | (size)) diff --git a/src/include/rsys/hfs.h b/src/include/rsys/hfs.h index 85fd623..0bfc498 100644 --- a/src/include/rsys/hfs.h +++ b/src/include/rsys/hfs.h @@ -76,7 +76,7 @@ typedef struct PACKED { LONGINT drCTFlSize; xtntrec drCTExtRec; } volumeinfo, *volumeinfoPtr; -typedef struct { volumeinfoPtr p PACKED_P; } HIDDEN_volumeinfoPtr; +MAKE_HIDDEN(volumeinfoPtr); typedef HIDDEN_volumeinfoPtr *volumeinfoHandle; #define VOLUMEINFOBLOCKNO 2 @@ -176,6 +176,8 @@ typedef compretval (*compfp)(void *first, void *second); #define FLOCKEDBIT (1<<5) #define DIRTYBIT (1<<7) +typedef HVCB *HVCBPtr; + typedef struct PACKED { LONGINT fcbFlNum; Byte fcbMdRByt; @@ -184,8 +186,8 @@ typedef struct PACKED { LONGINT fcbEOF; LONGINT fcbPLen; LONGINT fcbCrPs; - HVCB *fcbVPtr PACKED_P; - Ptr fcbBfAdr PACKED_P; + PACKED_MEMBER(HVCBPtr, fcbVPtr); + PACKED_MEMBER(Ptr, fcbBfAdr); unsigned short fcbFlPos; LONGINT fcbClmpSize; LONGINT fcbBTCBPtr; @@ -251,10 +253,12 @@ typedef enum { regular = 1, directory = 2, thread = 4 } filekind; #define PBRETURN(pb, x) return (((ParmBlkPtr) (pb))->ioParam.ioResult = CW(x), (x)) +typedef struct _cacheentry *cacheentry_ptr; + typedef struct PACKED _cacheentry { - struct _cacheentry *flink PACKED_P; - struct _cacheentry *blink PACKED_P; - HVCB *vptr PACKED_P; + PACKED_MEMBER(cacheentry_ptr, flink); + PACKED_MEMBER(cacheentry_ptr, blink); + PACKED_MEMBER(HVCBPtr, vptr); LONGINT fileno; uint16 refnum; ULONGINT physblock; @@ -269,8 +273,8 @@ typedef struct PACKED _cacheentry { #define CACHEFREE (1 << 5) typedef struct PACKED { - cacheentry *flink PACKED_P; - cacheentry *blink PACKED_P; + PACKED_MEMBER(cacheentry_ptr, flink); + PACKED_MEMBER(cacheentry_ptr, blink); unsigned short nitems; uint16 flags; } cachehead; @@ -304,7 +308,7 @@ typedef struct { } btparam; typedef struct PACKED { /* from MPW equates */ - HVCB *vcbp PACKED_P; + PACKED_MEMBER(HVCBPtr, vcbp); LONGINT dirid; LONGINT cathint; /* ??? */ LONGINT procid; diff --git a/src/include/rsys/itm.h b/src/include/rsys/itm.h index 129723e..091a11b 100644 --- a/src/include/rsys/itm.h +++ b/src/include/rsys/itm.h @@ -11,14 +11,14 @@ #include "rsys/pstuff.h" typedef struct PACKED { - Handle itmhand PACKED_P; + PACKED_MEMBER(Handle, itmhand); Rect itmr; unsigned char itmtype; unsigned char itmlen; } itmstr; typedef itmstr *itmp; -typedef struct { itmp p PACKED_P; } HIDDEN_itmp; +MAKE_HIDDEN(itmp); typedef HIDDEN_itmp *itmh; #define DIALOG_RES_HAS_POSITION_P(dlogh) \ @@ -59,7 +59,7 @@ typedef struct PACKED { } altstr; typedef altstr *altp; -typedef struct { altp p PACKED_P; } HIDDEN_altp; +MAKE_HIDDEN(altp); typedef HIDDEN_altp *alth; typedef struct PACKED @@ -75,7 +75,7 @@ typedef struct PACKED char dlglen; } dlogstr; typedef dlogstr *dlogp; -typedef struct { dlogp p PACKED_P; } HIDDEN_dlogp; +MAKE_HIDDEN(dlogp); typedef HIDDEN_dlogp *dlogh; typedef struct PACKED item_style_info diff --git a/src/include/rsys/keyboard.h b/src/include/rsys/keyboard.h index e68fff8..9e558a0 100644 --- a/src/include/rsys/keyboard.h +++ b/src/include/rsys/keyboard.h @@ -63,7 +63,8 @@ typedef struct PACKED dead_key_rec_t dead_key_recs[0]; /* VARIABLE LENGTH */ } kchr_str, *kchr_ptr_t; -typedef struct { kchr_ptr_t p PACKED_P; } HIDDEN_kchr_ptr, *kchr_hand; +MAKE_HIDDEN(kchr_ptr_t); +typedef HIDDEN_kchr_ptr_t *kchr_hand; #define KCHR_VERSION_X(p) ((p)->version) #define KCHR_MODIFIER_TABLE_X(p) ((p)->modifier_table) diff --git a/src/include/rsys/macros.h b/src/include/rsys/macros.h index 5bd9879..e1c80b7 100644 --- a/src/include/rsys/macros.h +++ b/src/include/rsys/macros.h @@ -36,14 +36,6 @@ # define PACKED __attribute__((packed)) #endif -#if !defined (PACKED_P) -#if !defined (__alpha) -#define PACKED_P PACKED -#else -#define PACKED_P :32 PACKED -#endif -#endif - #if !defined (U) # define U(c) ((uint8) (c)) #endif diff --git a/src/include/rsys/menu.h b/src/include/rsys/menu.h index ad174cf..b804352 100644 --- a/src/include/rsys/menu.h +++ b/src/include/rsys/menu.h @@ -73,7 +73,7 @@ extern LONGINT ROMlib_menuhelper( MenuHandle mh, Rect *saver, LONGINT where, #define MLMAX 16 typedef struct PACKED { - MenuHandle muhandle PACKED_P; + PACKED_MEMBER(MenuHandle, muhandle); INTEGER muleft; } muelem; @@ -122,7 +122,7 @@ typedef struct PACKED menu_list } menu_list; typedef menu_list *menu_list_ptr; -typedef struct { menu_list_ptr p PACKED_P; } HIDDEN_menu_list_ptr; +MAKE_HIDDEN(menu_list_ptr); typedef HIDDEN_menu_list_ptr *menu_list_handle; typedef struct PACKED { @@ -133,7 +133,7 @@ typedef struct PACKED { } menulist; typedef menulist *menulistp; -typedef struct { menulistp p PACKED_P; } HIDDEN_menulistp; +MAKE_HIDDEN(menulistp); typedef HIDDEN_menulistp *mlhandle; /* Menu Color Entry accessors */ @@ -159,7 +159,7 @@ typedef HIDDEN_menulistp *mlhandle; typedef struct PACKED { /* from MPW Private.a */ INTEGER lastMBSave; /* offset to top most menu saved */ - Handle mbCustomStorage PACKED_P; /* for custom jobs (i.e. we don't use) */ + PACKED_MEMBER(Handle, mbCustomStorage); /* for custom jobs (i.e. we don't use) */ Rect mbItemRect; /* currently chosen menu */ Byte mbMenuDelay; /* MenuDelay from param ram */ Byte mbMenuDrag; /* MenuDrag from param ram */ @@ -168,15 +168,15 @@ typedef struct PACKED { /* from MPW Private.a */ } mbdfheader; typedef mbdfheader *mbdfheaderptr; -typedef struct { mbdfheaderptr p PACKED_P; } HIDDEN_mbdfheaderptr; +MAKE_HIDDEN(mbdfheaderptr); typedef HIDDEN_mbdfheaderptr *mbdfheaderhand; typedef struct PACKED { Rect mbRectSave; /* where it is on screen */ - Handle mbBitsSave PACKED_P; /* where the bits are */ + PACKED_MEMBER(Handle, mbBitsSave); /* where the bits are */ INTEGER mbMenuDir; /* what direction the menu was placed */ INTEGER mbMLOffset; /* 6 byte offset into MenuList */ - MenuHandle mbMLHandle PACKED_P; /* the handle from MenuList */ + PACKED_MEMBER(MenuHandle, mbMLHandle); /* the handle from MenuList */ INTEGER mbTopScroll; /* copy of TopMenuItem */ INTEGER mbBotScroll; /* copy of AtMenuBottom */ LONGINT mbReserved; /* i dunno */ diff --git a/src/include/rsys/mman_private.h b/src/include/rsys/mman_private.h index 5ad6995..22f1d3c 100644 --- a/src/include/rsys/mman_private.h +++ b/src/include/rsys/mman_private.h @@ -194,11 +194,13 @@ typedef struct zone_info_t; +typedef Zone *ZonePtr; + typedef struct PACKED { - Zone *sp PACKED_P; - Ptr lp PACKED_P; + PACKED_MEMBER(ZonePtr, sp); + PACKED_MEMBER(Ptr, lp); INTEGER mm; - ProcPtr gz PACKED_P; + PACKED_MEMBER(ProcPtr, gz); } pblock_t; extern void ROMlib_sledgehammer_zone (THz zone, boolean_t print_p, diff --git a/src/include/rsys/nextprint.h b/src/include/rsys/nextprint.h index ba63bf4..864178c 100644 --- a/src/include/rsys/nextprint.h +++ b/src/include/rsys/nextprint.h @@ -33,14 +33,16 @@ typedef struct { short h; } comPoint; +typedef char *char_ptr; + typedef struct PACKED { - char *baseAddr PACKED_P; + PACKED_MEMBER(char_ptr, baseAddr); short rowBytes; comRect bounds; } comBitMap; typedef struct PACKED { - char *baseAddr PACKED_P; + PACKED_MEMBER(char_ptr, baseAddr); short rowBytes; comRect bounds; short pmVersion; @@ -84,7 +86,7 @@ typedef enum { } comverb_t; typedef char *comPtr; -typedef struct { comPtr p PACKED_P; } HIDDEN_comPtr; +MAKE_HIDDEN(comPtr); typedef HIDDEN_comPtr *comHandle; typedef LONGINT comFixed; @@ -95,8 +97,8 @@ typedef struct PACKED { short device; comBitMap portBits; comRect portRect; - comRgnHandle visRgn PACKED_P; - comRgnHandle clipRgn PACKED_P; + PACKED_MEMBER(comRgnHandle, visRgn); + PACKED_MEMBER(comRgnHandle, clipRgn); comPattern bkPat; comPattern fillPat; comPoint pnLoc; @@ -114,10 +116,10 @@ typedef struct PACKED { LONGINT bkColor; short colrBit; short patStretch; - comHandle picSave PACKED_P; - comHandle rgnSave PACKED_P; - comHandle polySave PACKED_P; - comPtr grafProcs PACKED_P; + PACKED_MEMBER(comHandle, picSave); + PACKED_MEMBER(comHandle, rgnSave); + PACKED_MEMBER(comHandle, polySave); + PACKED_MEMBER(comPtr, grafProcs); } comGrafPort, *comGrafPtr; extern void NeXTPrArc(LONGINT verb, comRect *r, LONGINT starta, LONGINT arca, diff --git a/src/include/rsys/picture.h b/src/include/rsys/picture.h index fb2ecda..b5763ba 100644 --- a/src/include/rsys/picture.h +++ b/src/include/rsys/picture.h @@ -54,10 +54,10 @@ */ typedef struct PACKED { - PicHandle pichandle PACKED_P; /* 0x00 - 0x03 */ + PACKED_MEMBER(PicHandle, pichandle); /* 0x00 - 0x03 */ LONGINT picsize; /* 0x04 - 0x07 */ LONGINT pichowfar; /* 0x08 - 0x0B */ - RgnHandle picclip PACKED_P; /* 0x0C - 0x0F */ + PACKED_MEMBER(RgnHandle, picclip); /* 0x0C - 0x0F */ Pattern picbkpat; /* 0x10 - 0x17 */ INTEGER picfont; /* 0x18 - 0x19 */ Style picface; /* 0x1A */ @@ -235,7 +235,7 @@ extern void ROMlib_drawingverbrectovalpicupdate( GrafVerb v, Rect *rp, #define OP_Header 0x0C00 typedef piccache *piccacheptr; -typedef struct { piccacheptr p PACKED_P; } HIDDEN_piccacheptr; +MAKE_HIDDEN(piccacheptr); typedef HIDDEN_piccacheptr *piccachehand; extern PicHandle ROMlib_OpenPicture_helper (const Rect *pf, diff --git a/src/include/rsys/print.h b/src/include/rsys/print.h index ae29eca..e8fb73a 100644 --- a/src/include/rsys/print.h +++ b/src/include/rsys/print.h @@ -146,7 +146,7 @@ TTxtPicRec, *TTxtPicPtr; #define TEXTPIC_ANGLE_FIXED_X(h) (HxX (h, tAngleFixed)) #define TEXTPIC_ANGLE_FIXED(h) (CL (TEXTPIC_ANGLE_FIXED_X (h))) -typedef struct { TTxtPicPtr p PACKED_P; } HIDDEN_TTxtPicPtr; +MAKE_HIDDEN(TTxtPicPtr); typedef HIDDEN_TTxtPicPtr *TTxtPicHdl; enum @@ -177,7 +177,7 @@ TCenterRec, *TCenterRecPtr; #define TEXTCENTER_X_X(h) (HxX (h, x)) #define TEXTCENTER_X(h) (CL (TEXTCENTER_X_X (h))) -typedef struct { TCenterRecPtr p PACKED_P; } HIDDEN_TCenterRecPtr; +MAKE_HIDDEN(TCenterRecPtr); typedef HIDDEN_TCenterRecPtr *TCenterRecHdl; extern char *ROMlib_document_paper_sizes; diff --git a/src/include/rsys/resource.h b/src/include/rsys/resource.h index 43051fe..4049dc0 100644 --- a/src/include/rsys/resource.h +++ b/src/include/rsys/resource.h @@ -29,7 +29,7 @@ typedef struct PACKED { typedef struct PACKED { reshead rh; - Handle nextmap PACKED_P; + PACKED_MEMBER(Handle, nextmap); INTEGER resfn; INTEGER resfatr; INTEGER typoff; @@ -37,7 +37,7 @@ typedef struct PACKED { } resmap; typedef resmap *resmapptr; -typedef struct { resmapptr p PACKED_P; } HIDDEN_resmapptr; +MAKE_HIDDEN(resmapptr); typedef HIDDEN_resmapptr *resmaphand; #define NAMEOFF(map) Hx(map, namoff) @@ -63,7 +63,7 @@ typedef struct PACKED { INTEGER noff; Byte ratr; Byte doff[3]; - Handle rhand PACKED_P; + PACKED_MEMBER(Handle, rhand); } resref; typedef struct PACKED { /* empty resource template */ diff --git a/src/include/rsys/serial.h b/src/include/rsys/serial.h index fe14240..10ab53b 100644 --- a/src/include/rsys/serial.h +++ b/src/include/rsys/serial.h @@ -9,7 +9,7 @@ */ typedef struct PACKED{ - Ptr p PACKED_P; + PACKED_MEMBER(Ptr, p); INTEGER i; } sersetbuf_t; diff --git a/src/include/rsys/tesave.h b/src/include/rsys/tesave.h index 70f360b..d6af0a1 100644 --- a/src/include/rsys/tesave.h +++ b/src/include/rsys/tesave.h @@ -17,7 +17,7 @@ typedef struct PACKED _tpixpat */ INTEGER _tinpat; Pattern _tpat; - PixPatHandle _tpixpat PACKED_P; + PACKED_MEMBER(PixPatHandle, _tpixpat); Point _tploc; Point _tpsize; INTEGER _tpmode; @@ -25,7 +25,7 @@ typedef struct PACKED PenState _tpstate; #endif - GrafPtr _tport PACKED_P; + PACKED_MEMBER(GrafPtr, _tport); INTEGER _tpvis; @@ -34,7 +34,7 @@ typedef struct PACKED INTEGER _tsize; Style _tstyle; Byte filler; - RgnHandle _tsaveclip PACKED_P; + PACKED_MEMBER(RgnHandle, _tsaveclip); /* ### is tesave mac-visible state? how is color and whatnot really stored? */ @@ -126,17 +126,17 @@ extern int16 ROMlib_call_TEDoText (TEPtr tp, int16 first, int16 last, int16 what); typedef struct PACKED { /* from MPW: ToolEqu.a */ - ProcPtr EOLHook PACKED_P; - ProcPtr DRAWHook PACKED_P; - ProcPtr WIDTHHook PACKED_P; - ProcPtr HITTESTHook PACKED_P; + PACKED_MEMBER(ProcPtr, EOLHook); + PACKED_MEMBER(ProcPtr, DRAWHook); + PACKED_MEMBER(ProcPtr, WIDTHHook); + PACKED_MEMBER(ProcPtr, HITTESTHook); LONGINT flags; } tehidden; typedef tehidden *tehiddenp; -typedef struct { tehiddenp p PACKED_P; } HIDDEN_tehiddenp; +MAKE_HIDDEN(tehiddenp); typedef HIDDEN_tehiddenp *tehiddenh; -typedef struct { tehiddenh p PACKED_P; } HIDDEN_tehiddenh; +MAKE_HIDDEN(tehiddenh); #define TEAUTOVIEWBIT 1 /* found by dumping the handle before and after calling TEAutoView */ diff --git a/src/include/rsys/wind.h b/src/include/rsys/wind.h index 93b31f9..92abc50 100644 --- a/src/include/rsys/wind.h +++ b/src/include/rsys/wind.h @@ -45,7 +45,7 @@ extern BOOLEAN ROMlib_dirtyvariant; typedef pascal LONGINT (*windprocp)(INTEGER var, WindowPtr wind, INTEGER mess, LONGINT param); -typedef struct { windprocp p PACKED_P; } HIDDEN_windprocp; +MAKE_HIDDEN(windprocp); extern void CALLDRAGHOOK (void); extern void WINDCALLDESKHOOK (void); diff --git a/src/include/rsys/xdata.h b/src/include/rsys/xdata.h index 138fe88..3e3e3a8 100644 --- a/src/include/rsys/xdata.h +++ b/src/include/rsys/xdata.h @@ -52,8 +52,9 @@ typedef struct _xdata_t } xdata_t; -typedef struct { xdata_t *p PACKED_P; } *xdata_handle_t; - +typedef xdata_t *xdata_ptr; +MAKE_HIDDEN(xdata_ptr); +typedef HIDDEN_xdata_ptr *xdata_handle_t; extern boolean_t update_xdata_if_needed (xdata_handle_t x, PixPat *pixpat, PixMapPtr dest); diff --git a/src/menu.c b/src/menu.c index d2224fd..d20faaf 100644 --- a/src/menu.c +++ b/src/menu.c @@ -729,7 +729,7 @@ P1 (PUBLIC pascal trap, void, DeleteMenu, int16, mid) } typedef mbartype *mbarptr; -typedef struct { mbarptr p PACKED_P; } HIDDEN_mbarptr; +MAKE_HIDDEN(mbarptr); typedef HIDDEN_mbarptr *mbarhandle; P1(PUBLIC pascal trap, Handle, GetNewMBar, INTEGER, mbarid) diff --git a/src/mkvol/mkvol_internal.h b/src/mkvol/mkvol_internal.h index 1a37292..29c1f44 100644 --- a/src/mkvol/mkvol_internal.h +++ b/src/mkvol/mkvol_internal.h @@ -13,7 +13,7 @@ #if !defined(_MKVOL_INTERNAL_H_) #define _MKVOL_INTERNAL_H_ -#if defined(__alpha) || defined(i386) || defined(__BORLANDC__) +#if defined(__alpha) || defined(i386) || defined(__BORLANDC__) || defined (__x86_64__) #define LITTLEENDIAN #elif defined(mc68000) || defined (powerpc) || defined (__ppc__) #else diff --git a/src/process.c b/src/process.c index dfb5c0d..043d7d9 100644 --- a/src/process.c +++ b/src/process.c @@ -19,11 +19,8 @@ char ROMlib_rcsid_process[] = #define declare_handle_type(type_prefix) \ typedef type_prefix ## _t *type_prefix ## _ptr; \ - typedef struct \ - { \ - type_prefix ## _ptr p PACKED_P; \ - } hidden_ ## type_prefix ## _ptr; \ - typedef hidden_ ## type_prefix ## _ptr *type_prefix ## _handle + MAKE_HIDDEN(type_prefix ## _ptr); \ + typedef HIDDEN_ ## type_prefix ## _ptr *type_prefix ## _handle declare_handle_type (size_resource); diff --git a/src/qCGrafPort.c b/src/qCGrafPort.c index 62604ae..5978efb 100644 --- a/src/qCGrafPort.c +++ b/src/qCGrafPort.c @@ -415,7 +415,7 @@ P0 (PUBLIC pascal trap, PixPatHandle, NewPixPat) } typedef struct pixpat_res *pixpat_res_ptr; -typedef struct { pixpat_res_ptr p PACKED_P; } HIDDEN_pixpat_res_ptr; +MAKE_HIDDEN(pixpat_res_ptr); typedef HIDDEN_pixpat_res_ptr *pixpat_res_handle; diff --git a/src/qCursor.c b/src/qCursor.c index 1648367..8d1584f 100644 --- a/src/qCursor.c +++ b/src/qCursor.c @@ -219,7 +219,7 @@ P2(PUBLIC pascal trap, void, ShieldCursor, Rect *, rp, Point, p) /* IMI-474 */ wewantpointermovements(-1); } -typedef struct { ccrsr_res_ptr p PACKED_P; } HIDDEN_ccrsr_res_ptr; +MAKE_HIDDEN(ccrsr_res_ptr); typedef HIDDEN_ccrsr_res_ptr *ccrsr_res_handle; P1 (PUBLIC pascal trap, CCrsrHandle, GetCCursor, INTEGER, crsr_id) diff --git a/src/resGettype.c b/src/resGettype.c index 0dcb3f8..57fccb0 100644 --- a/src/resGettype.c +++ b/src/resGettype.c @@ -16,7 +16,7 @@ char ROMlib_rcsid_resGettype[] = #include "rsys/mman.h" typedef ResType *restypeptr; -typedef struct { restypeptr p PACKED_P; } HIDDEN_restypeptr; +MAKE_HIDDEN(restypeptr); PRIVATE HIDDEN_restypeptr *ar = 0; diff --git a/src/resMod.c b/src/resMod.c index 37ea70f..c84f763 100644 --- a/src/resMod.c +++ b/src/resMod.c @@ -329,7 +329,7 @@ A2(PUBLIC, void, ROMlib_wr, resmaphand, map, resref *, rr) /* INTERNAL */ } typedef res_sorttype_t *sorttypeptr; -typedef struct { sorttypeptr p PACKED_P; } HIDDEN_sorttypeptr; +MAKE_HIDDEN(sorttypeptr); typedef HIDDEN_sorttypeptr *sorttypehand; A3(PRIVATE, void, fillst, sorttypehand, st, resref *, rp, resref *, rep) diff --git a/src/segment.c b/src/segment.c index 8788c86..a1219b5 100644 --- a/src/segment.c +++ b/src/segment.c @@ -64,7 +64,7 @@ char ROMlib_rcsid_segment[] = #endif /* defined(MSDOS) */ typedef finderinfo *finderinfoptr; -typedef struct { finderinfoptr p PACKED_P; } HIDDEN_finderinfoptr; +MAKE_HIDDEN(finderinfoptr); typedef HIDDEN_finderinfoptr *finderinfohand; PUBLIC int ROMlib_cacheheuristic = FALSE; diff --git a/src/serial.c b/src/serial.c index 93c9b9a..06f5d6a 100644 --- a/src/serial.c +++ b/src/serial.c @@ -210,7 +210,7 @@ hidden, *hiddenp; #endif -typedef struct { hiddenp p PACKED_P; } HIDDEN_hiddenp; +MAKE_HIDDEN(hiddenp); typedef HIDDEN_hiddenp *hiddenh; diff --git a/src/windInit.c b/src/windInit.c index 042cabd..fe86175 100644 --- a/src/windInit.c +++ b/src/windInit.c @@ -547,7 +547,7 @@ P8 (PUBLIC pascal trap, CWindowPtr, NewCWindow, } typedef windrestype *windrestypeptr; -typedef struct { windrestypeptr p PACKED_P; } HIDDEN_windrestypeptr; +MAKE_HIDDEN(windrestypeptr); typedef HIDDEN_windrestypeptr *windrestypehand; P3 (PUBLIC pascal trap, CWindowPtr, GetNewCWindow, @@ -621,7 +621,7 @@ P1(PUBLIC pascal trap, void, CloseWindow, WindowPtr, w) { WindowPeek wptmp; GrafPtr savgp; - typedef struct { AuxWinHandle p PACKED_P; } HIDDEN_AuxWinHandle; + MAKE_HIDDEN(AuxWinHandle); AuxWinHandle saveauxh; HIDDEN_AuxWinHandle *auxhp; ControlHandle c, t;