From f887d2f38b205237cbd03ce921aff7a79986e2ff Mon Sep 17 00:00:00 2001 From: Nathan Reiner Date: Sat, 11 Feb 2023 14:55:28 +0100 Subject: add mknod --- lib/sys/mknod.h | 13 +++++++++++++ lib/sys/types.h | 19 +++++++++++++++++++ 2 files changed, 32 insertions(+) create mode 100644 lib/sys/mknod.h create mode 100644 lib/sys/types.h (limited to 'lib/sys') diff --git a/lib/sys/mknod.h b/lib/sys/mknod.h new file mode 100644 index 0000000..b51c4ef --- /dev/null +++ b/lib/sys/mknod.h @@ -0,0 +1,13 @@ +#ifndef MKNOD_H +#define MKNOD_H + +#include "syscalls.h" + +#include "types.h" + +int mknod(const char *filename, mode_t mode, unsigned int dev) +{ + return syscall(MKNOD, filename, mode, dev); +} + +#endif diff --git a/lib/sys/types.h b/lib/sys/types.h new file mode 100644 index 0000000..0aafec5 --- /dev/null +++ b/lib/sys/types.h @@ -0,0 +1,19 @@ +#ifndef TYPES_H +#define TYPES_H + +#include "sizes.h" + +typedef u64 dev_t; +typedef u32 mode_t; + +static dev_t inline device(dev_t major, dev_t minor) +{ + dev_t dev; + dev = (((dev_t) (major & 0x00000fffu)) << 8); + dev |= (((dev_t) (major & 0xfffff000u)) << 32); + dev |= (((dev_t) (minor & 0x000000ffu)) << 0); + dev |= (((dev_t) (minor & 0xffffff00u)) << 12); + return dev; +} + +#endif -- cgit v1.2.3-70-g09d2