Browse Source

* fixed timespec and mcontext_t types for AIX 64 bit
* fixed a few more (harmless because in fields we don't use) errors in AIX
mcontext_t definition

git-svn-id: trunk@20978 -

Jonas Maebe 13 years ago
parent
commit
2ec79fd357
2 changed files with 27 additions and 6 deletions
  1. 1 1
      rtl/aix/ptypes.inc
  2. 26 5
      rtl/aix/sighndh.inc

+ 1 - 1
rtl/aix/ptypes.inc

@@ -146,7 +146,7 @@ Type
 
 
   timespec    =  record
   timespec    =  record
                  tv_sec   : time_t;
                  tv_sec   : time_t;
-                 tv_nsec  : suseconds_t;
+                 tv_nsec  : clong;
                 end;
                 end;
   ptimespec   = ^timespec;
   ptimespec   = ^timespec;
   TTimeSpec   = timespec;
   TTimeSpec   = timespec;

+ 26 - 5
rtl/aix/sighndh.inc

@@ -78,7 +78,7 @@ type
   end;
   end;
 
 
   __vmxreg_t = record
   __vmxreg_t = record
-    __v: array[0..3] of cint;
+    __v: array[0..3] of cuint;
   end;
   end;
 
 
   __vmx_context = record
   __vmx_context = record
@@ -96,13 +96,34 @@ type
     __u1: record
     __u1: record
       __vmx: __vmx_context
       __vmx: __vmx_context
     end;
     end;
-    __ukeys: cuint;
+    __ukeys: array[0..1] of cuint;
     __reserved: array[0..4096-sizeof(__vmx_context)-7*sizeof(cint)-1] of byte;
     __reserved: array[0..4096-sizeof(__vmx_context)-7*sizeof(cint)-1] of byte;
     __extctx_magic: cint;
     __extctx_magic: cint;
   end;
   end;
 
 
+{$ifdef cpu64}
+  __context64 = record
+    gpr: array[0..31] of culonglong;
+    msr: culonglong;
+    iar: culonglong;
+    lr: culonglong;
+    ctr: culonglong;
+    cr: cuint;
+    xer: cuint;
+    fpscr: cuint;
+    fpscrx: cuint;
+    except_: array[0..0] of culonglong;
+    fpr: array[0..31] of double;
+    fpeu: byte;
+    fpinfo: byte;
+    pad: array[0..1] of byte;
+    excp_type: cint;
+  end;
 
 
+  mcontext_t = __context64;
+{$else}
   mcontext_t = mstsave;
   mcontext_t = mstsave;
+{$endif}
 
 
   pucontext_t = ^tucontext_t;
   pucontext_t = ^tucontext_t;
   PSigContext = pucontext_t;
   PSigContext = pucontext_t;
@@ -111,10 +132,10 @@ type
     uc_sigmask: sigset_t;
     uc_sigmask: sigset_t;
     __sc_uerror: cint;
     __sc_uerror: cint;
     uc_mcontext: mcontext_t;
     uc_mcontext: mcontext_t;
-    uc_link: ^pucontext_t;
+    uc_link: pucontext_t;
     uc_stack: stack_t;
     uc_stack: stack_t;
-    __extctx: __extctx_t;
+    __extctx: p__extctx_t;
     __extctx_magic: cint;
     __extctx_magic: cint;
-    __pad: array[0..{$ifdef cpu64}1{$else}0{$endif}] of cint;
+    __pad: array[0..{$ifdef cpu64}0{$else}1{$endif}] of cint;
   end;
   end;