Ticket #1375: stdc.diff
File stdc.diff, 3.8 kB (added by Cyborg16, 15 years ago) |
---|
Correct stat_t for X86/X86_64, and small/large file support |
-
tango/stdc/posix/config.d
old new 14 14 15 15 version( linux ) 16 16 { 17 //version( none /* X86_64 */ ) 18 version(SMALLFILE) 17 version(SMALLFILE) // Note: makes no difference in X86_64 mode. 19 18 { 20 19 const bool __USE_LARGEFILE64 = false; 21 20 } -
tango/stdc/posix/sys/types.d
old new 38 38 { 39 39 static if( __USE_FILE_OFFSET64 ) 40 40 { 41 alias long blkcnt_t;42 alias ulong ino_t;43 alias long off_t;41 alias long off_t; // actually C header's off64_t in this mode 42 alias long blkcnt_t; // actually C header's blkcnt64_t in this mode 43 alias ulong ino64_t; 44 44 } 45 45 else 46 46 { 47 alias c_long off_t; 47 48 alias c_long blkcnt_t; 48 alias c_ulong ino_t;49 alias c_long off_t;50 49 } 51 alias c_long blksize_t;52 50 alias ulong dev_t; 53 alias uint gid_t;51 alias c_ulong ino_t; 54 52 alias uint mode_t; 55 53 alias c_ulong nlink_t; 54 alias uint uid_t; 55 alias uint gid_t; 56 alias c_long blksize_t; 56 57 alias int pid_t; 57 58 //size_t (defined in tango.stdc.stddef) 58 59 alias c_long ssize_t; 59 60 //time_t (defined in tango.stdc.time) 60 alias uint uid_t;61 61 } 62 62 else version( darwin ) 63 63 { -
tango/stdc/posix/sys/stat.d
old new 83 83 private alias ushort _pad_t; 84 84 } 85 85 86 struct stat_t86 align (4) struct stat_t 87 87 { 88 dev_t st_dev; 88 dev_t st_dev; /* Device. */ 89 version (X86_64) {} else { 89 90 _pad_t __pad1; 91 } 90 92 static if( __USE_FILE_OFFSET64 ) 91 93 { 92 ino_t __st_ino;94 ino_t __st_ino; /* 32bit file serial number. */ 93 95 } 94 96 else 95 97 { 96 ino_t st_ino; 98 ino_t st_ino; /* File serial number. */ 97 99 } 100 version (X86_64) { 101 nlink_t st_nlink; 98 102 mode_t st_mode; 99 nlink_t st_nlink; 100 uid_t st_uid; 101 gid_t st_gid; 103 } else { 104 mode_t st_mode; /* File mode. */ 105 nlink_t st_nlink; /* Link count. */ 106 } 107 uid_t st_uid; /* User ID of the file's owner. */ 108 gid_t st_gid; /* Group ID of the file's group.*/ 109 version (X86_64) { 110 int pad0; 102 111 dev_t st_rdev; 112 } else { 113 dev_t st_rdev; /* Device number, if device. */ 103 114 _pad_t __pad2; 104 off_t st_size; 105 blksize_t st_blksize; 106 blkcnt_t st_blocks; 115 } 116 off_t st_size; /* Size of file, in bytes. */ 117 blksize_t st_blksize; /* Optimal block size for I/O. */ 118 blkcnt_t st_blocks; /* Number 512-byte blocks allocated. */ 107 119 static if( false /*__USE_MISC*/ ) // true if _BSD_SOURCE || _SVID_SOURCE 108 120 { 109 121 timespec st_atim; … … 122 134 time_t st_ctime; 123 135 c_ulong st_ctimensec; 124 136 } 125 static if( __USE_FILE_OFFSET64 ) 137 version (X86_64) { 138 c_long[3] __unused; 139 } 140 else static if( __USE_FILE_OFFSET64 ) 126 141 { 127 ino _t st_ino;142 ino64_t st_ino; /* File serial number. */ 128 143 } 129 144 else 130 145 {