Serenity Operating System
1/*
2 * Copyright (c) 2018-2021, Andreas Kling <kling@serenityos.org>
3 *
4 * SPDX-License-Identifier: BSD-2-Clause
5 */
6
7#pragma once
8
9#include <Kernel/API/POSIX/sys/types.h>
10
11#ifdef __cplusplus
12extern "C" {
13#endif
14
15#define F_DUPFD 0
16#define F_GETFD 1
17#define F_SETFD 2
18#define F_GETFL 3
19#define F_SETFL 4
20#define F_ISTTY 5
21#define F_GETLK 6
22#define F_SETLK 7
23#define F_SETLKW 8
24#define F_DUPFD_CLOEXEC 9
25
26#define FD_CLOEXEC 1
27
28#define O_RDONLY (1 << 0)
29#define O_WRONLY (1 << 1)
30#define O_RDWR (O_RDONLY | O_WRONLY)
31#define O_ACCMODE (O_RDONLY | O_WRONLY)
32#define O_EXEC (1 << 2)
33#define O_CREAT (1 << 3)
34#define O_EXCL (1 << 4)
35#define O_NOCTTY (1 << 5)
36#define O_TRUNC (1 << 6)
37#define O_APPEND (1 << 7)
38#define O_NONBLOCK (1 << 8)
39#define O_DIRECTORY (1 << 9)
40#define O_NOFOLLOW (1 << 10)
41#define O_CLOEXEC (1 << 11)
42#define O_DIRECT (1 << 12)
43#define O_SYNC (1 << 13)
44
45#define F_RDLCK ((short)0)
46#define F_WRLCK ((short)1)
47#define F_UNLCK ((short)2)
48
49#define AT_FDCWD -100
50#define AT_SYMLINK_NOFOLLOW 0x100
51#define AT_REMOVEDIR 0x200
52#define AT_EACCESS 0x400
53
54struct flock {
55 short l_type;
56 short l_whence;
57 off_t l_start;
58 off_t l_len;
59 pid_t l_pid;
60};
61
62#ifdef __cplusplus
63}
64#endif