Files
kaguya 9a9b91c940 user: implement mlibc as the libc, finally.
It's finally done..

Signed-off-by: kaguya <vpshinomiya@protonmail.com>
2026-05-02 03:31:49 -04:00

82 lines
2.0 KiB
C

#ifndef _ABIBITS_FCNTL_H
#define _ABIBITS_FCNTL_H
/* Flags supported by the kernel. */
#define O_ACCMODE (3 << 0)
#define O_RDONLY (1 << 0)
#define O_WRONLY (1 << 1)
#define O_RDWR (3 << 0)
#define O_APPEND (1 << 2)
#define O_CLOEXEC (1 << 3)
#define O_NOFOLLOW (1 << 4)
#define O_NONBLOCK (1 << 5)
#define O_CLOFORK (1 << 6)
/* Flags emulated by userland, we just have to make sure they dont overlap with */
/* kernel flags. */
#define O_CREAT (1 << 7)
#define O_EXCL (1 << 8)
#define O_TRUNC (1 << 9)
/* Stubbed flags, the value really doesnt matter as long as they dont overlap */
/* with usable ones. */
/* Implemented here as some software needs them to compile. */
#define O_SEARCH (1 << 10)
#define O_EXEC (1 << 11)
#define O_NOCTTY (1 << 12)
#define O_DSYNC (1 << 13)
#define O_RSYNC (1 << 14)
#define O_SYNC (1 << 15)
#define O_PATH (1 << 16)
#define O_DIRECTORY (1 << 17)
#define O_LARGEFILE (1 << 18)
#define O_NOATIME (1 << 19)
#define O_TMPFILE (1 << 20)
/* Fcntl flags. */
#define FD_CLOEXEC 1
#define FD_CLOFORK 2
#define F_DUPFD 1
#define F_DUPFD_CLOEXEC 2
#define F_GETFD 3
#define F_SETFD 4
#define F_GETFL 5
#define F_SETFL 6
#define F_GETPIPE_SZ 7
#define F_SETPIPE_SZ 8
#define F_GETLK 9
#define F_SETLK 10
#define F_SETLKW 11
#define F_RDLCK 1
#define F_UNLCK 2
#define F_WRLCK 3
/* Stubbed fcntl flags. */
#define F_GETOWN 10
#define F_SETOWN 11
#define F_SEAL_SHRINK 0x0002
#define F_SEAL_GROW 0x0004
#define F_SEAL_WRITE 0x0008
#define F_SEAL_SEAL 0x0010
#define F_ADD_SEALS 1033
#define F_GET_SEALS 1034
/* At flags. */
#define AT_REMOVEDIR 500
#define AT_EACCESS 512
#define AT_FDCWD (-100)
#define AT_EMPTY_PATH 1
#define AT_SYMLINK_FOLLOW 0
#define AT_SYMLINK_NOFOLLOW 2
#define POSIX_FADV_NORMAL 1
#define POSIX_FADV_SEQUENTIAL 2
#define POSIX_FADV_NOREUSE 3
#define POSIX_FADV_DONTNEED 4
#define POSIX_FADV_WILLNEED 5
#define POSIX_FADV_RANDOM 6
#endif /* _ABIBITS_FCNTL_H */