Przeglądaj źródła

* stat records differ too much: use stat include file

git-svn-id: trunk@5126 -
micha 19 lat temu
rodzic
commit
b14c83a7e1

+ 20 - 42
rtl/linux/arm/stat.inc

@@ -12,47 +12,25 @@
 
  **********************************************************************}
 
-  Stat = packed Record  // No unix typing because of differences
-    case byte of
-      0: (st_dev,
-          __pad1    : word;
-          st_ino    : cardinal;
-          st_mode,
-          nlink,
-          uid,
-          gid,
-          rdev,
-          __pad2    : word;
-          st_size,
-          st_blksize,
-          st_blocks,
-          st_atime,
-          __unused1,
-          st_mtime,
-          __unused2,
-          st_ctime,
-          __unused3,
-          __unused4,
-          __unused5  : cardinal;);
-      1: (dev,
-          __pad3    : word;
-          ino       : cardinal;
-          mode,
-          nlink_dummy,
-          uid_dummy,
-          gid_dummy,
-          rdev_dummy,
-          __pad4     : word;
-          size,
-          blksize,
-          blocks,
-          atime,
-          __unused1_dummy,
-          mtime,
-          __unused2_dummy,
-          ctime,
-          __unused3_dummy,
-          __unused4_dummy,
-          __unused5_dummy  : cardinal;);
+  Stat = packed record  // No unix typing because of differences
+    st_dev    : culonglong;
+    __pad0    : array[0..3] of cuchar;
+    __st_ino  : culong;
+    st_mode   : cuint;
+    st_nlink  : cuint;
+    st_uid    : culong;
+    st_gid    : culong;
+    st_rdev   : culonglong;
+    __pad3    : array[0..3] of cuchar;
+    st_size   : culonglong;
+    st_blksize: culong;
+    st_blocks : culonglong;
+    st_atime  : culong;
+    st_atime_nsec : culong;
+    st_mtime  : culong;
+    st_mtime_nsec : culong;
+    st_ctime  : culong;
+    st_ctime_nsec : culong;
+    st_ino    : culonglong;
   end;
 

+ 21 - 45
rtl/linux/i386/stat.inc

@@ -14,52 +14,28 @@
 
 {$ifndef FPC_USE_LIBC} // kernel record
 
-  Stat = Packed Record  // No unix typing because of differences
-                              // kernel <->libc
-    case byte of
-      0: (st_dev     : word;
-          pad1       : word;
-          st_ino     : longint;
-          st_mode,
-          st_nlink,
-          st_uid,
-          st_gid        : word;
-          st_rdev       : word;
-          pad2       : word;
-          st_size,
-          st_blksize,
-          st_blocks,
-          st_atime,
-          unused1,
-          st_mtime,
-          unused2,
-          st_ctime,
-          unused3,
-          unused4,
-          unused5   : longint;);
-      1: (
-          dev     : word;
-          pad1_dummy    : word;
-          ino     : longint;
-          mode,
-          nlink,
-          uid,
-          gid           : word;
-          rdev          : word;
-          pad2_dummy    : word;
-          size,
-          blksize,
-          blocks,
-          atime,
-          unused1_dummy,
-          mtime,
-          unused2_dummy,
-          ctime,
-          unused3_dummy,
-          unused4_dummy,
-          unused5_dummy : longint;
-         );
+  Stat = packed record  // No unix typing because of differences
+    st_dev    : culonglong;
+    __pad0    : array[0..3] of cuchar;
+    __st_ino  : culong;
+    st_mode   : cuint;
+    st_nlink  : cuint;
+    st_uid    : culong;
+    st_gid    : culong;
+    st_rdev   : culonglong;
+    __pad3    : array[0..3] of cuchar;
+    st_size   : culonglong;
+    st_blksize: culong;
+    st_blocks : culonglong;
+    st_atime  : culong;
+    st_atime_nsec : culong;
+    st_mtime  : culong;
+    st_mtime_nsec : cuint;
+    st_ctime  : culong;
+    st_ctime_nsec : culong;
+    st_ino    : culonglong;
   end;
+
 {$else}
 
 {$packrecords C}

+ 20 - 45
rtl/linux/m68k/stat.inc

@@ -12,50 +12,25 @@
 
  **********************************************************************}
 
-  Stat = Packed Record  // No unix typing because of differences
-                              // kernel <->libc
-    case byte of
-      0: (st_dev     : word;
-          pad1       : word;
-          st_ino     : longint;
-          st_mode,
-          nlink,
-          uid,
-          gid        : word;
-          rdev       : word;
-          pad2       : word;
-          st_size,
-          st_blksize,
-          st_blocks,
-          st_atime,
-          unused1,
-          st_mtime,
-          unused2,
-          st_ctime,
-          unused3,
-          unused4,
-          unused5   : longint;);
-      1: (
-          dev     : word;
-          pad1_dummy    : word;
-          ino     : longint;
-          mode,
-          nlink_dummy,
-          uid_dummy,
-          gid_dummy     : word;
-          rdev_dummy    : word;
-          pad2_dummy    : word;
-          size,
-          blksize,
-          blocks,
-          atime,
-          unused1_dummy,
-          mtime,
-          unused2_dummy,
-          ctime,
-          unused3_dummy,
-          unused4_dummy,
-          unused5_dummy : longint;
-         );
+  Stat = packed record  // No unix typing because of differences
+    st_dev    : culonglong;
+    __pad0    : array[0..1] of cuchar;
+    __st_ino  : culong;
+    st_mode   : cuint;
+    st_nlink  : cuint;
+    st_uid    : culong;
+    st_gid    : culong;
+    st_rdev   : culonglong;
+    __pad3    : array[0..1] of cuchar;
+    st_size   : clonglong;
+    st_blksize: culong;
+    st_blocks : culonglong;
+    st_atime  : culong;
+    st_atime_nsec : culong;
+    st_mtime  : culong;
+    st_mtime_nsec : culong;
+    st_ctime  : culong;
+    st_ctime_nsec : culong;
+    st_ino    : culonglong;
   end;
 

+ 0 - 51
rtl/linux/ostypes.inc

@@ -83,59 +83,8 @@ const
 
 type
 
-{$ifdef FPC_USE_LIBC}
-
 {$i stat.inc}
 
-{$else}
-
-{$if defined(CPUPOWERPC) or defined(CPUPOWERPC64) or defined(CPUSPARC) or defined(CPUSPARC64)}
-  {$define CLEAN_STAT64}
-{$endif}
-
-  { file characteristics services }
-  { this record is incorrect for alpha, frv, h8300, mips, parisc, v850, xtensa }
-   stat    = record
-        st_dev        : dev_t;             // inode's device        
-{$ifdef CLEAN_STAT64}
-        st_ino        : ino64_t;
-{$else}        
-        pad1          : array[0..3] of byte;
-        __st_ino      : ino_t;             // inode's number
-{$endif}        
-        st_mode       : mode_t;            // inode protection mode
-        st_nlink      : nlink_t;           // number of hard links
-        st_uid        : uid_t;             // user ID of the file's owner
-        st_gid        : gid_t;             // group ID of the file's group
-        st_rdev       : dev_t;             // device type
-{$ifdef CPUSPARC}
-        pad2          : array[0..7] of byte;
-{$else}
-{$ifdef CLEAN_STAT64}        
-        pad2          : cushort;
-{$else}
-        pad2          : array[0..3] of byte;
-{$endif}        
-{$endif}        
-        st_size       : off64_t;           // file size, in bytes
-        st_blksize    : blksize_t;         // optimal blocksize for I/O
-        st_blocks     : blkcnt64_t;        // blocks allocated for file
-        st_atime      : time_t;            // time of last access
-        st_atime_nsec : culong;
-        st_mtime      : time_t;            // time of last data modification
-        st_mtime_nsec : culong;
-        st_ctime      : time_t;            // time of last file status change
-        st_ctime_nsec : culong;
-{$ifdef CLEAN_STAT64}
-        pad4          : cuint;
-        pad5          : cuint;
-{$else}
-        st_ino        : ino64_t;
-{$endif}        
-   end;
-
-{$endif}
-
   TStat      = Stat;
   PStat      = ^Stat;
 

+ 21 - 40
rtl/linux/powerpc/stat.inc

@@ -24,46 +24,27 @@
 {$PACKRECORDS C}
 
 {$IFNDEF FPC_USE_LIBC}
-  stat = record
-    case byte of
-      0: (
-        st_dev     : cULong;   { actually dev_t, but this one is defined wrongly }
-        st_ino     : ino_t;
-        st_mode    : mode_t;
-        st_nlink   : nlink_t;
-        st_uid     : uid_t;
-        st_gid     : gid_t;
-        st_rdev    : cULong;   { actually dev_t, but this one is defined wrongly }
-        st_size    : off_t;
-        st_blksize : cULong;
-        st_blocks  : cULong;
-        st_atime,
-        __unused1,
-        st_mtime,
-        __unused2,
-        st_ctime,
-        __unused3,
-        __unused4,
-        __unused5  : cULong);
-      1: (
-        dev    : cULong;
-        ino    : ino_t;
-        mode   : mode_t;
-        nlink  : nlink_t;
-        uid    : uid_t;
-        gid    : gid_t;
-        rdev   : cULong;
-        size   : off_t;
-        blksize,
-        blocks,
-        atime,
-        __unused1_dummy,
-        mtime,
-        __unused2_dummy,
-        ctime,
-        __unused3_dummy,
-        __unused4_dummy,
-        __unused5_dummy  : cULong);
+
+  Stat = packed record  // No unix typing because of differences
+    st_dev    : culonglong;
+    st_ino    : culonglong;
+    st_mode   : cuint;
+    st_nlink  : cuint;
+    st_uid    : cuint;
+    st_gid    : cuint;
+    st_rdev   : culonglong;
+    __pad2    : cushort;
+    st_size   : clonglong;
+    st_blksize: cint;
+    st_blocks : clonglong;
+    st_atime  : cint;
+    st_atime_nsec : cuint;
+    st_mtime  : cint;
+    st_mtime_nsec : cuint;
+    st_ctime  : cint;
+    st_ctime_nsec : cuint;
+    __unused4 : cuint;
+    __unused5 : cuint;
   end;
 
 {$ELSE FPC_USE_LIBC}

+ 21 - 44
rtl/linux/sparc/stat.inc

@@ -12,49 +12,26 @@
 
  **********************************************************************}
 
-  Stat = packed Record  // No unix typing because of differences
-    case byte of
-      0: (st_dev    : word;
-          __pad1    : word;
-          st_ino    : cardinal;
-          st_mode   : word;
-          nlink     : smallint;
-          uid       : word;
-          gid       : word;
-          rdev      : word;
-          __pad2    : word;
-          st_size   : longint;
-          st_atime  : longint;
-          st_atime_nsecs : cardinal;
-          st_mtime  : longint;
-          st_mtime_nsecs : cardinal;
-          st_ctime  : longint;
-          st_ctime_nsecs : cardinal;
-          st_blksize : longint;
-          st_blocks  : longint;
-          __unused1,
-          __unused2  : cardinal;
-         );
-      1: (dev    : word;
-          __pad3 : word;
-          ino    : word;
-          mode   : cardinal;
-          nlink_dummy  : smallint;
-          uid_dummy,
-          gid_dummy,
-          rdev_dummy      : word;
-          __pad4 : word;
-          size   : longint;
-          atime,
-          __unused1_dummy,
-          mtime,
-          __unused2_dummy,
-          ctime,
-          __unused3_dummy,
-          blksize,
-          blocks            : longint;
-          __unused4_dummy,
-          __unused5_dummy  : cardinal;
-         );
+  Stat = packed record  // No unix typing because of differences
+    st_dev    : culonglong;
+    st_ino    : culonglong;
+    st_mode   : cuint;
+    st_nlink  : cuint;
+    st_uid    : cuint;
+    st_gid    : cuint;
+    st_rdev   : culonglong;
+    __pad3    : array[0..7] of cuchar;
+    st_size   : clonglong;
+    st_blksize: cuint;
+    __pad4    : array[0..7] of cuchar;
+    st_blocks : cuint;
+    st_atime  : cuint;
+    st_atime_nsec : cuint;
+    st_mtime  : cuint;
+    st_mtime_nsec : cuint;
+    st_ctime  : cuint;
+    st_ctime_nsec : cuint;
+    __unused4 : cuint;
+    __unused5 : cuint;
   end;
 

+ 21 - 44
rtl/linux/x86_64/stat.inc

@@ -14,50 +14,27 @@
 
 {$ifndef FPC_USE_LIBC} // kernel record
 
-  stat = packed record
-     case byte of
-      0: (
-    st_dev : qword;
-    st_ino : qword;
-    st_nlink : qword;
-
-    st_mode : dword;
-    st_uid : dword;
-    st_gid : dword;
-    __pad0 : dword;
-    st_rdev : qword;
-    st_size : int64;
-    st_blksize : int64;
-    st_blocks : int64;      { Number 512-byte blocks allocated. }
-
-    st_atime : qword;
-    __reserved0 : qword;    { reserved for atime.nanoseconds }
-    st_mtime : qword;
-    __reserved1 : qword;    { reserved for atime.nanoseconds }
-    st_ctime : qword;
-    __reserved2 : qword;    { reserved for atime.nanoseconds }
-    __unused : array[0..2] of int64;
-         );
-      1: (
-          dev,
-          ino,
-          nlink : qword;
-          mode,
-          uid,
-          gid           : dword;
-          pad1_dummy : dword;
-          rdev          : qword;
-          size,
-          blksize,
-          blocks    : int64;
-          atime,
-          unused1_dummy,
-          mtime,
-          unused2_dummy,
-          ctime,
-          unused3_dummy,
-          unused4_dummy,
-          unused5_dummy : qword;)
+  Stat = packed record  // No unix typing because of differences
+    st_dev    : culong;
+    st_ino    : culong;
+    st_nlink  : cuint;
+    st_mode   : cuint;
+    st_uid    : cuint;
+    st_gid    : cuint;
+    __pad0    : cuint;
+    st_rdev   : culonglong;
+    __pad2    : cushort;
+    st_size   : clong;
+    st_blksize: clong;
+    st_blocks : clong;
+    st_atime  : culong;
+    st_atime_nsec : culong;
+    st_mtime  : culong;
+    st_mtime_nsec : culong;
+    st_ctime  : culong;
+    st_ctime_nsec : culong;
+    __unused4 : cuint;
+    __unused5 : cuint;
   end;
 
 {$else}