diff options
author | Anton Kling <anton@kling.gg> | 2023-11-22 00:47:55 +0100 |
---|---|---|
committer | Anton Kling <anton@kling.gg> | 2023-11-22 00:47:55 +0100 |
commit | f3c7d7fbdea1f2bac81909116ddb747a1f8abdf5 (patch) | |
tree | 62a1d998ce11bf4db4343f69dea4e8d231191e48 /include | |
parent | 24f81104f5ff9cb4ab7db766c53f77fe0e5b86cc (diff) |
Meta: Cleanup of header files such that they are partially shared
The /include directory contains definitons that both the kernel and libc
need to be in sync.
Diffstat (limited to 'include')
-rw-r--r-- | include/sys/stat.h | 39 | ||||
-rw-r--r-- | include/sys/types.h | 16 | ||||
-rw-r--r-- | include/typedefs.h | 11 |
3 files changed, 66 insertions, 0 deletions
diff --git a/include/sys/stat.h b/include/sys/stat.h new file mode 100644 index 0000000..8fc5f25 --- /dev/null +++ b/include/sys/stat.h @@ -0,0 +1,39 @@ +#ifndef SYS_STAT_H +#define SYS_STAT_H +#include <sys/types.h> +#include <time.h> + +#define STAT_REG 0 +#define STAT_DIR 1 + +struct stat { + dev_t st_dev; // Device ID of device containing file. + ino_t st_ino; // File serial number. + mode_t st_mode; // Mode of file (see below). + nlink_t st_nlink; // Number of hard links to the file. + uid_t st_uid; // User ID of file. + gid_t st_gid; // Group ID of file. + dev_t st_rdev; // Device ID (if file is character or block special). + + off_t st_size; // For regular files, the file size in bytes. + // For symbolic links, the length in bytes of the + // pathname contained in the symbolic link. + // For a shared memory object, the length in bytes. + // For a typed memory object, the length in bytes. + // For other file types, the use of this field is + // unspecified. + + struct timespec st_atim; // Last data access timestamp. + struct timespec st_mtim; // Last data modification timestamp. + struct timespec st_ctim; // Last file status change timestamp. + + blksize_t st_blksize; // A file system-specific preferred I/O block size + // for this object. In some file system types, this + // may vary from file to file. + + blkcnt_t st_blocks; // Number of blocks allocated for this object. +}; +#ifndef KERNEL +int stat(const char *path, struct stat *buf); +#endif +#endif diff --git a/include/sys/types.h b/include/sys/types.h new file mode 100644 index 0000000..26e11b6 --- /dev/null +++ b/include/sys/types.h @@ -0,0 +1,16 @@ +#ifndef TYPES_H +#define TYPES_H +#include <typedefs.h> +typedef int time_t; +typedef int pid_t; +typedef u16 dev_t; +typedef u16 uid_t; +typedef u16 ino_t; +typedef u16 mode_t; +typedef u16 nlink_t; +typedef i32 gid_t; +typedef u64 off_t; +typedef i64 blksize_t; +typedef i64 blkcnt_t; +typedef u32 suseconds_t; +#endif diff --git a/include/typedefs.h b/include/typedefs.h new file mode 100644 index 0000000..e290716 --- /dev/null +++ b/include/typedefs.h @@ -0,0 +1,11 @@ +#include <stdint.h> + +typedef uint8_t u8; +typedef uint16_t u16; +typedef uint32_t u32; +typedef uint64_t u64; + +typedef int8_t i8; +typedef int16_t i16; +typedef int32_t i32; +typedef int64_t i64; |