OpenCores
URL https://opencores.org/ocsvn/hf-risc/hf-risc/trunk

Subversion Repositories hf-risc

[/] [hf-risc/] [trunk/] [tools/] [riscv-gnu-toolchain-master/] [linux-headers/] [include/] [asm-generic/] [fcntl.h] - Blame information for rev 13

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 13 serginhofr
#ifndef _ASM_GENERIC_FCNTL_H
2
#define _ASM_GENERIC_FCNTL_H
3
 
4
#include <linux/types.h>
5
 
6
/*
7
 * FMODE_EXEC is 0x20
8
 * FMODE_NONOTIFY is 0x1000000
9
 * These cannot be used by userspace O_* until internal and external open
10
 * flags are split.
11
 * -Eric Paris
12
 */
13
 
14
/*
15
 * When introducing new O_* bits, please check its uniqueness in fcntl_init().
16
 */
17
 
18
#define O_ACCMODE       00000003
19
#define O_RDONLY        00000000
20
#define O_WRONLY        00000001
21
#define O_RDWR          00000002
22
#ifndef O_CREAT
23
#define O_CREAT         00000100        /* not fcntl */
24
#endif
25
#ifndef O_EXCL
26
#define O_EXCL          00000200        /* not fcntl */
27
#endif
28
#ifndef O_NOCTTY
29
#define O_NOCTTY        00000400        /* not fcntl */
30
#endif
31
#ifndef O_TRUNC
32
#define O_TRUNC         00001000        /* not fcntl */
33
#endif
34
#ifndef O_APPEND
35
#define O_APPEND        00002000
36
#endif
37
#ifndef O_NONBLOCK
38
#define O_NONBLOCK      00004000
39
#endif
40
#ifndef O_DSYNC
41
#define O_DSYNC         00010000        /* used to be O_SYNC, see below */
42
#endif
43
#ifndef FASYNC
44
#define FASYNC          00020000        /* fcntl, for BSD compatibility */
45
#endif
46
#ifndef O_DIRECT
47
#define O_DIRECT        00040000        /* direct disk access hint */
48
#endif
49
#ifndef O_LARGEFILE
50
#define O_LARGEFILE     00100000
51
#endif
52
#ifndef O_DIRECTORY
53
#define O_DIRECTORY     00200000        /* must be a directory */
54
#endif
55
#ifndef O_NOFOLLOW
56
#define O_NOFOLLOW      00400000        /* don't follow links */
57
#endif
58
#ifndef O_NOATIME
59
#define O_NOATIME       01000000
60
#endif
61
#ifndef O_CLOEXEC
62
#define O_CLOEXEC       02000000        /* set close_on_exec */
63
#endif
64
 
65
/*
66
 * Before Linux 2.6.33 only O_DSYNC semantics were implemented, but using
67
 * the O_SYNC flag.  We continue to use the existing numerical value
68
 * for O_DSYNC semantics now, but using the correct symbolic name for it.
69
 * This new value is used to request true Posix O_SYNC semantics.  It is
70
 * defined in this strange way to make sure applications compiled against
71
 * new headers get at least O_DSYNC semantics on older kernels.
72
 *
73
 * This has the nice side-effect that we can simply test for O_DSYNC
74
 * wherever we do not care if O_DSYNC or O_SYNC is used.
75
 *
76
 * Note: __O_SYNC must never be used directly.
77
 */
78
#ifndef O_SYNC
79
#define __O_SYNC        04000000
80
#define O_SYNC          (__O_SYNC|O_DSYNC)
81
#endif
82
 
83
#ifndef O_PATH
84
#define O_PATH          010000000
85
#endif
86
 
87
#ifndef __O_TMPFILE
88
#define __O_TMPFILE     020000000
89
#endif
90
 
91
/* a horrid kludge trying to make sure that this will fail on old kernels */
92
#define O_TMPFILE (__O_TMPFILE | O_DIRECTORY)
93
#define O_TMPFILE_MASK (__O_TMPFILE | O_DIRECTORY | O_CREAT)      
94
 
95
#ifndef O_NDELAY
96
#define O_NDELAY        O_NONBLOCK
97
#endif
98
 
99
#define F_DUPFD         0        /* dup */
100
#define F_GETFD         1       /* get close_on_exec */
101
#define F_SETFD         2       /* set/clear close_on_exec */
102
#define F_GETFL         3       /* get file->f_flags */
103
#define F_SETFL         4       /* set file->f_flags */
104
#ifndef F_GETLK
105
#define F_GETLK         5
106
#define F_SETLK         6
107
#define F_SETLKW        7
108
#endif
109
#ifndef F_SETOWN
110
#define F_SETOWN        8       /* for sockets. */
111
#define F_GETOWN        9       /* for sockets. */
112
#endif
113
#ifndef F_SETSIG
114
#define F_SETSIG        10      /* for sockets. */
115
#define F_GETSIG        11      /* for sockets. */
116
#endif
117
 
118
#ifndef CONFIG_64BIT
119
#ifndef F_GETLK64
120
#define F_GETLK64       12      /*  using 'struct flock64' */
121
#define F_SETLK64       13
122
#define F_SETLKW64      14
123
#endif
124
#endif
125
 
126
#ifndef F_SETOWN_EX
127
#define F_SETOWN_EX     15
128
#define F_GETOWN_EX     16
129
#endif
130
 
131
#ifndef F_GETOWNER_UIDS
132
#define F_GETOWNER_UIDS 17
133
#endif
134
 
135
#define F_OWNER_TID     0
136
#define F_OWNER_PID     1
137
#define F_OWNER_PGRP    2
138
 
139
struct f_owner_ex {
140
        int     type;
141
        __kernel_pid_t  pid;
142
};
143
 
144
/* for F_[GET|SET]FL */
145
#define FD_CLOEXEC      1       /* actually anything with low bit set goes */
146
 
147
/* for posix fcntl() and lockf() */
148
#ifndef F_RDLCK
149
#define F_RDLCK         0
150
#define F_WRLCK         1
151
#define F_UNLCK         2
152
#endif
153
 
154
/* for old implementation of bsd flock () */
155
#ifndef F_EXLCK
156
#define F_EXLCK         4       /* or 3 */
157
#define F_SHLCK         8       /* or 4 */
158
#endif
159
 
160
/* operations for bsd flock(), also used by the kernel implementation */
161
#define LOCK_SH         1       /* shared lock */
162
#define LOCK_EX         2       /* exclusive lock */
163
#define LOCK_NB         4       /* or'd with one of the above to prevent
164
                                   blocking */
165
#define LOCK_UN         8       /* remove lock */
166
 
167
#define LOCK_MAND       32      /* This is a mandatory flock ... */
168
#define LOCK_READ       64      /* which allows concurrent read operations */
169
#define LOCK_WRITE      128     /* which allows concurrent write operations */
170
#define LOCK_RW         192     /* which allows concurrent read & write ops */
171
 
172
#define F_LINUX_SPECIFIC_BASE   1024
173
 
174
#ifndef HAVE_ARCH_STRUCT_FLOCK
175
#ifndef __ARCH_FLOCK_PAD
176
#define __ARCH_FLOCK_PAD
177
#endif
178
 
179
struct flock {
180
        short   l_type;
181
        short   l_whence;
182
        __kernel_off_t  l_start;
183
        __kernel_off_t  l_len;
184
        __kernel_pid_t  l_pid;
185
        __ARCH_FLOCK_PAD
186
};
187
#endif
188
 
189
#ifndef CONFIG_64BIT
190
 
191
#ifndef HAVE_ARCH_STRUCT_FLOCK64
192
#ifndef __ARCH_FLOCK64_PAD
193
#define __ARCH_FLOCK64_PAD
194
#endif
195
 
196
struct flock64 {
197
        short  l_type;
198
        short  l_whence;
199
        __kernel_loff_t l_start;
200
        __kernel_loff_t l_len;
201
        __kernel_pid_t  l_pid;
202
        __ARCH_FLOCK64_PAD
203
};
204
#endif
205
#endif /* !CONFIG_64BIT */
206
 
207
#endif /* _ASM_GENERIC_FCNTL_H */

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.