From ca05f7f43527cedd07b4a2c6d73436bab7968515 Mon Sep 17 00:00:00 2001 From: David Given Date: Thu, 21 Jan 2016 20:42:31 +0100 Subject: [PATCH] Undo binary-breaking struct _uzistat rearrangement. --- Kernel/syscall_fs.c | 7 +++---- Library/include/syscalls.h | 12 +++++------- 2 files changed, 8 insertions(+), 11 deletions(-) diff --git a/Kernel/syscall_fs.c b/Kernel/syscall_fs.c index ac868845..2c8056a7 100644 --- a/Kernel/syscall_fs.c +++ b/Kernel/syscall_fs.c @@ -134,10 +134,9 @@ arg_t _fstat(void) /* Utility for stat and fstat */ int stcpy(inoptr ino, char *buf) { - int err = uput((char *) &(ino->c_node.i_size), buf + 0, 5*4); - err |= uput((char *) &(ino->c_dev), buf + 5*4, 2*2); - err |= uput((char *) &(ino->c_node.i_mode), buf + 5*4 + 2*2, 4*2); - err |= uput((char *) &(ino->c_node.i_addr[0]), buf + 5*4 + 6*2, 1*2); + int err = uput((char *) &(ino->c_dev), buf, 12); + err |= uput((char *) &(ino->c_node.i_addr[0]), buf + 12, 2); + err |= uput((char *) &(ino->c_node.i_size), buf + 14, 16); return err; } diff --git a/Library/include/syscalls.h b/Library/include/syscalls.h index dd501eeb..3adde780 100644 --- a/Library/include/syscalls.h +++ b/Library/include/syscalls.h @@ -15,13 +15,6 @@ extern int syscall(int callno, ...); struct _uzistat { - /* For alignment reasons, arrange this structure with largest objects - * first. */ - uint32_t st_size; - uint32_t st_atime; - uint32_t st_mtime; - uint32_t st_ctime; - uint32_t st_timeh; /* Time high bytes */ int16_t st_dev; uint16_t st_ino; uint16_t st_mode; @@ -29,6 +22,11 @@ struct _uzistat uint16_t st_uid; uint16_t st_gid; uint16_t st_rdev; + uint32_t st_size; + uint32_t st_atime; + uint32_t st_mtime; + uint32_t st_ctime; + uint32_t st_timeh; /* Time high bytes */ }; struct _uzisysinfoblk { -- 2.34.1