From df84a3f5f0feded696603341d0e9f9ac0bad60cb Mon Sep 17 00:00:00 2001 From: Matheus Date: Tue, 27 Jun 2023 20:22:05 -0300 Subject: [PATCH] stat: fix rdev --- kernel-src/include/kernel/abi.h | 4 ++++ kernel-src/sys/syscalls/stat.c | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/kernel-src/include/kernel/abi.h b/kernel-src/include/kernel/abi.h index dabd9ba4..17ac8561 100644 --- a/kernel-src/include/kernel/abi.h +++ b/kernel-src/include/kernel/abi.h @@ -74,4 +74,8 @@ typedef struct { #define GETTYPE(m) (((m) >> 12) & 0xF) #define MAKETYPE(m) (((m) & 0xF) << 12) +#define TODEV(major,minor) (((major & 0xFFF) << 8) + (minor & 0xFF)) +#define MAJORDEV(dev) ((dev >> 8) & 0xFFF) +#define MINORDEV(dev) (dev & 0xFF) + #endif diff --git a/kernel-src/sys/syscalls/stat.c b/kernel-src/sys/syscalls/stat.c index 556f6209..fa78ddb4 100644 --- a/kernel-src/sys/syscalls/stat.c +++ b/kernel-src/sys/syscalls/stat.c @@ -12,8 +12,8 @@ static int dostat(vnode_t *vnode, stat_t *stat) { if (e) return e; - - // TODO dev rdev + stat->dev = 0; // TODO properly return this + stat->rdev = TODEV(attr.rdevmajor, attr.rdevminor); stat->ino = attr.inode; stat->nlink = attr.nlinks; stat->mode = attr.mode | MAKETYPE(vfs_getposixtype(attr.type));