Browse Source

AROS: 64bit fixes, synchronized to official ABIv11 includes

Marcus Sackrow 3 years ago
parent
commit
f1cf83bd8a

+ 1 - 1
packages/arosunits/src/agraphics.pas

@@ -764,7 +764,7 @@ type
     xln_Name: PChar;
     xln_Subsystem: Byte;     // see below
     xln_Subtype: Byte;       // SS_GRAPHICS
-    xln_Library : Longint;
+    xln_Library : APTR;
     xln_Init : Pointer;
   end;
 

+ 26 - 22
packages/arosunits/src/amigados.pas

@@ -624,17 +624,21 @@ type
   PFileHandle = ^TFileHandle;
   TFileHandle = record
     fh_Flags: ULONG;   { EXEC message        }
+    {$ifdef CPU64}
+    fh_Port: ULONG;   { Reply port for the packet }
+    {$else}
     fh_Port: PMsgPort;   { Reply port for the packet }
+    {$endif}
     fh_Type: PMsgPort;   { Port to do PutMsg() to Address is negative if a plain file }
 
     fh_Buf: BPTR;
     fh_Pos: LongInt;
     fh_End: LongInt;
 
-    fh_Func1: LongInt;
-    fh_Func2: LongInt;
-    fh_Func3: LongInt;
-    fh_Arg1:  LongInt;
+    fh_Func1: PtrInt;
+    fh_Func2: PtrInt;
+    fh_Func3: PtrInt;
+    fh_Arg1:  PtrInt;
     fh_Arg2: APTR;
     fh_Size: ULONG; // Size of buffered io buffer
     fh_Buf2: BPTR;  // Always the same as fh_Buf
@@ -649,27 +653,27 @@ type
     case SmallInt of
     0 : (
       dp_Action : LongInt;
-      dp_Status : LongInt;
-      dp_Status2 : LongInt;
-      dp_BufAddr : LongInt;
+      dp_Status : PtrInt;
+      dp_Status2 : PtrInt;
+      dp_BufAddr : PtrInt;
     );
     1 : (
       dp_Type : LongInt;      { See ACTION_... below and
                               * 'R' means Read, 'W' means Write to the
                               * file system }
-      dp_Res1 : LongInt;      { For file system calls this is the result
+      dp_Res1 : PtrInt;       { For file system calls this is the result
                               * that would have been returned by the
                               * function, e.g. Write ('W') returns actual
                               * length written }
-      dp_Res2 : LongInt;      { For file system calls this is what would
+      dp_Res2 : PtrInt;       { For file system calls this is what would
                               * have been returned by IoErr() }
-      dp_Arg1 : LongInt;
-      dp_Arg2 : LongInt;
-      dp_Arg3 : LongInt;
-      dp_Arg4 : LongInt;
-      dp_Arg5 : LongInt;
-      dp_Arg6 : LongInt;
-      dp_Arg7 : LongInt;
+      dp_Arg1 : PtrInt;
+      dp_Arg2 : PtrInt;
+      dp_Arg3 : PtrInt;
+      dp_Arg4 : PtrInt;
+      dp_Arg5 : PtrInt;
+      dp_Arg6 : PtrInt;
+      dp_Arg7 : PtrInt;
     );
   end;
 
@@ -1071,7 +1075,7 @@ type
     de_BufMemType: IPTR;     // type of mem to allocate for buffers
     de_MaxTransfer: IPTR;    // Max number of bytes to transfer at a time
     de_Mask: IPTR;           // Address Mask to block out certain memory
-    de_BootPri: LongInt;     // Boot priority for autoboot
+    de_BootPri: PtrInt;      // Boot priority for autoboot
     de_DosType: IPTR;        // ASCII (HEX) string showing filesystem type
     de_Baud: IPTR;           // Baud rate for serial handler
     de_Control: IPTR;        // Control SmallInt for handler/filesystem
@@ -1175,7 +1179,7 @@ type
             nr_pad: array[0..2] of Byte; // PRIVATE
          end );
     end;
-    nr_Reserved: array[0..3] of LongWord; // PRIVATE! Set to 0 for now.
+    nr_Reserved: array[0..3] of PtrUInt;  // PRIVATE! Set to 0 for now.
     nr_MsgCount: LongWord;                // Number of unreplied messages.
     nr_Handler: PMsgPort;                 // Filesystem task/device. Used by EndNotify()
     end;
@@ -1187,7 +1191,7 @@ type
     nm_Code: Word;               // Code: NOTIFY_CODE
     nm_NReq: PNotifyRequest;     // The notify structure that was passed to StartNotify(). Read-Only
     nm_DoNotTouch,               // like it says!  For use by handlers
-    nm_DoNotTouch2 : LongWord;   // dito
+    nm_DoNotTouch2 : PtrUInt;    // dito
    end;
 
 
@@ -1499,9 +1503,9 @@ type
     dl_Root: PRootNode;      // Pointer to RootNode, described below }
 
     dl_GV: APTR;             // Pointer to BCPL global vector       }
-    dl_A2: LongInt;          // Private register dump of DOS        }
-    dl_A5: LongInt;
-    dl_A6: LongInt;
+    dl_A2: PtrInt;           // Private register dump of DOS        }
+    dl_A5: PtrInt;
+    dl_A6: PtrInt;
 
     dl_Errors: PErrorString;    // pointer to array of error msgs
     dl_TimeReq: PTimeRequest;   // private pointer to timer request

+ 41 - 1
packages/arosunits/src/datatypes.pas

@@ -373,6 +373,9 @@ type
     dtf_ContentsInfo: PFrameInfo;
     dtf_FrameInfo: PFrameInfo;    // Input
     dtf_SizeFrameInfo: LongWord;  // Output
+    {$ifdef CPU64}
+    pad: LongWord;
+    {$endif}
     dtf_FrameFlags: LongWord;
   end;
 
@@ -440,11 +443,29 @@ type
     MethodID: PtrUInt;
     dtd_RPort: PRastPort;
     dtd_Left: LongInt;
+    {$ifdef CPU64}
+    pad1: LongWord;
+    {$endif}
     dtd_Top: LongInt;
+    {$ifdef CPU64}
+    pad2: LongWord;
+    {$endif}
     dtd_Width: LongInt;
+    {$ifdef CPU64}
+    pad3: LongWord;
+    {$endif}
     dtd_Height: LongInt;
+    {$ifdef CPU64}
+    pad4: LongWord;
+    {$endif}
     dtd_TopHoriz: LongInt;
+    {$ifdef CPU64}
+    pad5: LongWord;
+    {$endif}
     dtd_TopVert: LongInt;
+    {$ifdef CPU64}
+    pad6: LongWord;
+    {$endif}
     dtd_AttrList: PTagItem; // Additional attributes
   end;
 
@@ -777,12 +798,13 @@ const
   ID_DLTA = Ord('D') shl 24 + Ord('L') shl 16 + Ord('T') shl 8 + Ord('A'); // DLTA
 
 type
+  {$ALIGN 2}
   PAnimHeader = ^TAnimHeader;
   TAnimHeader = record
     ah_Operation: Byte;
     ah_Mask: Byte;
     ah_Width: Word;
-    ah_Height: Word;    
+    ah_Height: Word;
     ah_Left: SmallInt;
     ah_Top: SmallInt;
     ah_AbsTime: LongWord;
@@ -811,13 +833,28 @@ type
   TadtFrame = record
     MethodID: PtrUInt;
     alf_TimeStamp: LongWord;
+    {$ifdef CPU64}
+    pad1: LongWord;
+    {$endif}
     alf_Frame: LongWord;
+    {$ifdef CPU64}
+    pad2: LongWord;
+    {$endif}
     alf_Duration: LongWord;
+    {$ifdef CPU64}
+    pad3: LongWord;
+    {$endif}
     alf_BitMap: PBitMap;
     alf_CMap: PColorMap;
     alf_Sample: PShortInt;
     alf_SampleLength: LongWord;
+    {$ifdef CPU64}
+    pad4: LongWord;
+    {$endif}
     alf_Period: LongWord;
+    {$ifdef CPU64}
+    pad5: LongWord;
+    {$endif}
     alf_UserData: APTR;
   end;
 
@@ -843,6 +880,9 @@ type
   TadtStart = record
     MethodID: PtrUInt;
     asa_Frame: LongWord;
+    {$ifdef CPU64}
+    pad1: LongWord;
+    {$endif}
   end;
 
 function SDTM_ISSTEREO(SampleType: LongWord): Boolean; inline;

+ 1 - 1
packages/arosunits/src/diskfont.pas

@@ -62,7 +62,7 @@ type
     dfh_DF: TNode;
     dfh_FileID: Word;
     dfh_Revision: Word;
-    dfh_Segment: Longint;
+    dfh_Segment: BPTR;
     dfh_Name: array [0..MAXFONTNAME-1] of Char;
     dfh_TF: TTextFont;
   end;

+ 6 - 3
packages/arosunits/src/exec.pas

@@ -1084,16 +1084,19 @@ type
     ex_EClockFrequency,         // (readable)
     ex_CacheControl,            // Private to CacheControl calls
     ex_TaskID: ULONG;           // Next available task ID
-    ex_Reserved1: array[0..4] of ULONG;
+    ex_Reserved1: array[0..4] of IPTR;
     ex_MMULock: Pointer;        // private
-    ex_Reserved2: array[0..1] of ULONG;
+    ex_Reserved2: array[0..1] of IPTR;
     ex_DebugFlags: ULONG;
     { The following list and data element are used
       exec's low memory handler...}
-    ex_MemHandlers   : tMinList; // The handler list
+    ex_MemHandlers   : TMinList; // The handler list
     ex_MemHandler    : Pointer;  // Private! handler pointer
 //***** Additional AROS fields **********************************
     DebugArosBase    : PArosSupportBase;
+    {$ifdef CPU64}
+    lb_TaskResBase: PLibrary;
+    {$endif}
   end;
 
 { ***** Bit defines for AttnFlags (see above) ***************************** }

+ 1 - 1
packages/arosunits/src/iffparse.pas

@@ -31,7 +31,7 @@ const
 Type
        PIFFHandle = ^TIFFHandle;
        TIFFHandle = record
-        iff_Stream,
+        iff_Stream  : PtrUInt;
         iff_Flags   : LongWord;
         iff_Depth   : LongInt;      {  Depth of context stack.  }
         {  There are private fields hiding here.  }

+ 8 - 1
packages/arosunits/src/intuition.pas

@@ -1159,7 +1159,14 @@ type
     dri_CheckMark: PImage; // pointer to scaled checkmark image Will be nil if DRI_VERSION < 2
     dri_AmigaKey: PImage;  // pointer to scaled Amiga-key image Will be NULL if DRI_VERSION < 2
 
-    dri_Reserved: array[0..4] of LongWord; // avoid recompilation ;^)
+
+    {$ifdef AROS_ABIv1}
+    dri_Screen: PScreen;
+    dri_Prefs: APTR;
+    dri_Reserved: array[0..2] of IPTR; // avoid recompilation ;^)
+    {$else}
+    dri_Reserved: array[0..4] of IPTR; // avoid recompilation ;^)
+    {$endif}
   end;
 
 const

+ 66 - 3
packages/arosunits/src/mui.pas

@@ -151,7 +151,7 @@ const
 // Black box specification structures for images, pens, frames
 type
   TMUI_PenSpec = record
-    ps_buf: array[0..31] of char;
+    buf: array[0..31] of char;
   end;
   PMUI_PenSpec = ^TMUI_PenSpec;
 
@@ -1697,7 +1697,55 @@ type
     mad_Flags: LongWord;                  // see definitions below
     mad_Flags2: LongWord;
     // 40 bytes up to here
-    // The following data is private
+    // offset 40
+    mad_HorizWeight: Word;          // weight values for layout. default 100
+    mad_VertWeight: Word;
+    // offset 44
+    // ?
+    // offset 48
+    mad_IDCMP: LongWord;            // IDCMP flags this listens to (for HandleInput)
+    // offset 52
+    mad_BackgroundSpec: STRPTR;
+    // offset 56
+    mad_FontPreset: IPTR;           // MUIV_Font_xxx or pointer to struct TextFont
+    // offset 76
+    mad_FrameTitle: STRPTR;         // for groups. Req. mad_Frame > 0
+    // Inner values at offset 88 in MUI:
+    mad_InnerLeft: ShortInt;         //* frame or hardcoded
+    mad_InnerTop: ShortInt;
+    mad_InnerRight: ShortInt;
+    mad_InnerBottom: ShortInt;
+    // offset 94
+    mad_FrameOBSOLETE: ShortInt;     //* frame setting -- private
+    // offset 95
+    mad_InputMode: ShortInt;         // how to react to events
+    // offset 96
+    mad_ControlChar: Char;           // key shortcut
+    mad_TitleHeightAdd: ShortInt;    // frame title height = mad_TitleBelow + mad_TitleBaseline
+    mad_TitleHeightBelow: ShortInt;  // height below frame
+    mad_TitleHeightAbove: ShortInt;  // height above frame
+// 100
+// ?
+    mad_Frame: IPTR;
+    mad_HardHeight: SmallInt;        // if harcoded dim (see flags)
+    mad_HardWidth: SmallInt;         // if harcoded dim (see flags)
+    mad_HardWidthTxt: STRPTR;
+    mad_HardHeightTxt: STRPTR;
+    // TODO: move SelBack in RenderInfo as it's common for all objects
+    mad_SelBack: APTR;               //* selected state background
+    mad_ShortHelp: STRPTR;           // bubble help
+    // there's an event handler at 114
+    mad_ehn: TMUI_EventHandlerNode;
+    mad_Timer: TMUI_InputHandlerNode;   // MUIA_Timer
+    mad_Timeval: LongWord;              // just to trigger notifications
+    mad_ccn: TMUI_EventHandlerNode;     // gross hack for control char
+    mad_ContextMenu: APTR;              // menu strip
+    mad_ClickX: LongInt;                // x position of the initial SELECTDOWN click
+    mad_ClickY: LongInt;                // y position of the intiial SELECTDOWN click
+    mad_ContextZMenu: APTR;
+    mad_hiehn: TMUI_EventHandlerNode;   // Eventhandler to simulate MUIM_HandleInput
+
+    mad_DisableCount: LongInt;          // counts number of disables
   end;
   PMUI_AreaData = ^TMUI_AreaData;
 
@@ -1822,11 +1870,26 @@ type
     lm_Type: PtrUInt;      // type of message (see defines below)
     lm_Children: PMinList;  // list of this groups children, traverse with NextObject()
     lm_MinMax: TMUI_MinMax; // results for MUILM_MINMAX
+    {$ifdef CPU64}
+    pad1: LongWord;
+    {$endif}
     lm_Layout: record       // size (and result) for MUILM_LAYOUT
-       Width: PtrInt;
+       Width: LongInt;
+       {$ifdef CPU64}
+       pad2: LongWord;
+       {$endif}
        Height: LongInt;
+       {$ifdef CPU64}
+       pad3: LongWord;
+       {$endif}
        priv5: LongWord;
+       {$ifdef CPU64}
+       pad4: LongWord;
+       {$endif}
        priv6: LongWord;
+       {$ifdef CPU64}
+       pad5: LongWord;
+       {$endif}
     end;
   end;
   PMUI_LayoutMsg = ^TMUI_LayoutMsg;

+ 1 - 1
packages/arosunits/src/workbench.pas

@@ -219,7 +219,7 @@ type
   TAppWindowDropZoneMsg = record
     adzm_RastPort: PRastPort; // RastPort to render into.
     adzm_DropZoneBox: TIBox;  // Limit your rendering to this area.
-    adzm_ID: LongWord;        // \ These come from straight
+    adzm_ID: IPTR;            // \ These come from straight
     adzm_UserData: IPTR;      // / from AddAppWindowDropZoneA().
     adzm_Action: LongInt;     // See below for a list of actions.
   end;