blob: a6812c6634ab8c87ad810706ecfc5fab0e1f72ed [file] [log] [blame]
Elliott Hughes180edef2023-11-02 00:08:05 +00001/*
2 * This file is auto-generated. Modifications will be lost.
3 *
4 * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
5 * for more information.
6 */
Ben Cheng655a7c02013-10-16 16:09:24 -07007#ifndef _ASM_GENERIC_FCNTL_H
8#define _ASM_GENERIC_FCNTL_H
Elliott Hughes09e77f32020-01-29 19:20:45 -08009#include <bits/flock64.h>
10#include <bits/flock.h>
Ben Cheng655a7c02013-10-16 16:09:24 -070011#include <linux/types.h>
12#define O_ACCMODE 00000003
Ben Cheng655a7c02013-10-16 16:09:24 -070013#define O_RDONLY 00000000
14#define O_WRONLY 00000001
15#define O_RDWR 00000002
16#ifndef O_CREAT
Ben Cheng655a7c02013-10-16 16:09:24 -070017#define O_CREAT 00000100
18#endif
19#ifndef O_EXCL
20#define O_EXCL 00000200
Ben Cheng655a7c02013-10-16 16:09:24 -070021#endif
22#ifndef O_NOCTTY
23#define O_NOCTTY 00000400
24#endif
Ben Cheng655a7c02013-10-16 16:09:24 -070025#ifndef O_TRUNC
26#define O_TRUNC 00001000
27#endif
28#ifndef O_APPEND
Ben Cheng655a7c02013-10-16 16:09:24 -070029#define O_APPEND 00002000
30#endif
31#ifndef O_NONBLOCK
32#define O_NONBLOCK 00004000
Ben Cheng655a7c02013-10-16 16:09:24 -070033#endif
34#ifndef O_DSYNC
35#define O_DSYNC 00010000
36#endif
Ben Cheng655a7c02013-10-16 16:09:24 -070037#ifndef FASYNC
38#define FASYNC 00020000
39#endif
40#ifndef O_DIRECT
Ben Cheng655a7c02013-10-16 16:09:24 -070041#define O_DIRECT 00040000
42#endif
43#ifndef O_LARGEFILE
44#define O_LARGEFILE 00100000
Ben Cheng655a7c02013-10-16 16:09:24 -070045#endif
46#ifndef O_DIRECTORY
47#define O_DIRECTORY 00200000
48#endif
Ben Cheng655a7c02013-10-16 16:09:24 -070049#ifndef O_NOFOLLOW
50#define O_NOFOLLOW 00400000
51#endif
52#ifndef O_NOATIME
Ben Cheng655a7c02013-10-16 16:09:24 -070053#define O_NOATIME 01000000
54#endif
55#ifndef O_CLOEXEC
56#define O_CLOEXEC 02000000
Ben Cheng655a7c02013-10-16 16:09:24 -070057#endif
58#ifndef O_SYNC
59#define __O_SYNC 04000000
Tao Baod7db5942015-01-28 10:07:51 -080060#define O_SYNC (__O_SYNC | O_DSYNC)
Ben Cheng655a7c02013-10-16 16:09:24 -070061#endif
62#ifndef O_PATH
63#define O_PATH 010000000
64#endif
Christopher Ferris38062f92014-07-09 15:33:25 -070065#ifndef __O_TMPFILE
66#define __O_TMPFILE 020000000
67#endif
68#define O_TMPFILE (__O_TMPFILE | O_DIRECTORY)
Ben Cheng655a7c02013-10-16 16:09:24 -070069#ifndef O_NDELAY
70#define O_NDELAY O_NONBLOCK
71#endif
Christopher Ferris38062f92014-07-09 15:33:25 -070072#define F_DUPFD 0
Ben Cheng655a7c02013-10-16 16:09:24 -070073#define F_GETFD 1
74#define F_SETFD 2
75#define F_GETFL 3
Christopher Ferris38062f92014-07-09 15:33:25 -070076#define F_SETFL 4
Ben Cheng655a7c02013-10-16 16:09:24 -070077#ifndef F_GETLK
78#define F_GETLK 5
79#define F_SETLK 6
Christopher Ferris38062f92014-07-09 15:33:25 -070080#define F_SETLKW 7
Ben Cheng655a7c02013-10-16 16:09:24 -070081#endif
82#ifndef F_SETOWN
83#define F_SETOWN 8
Christopher Ferris38062f92014-07-09 15:33:25 -070084#define F_GETOWN 9
Ben Cheng655a7c02013-10-16 16:09:24 -070085#endif
86#ifndef F_SETSIG
87#define F_SETSIG 10
Christopher Ferris38062f92014-07-09 15:33:25 -070088#define F_GETSIG 11
Ben Cheng655a7c02013-10-16 16:09:24 -070089#endif
Christopher Ferris80ae69d2022-08-02 16:32:21 -070090#if __BITS_PER_LONG == 32
Ben Cheng655a7c02013-10-16 16:09:24 -070091#ifndef F_GETLK64
Christopher Ferris38062f92014-07-09 15:33:25 -070092#define F_GETLK64 12
Elliott Hughes9195a252014-04-08 10:15:06 -070093#define F_SETLK64 13
Ben Cheng655a7c02013-10-16 16:09:24 -070094#define F_SETLKW64 14
95#endif
Christopher Ferris38062f92014-07-09 15:33:25 -070096#endif
Ben Cheng655a7c02013-10-16 16:09:24 -070097#ifndef F_SETOWN_EX
Ben Cheng655a7c02013-10-16 16:09:24 -070098#define F_SETOWN_EX 15
99#define F_GETOWN_EX 16
Christopher Ferris38062f92014-07-09 15:33:25 -0700100#endif
Ben Cheng655a7c02013-10-16 16:09:24 -0700101#ifndef F_GETOWNER_UIDS
Ben Cheng655a7c02013-10-16 16:09:24 -0700102#define F_GETOWNER_UIDS 17
103#endif
Christopher Ferrisba8d4f42014-09-03 19:56:49 -0700104#define F_OFD_GETLK 36
105#define F_OFD_SETLK 37
106#define F_OFD_SETLKW 38
Christopher Ferris38062f92014-07-09 15:33:25 -0700107#define F_OWNER_TID 0
Ben Cheng655a7c02013-10-16 16:09:24 -0700108#define F_OWNER_PID 1
Ben Cheng655a7c02013-10-16 16:09:24 -0700109#define F_OWNER_PGRP 2
110struct f_owner_ex {
Tao Baod7db5942015-01-28 10:07:51 -0800111 int type;
Tao Baod7db5942015-01-28 10:07:51 -0800112 __kernel_pid_t pid;
Ben Cheng655a7c02013-10-16 16:09:24 -0700113};
114#define FD_CLOEXEC 1
Christopher Ferris38062f92014-07-09 15:33:25 -0700115#ifndef F_RDLCK
Ben Cheng655a7c02013-10-16 16:09:24 -0700116#define F_RDLCK 0
Ben Cheng655a7c02013-10-16 16:09:24 -0700117#define F_WRLCK 1
118#define F_UNLCK 2
Christopher Ferris38062f92014-07-09 15:33:25 -0700119#endif
Ben Cheng655a7c02013-10-16 16:09:24 -0700120#ifndef F_EXLCK
Ben Cheng655a7c02013-10-16 16:09:24 -0700121#define F_EXLCK 4
122#define F_SHLCK 8
Christopher Ferris38062f92014-07-09 15:33:25 -0700123#endif
Ben Cheng655a7c02013-10-16 16:09:24 -0700124#define LOCK_SH 1
Ben Cheng655a7c02013-10-16 16:09:24 -0700125#define LOCK_EX 2
126#define LOCK_NB 4
Christopher Ferris38062f92014-07-09 15:33:25 -0700127#define LOCK_UN 8
Ben Cheng655a7c02013-10-16 16:09:24 -0700128#define LOCK_MAND 32
Ben Cheng655a7c02013-10-16 16:09:24 -0700129#define LOCK_READ 64
130#define LOCK_WRITE 128
Christopher Ferris38062f92014-07-09 15:33:25 -0700131#define LOCK_RW 192
Ben Cheng655a7c02013-10-16 16:09:24 -0700132#define F_LINUX_SPECIFIC_BASE 1024
Ben Cheng655a7c02013-10-16 16:09:24 -0700133#ifndef HAVE_ARCH_STRUCT_FLOCK
Christopher Ferrisba8d4f42014-09-03 19:56:49 -0700134#endif
135#endif