diff options
Diffstat (limited to 'lib/sys')
| -rw-r--r-- | lib/sys/mknod.h | 13 | ||||
| -rw-r--r-- | lib/sys/types.h | 19 |
2 files changed, 32 insertions, 0 deletions
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 |