fix struct stat layout linux arm64

This commit is contained in:
Laytan Laats
2023-12-06 17:17:45 +01:00
parent 31b1aef44e
commit a6aca5d6d1
+25
View File
@@ -263,6 +263,30 @@ Unix_File_Time :: struct {
nanoseconds: i64, nanoseconds: i64,
} }
when ODIN_ARCH == .arm64 {
OS_Stat :: struct {
device_id: u64, // ID of device containing file
serial: u64, // File serial number
mode: u32, // Mode of the file
nlink: u32, // Number of hard links
uid: u32, // User ID of the file's owner
gid: u32, // Group ID of the file's group
rdev: u64, // Device ID, if device
_padding: u64,
size: i64, // Size of the file, in bytes
block_size: i32, // Optimal blocksize for I/O
_padding_2: i32,
blocks: i64, // Number of 512-byte blocks allocated
last_access: Unix_File_Time, // Time of last access
modified: Unix_File_Time, // Time of last modification
status_change: Unix_File_Time, // Time of last status change
_reserve1,
_reserve2: i32,
}
#assert(size_of(OS_Stat) == 128)
} else {
OS_Stat :: struct { OS_Stat :: struct {
device_id: u64, // ID of device containing file device_id: u64, // ID of device containing file
serial: u64, // File serial number serial: u64, // File serial number
@@ -284,6 +308,7 @@ OS_Stat :: struct {
_reserve2, _reserve2,
_reserve3: i64, _reserve3: i64,
} }
}
// NOTE(laleksic, 2021-01-21): Comment and rename these to match OS_Stat above // NOTE(laleksic, 2021-01-21): Comment and rename these to match OS_Stat above
Dirent :: struct { Dirent :: struct {