xref: /nrf52832-nimble/rt-thread/include/libc/libc_fcntl.h (revision 104654410c56c573564690304ae786df310c91fc)
1*10465441SEvalZero /*
2*10465441SEvalZero  * Copyright (c) 2006-2018, RT-Thread Development Team
3*10465441SEvalZero  *
4*10465441SEvalZero  * SPDX-License-Identifier: Apache-2.0
5*10465441SEvalZero  */
6*10465441SEvalZero 
7*10465441SEvalZero /*
8*10465441SEvalZero  * File      : libc_fcntl.h
9*10465441SEvalZero  *
10*10465441SEvalZero  * Change Logs:
11*10465441SEvalZero  * Date           Author       Notes
12*10465441SEvalZero  * 2018-02-07     Bernard      Add O_DIRECTORY definition in NEWLIB mode.
13*10465441SEvalZero  * 2018-02-09     Bernard      Add O_BINARY definition
14*10465441SEvalZero  */
15*10465441SEvalZero 
16*10465441SEvalZero #ifndef LIBC_FCNTL_H__
17*10465441SEvalZero #define LIBC_FCNTL_H__
18*10465441SEvalZero 
19*10465441SEvalZero #if defined(RT_USING_NEWLIB) || defined(_WIN32)
20*10465441SEvalZero #include <fcntl.h>
21*10465441SEvalZero 
22*10465441SEvalZero #ifndef O_NONBLOCK
23*10465441SEvalZero #define O_NONBLOCK   0x4000
24*10465441SEvalZero #endif
25*10465441SEvalZero 
26*10465441SEvalZero #if defined(_WIN32)
27*10465441SEvalZero #define O_ACCMODE   (_O_RDONLY | _O_WRONLY | _O_RDWR)
28*10465441SEvalZero #endif
29*10465441SEvalZero 
30*10465441SEvalZero #ifndef F_GETFL
31*10465441SEvalZero #define F_GETFL  3
32*10465441SEvalZero #endif
33*10465441SEvalZero #ifndef F_SETFL
34*10465441SEvalZero #define F_SETFL  4
35*10465441SEvalZero #endif
36*10465441SEvalZero 
37*10465441SEvalZero #ifndef O_DIRECTORY
38*10465441SEvalZero #define O_DIRECTORY 0x200000
39*10465441SEvalZero #endif
40*10465441SEvalZero 
41*10465441SEvalZero #ifndef O_BINARY
42*10465441SEvalZero #ifdef  _O_BINARY
43*10465441SEvalZero #define O_BINARY _O_BINARY
44*10465441SEvalZero #else
45*10465441SEvalZero #define O_BINARY	     0
46*10465441SEvalZero #endif
47*10465441SEvalZero #endif
48*10465441SEvalZero 
49*10465441SEvalZero #else
50*10465441SEvalZero #define O_RDONLY         00
51*10465441SEvalZero #define O_WRONLY         01
52*10465441SEvalZero #define O_RDWR           02
53*10465441SEvalZero 
54*10465441SEvalZero #define O_CREAT        0100
55*10465441SEvalZero #define O_EXCL         0200
56*10465441SEvalZero #define O_NOCTTY       0400
57*10465441SEvalZero #define O_TRUNC       01000
58*10465441SEvalZero #define O_APPEND      02000
59*10465441SEvalZero #define O_NONBLOCK    04000
60*10465441SEvalZero #define O_DSYNC      010000
61*10465441SEvalZero #define O_SYNC     04010000
62*10465441SEvalZero #define O_RSYNC    04010000
63*10465441SEvalZero #define O_BINARY    0100000
64*10465441SEvalZero #define O_DIRECTORY 0200000
65*10465441SEvalZero #define O_NOFOLLOW  0400000
66*10465441SEvalZero #define O_CLOEXEC  02000000
67*10465441SEvalZero 
68*10465441SEvalZero #define O_ASYNC      020000
69*10465441SEvalZero #define O_DIRECT     040000
70*10465441SEvalZero #define O_LARGEFILE 0100000
71*10465441SEvalZero #define O_NOATIME  01000000
72*10465441SEvalZero #define O_PATH    010000000
73*10465441SEvalZero #define O_TMPFILE 020200000
74*10465441SEvalZero #define O_NDELAY O_NONBLOCK
75*10465441SEvalZero 
76*10465441SEvalZero #define O_SEARCH  O_PATH
77*10465441SEvalZero #define O_EXEC    O_PATH
78*10465441SEvalZero 
79*10465441SEvalZero #define O_ACCMODE (03|O_SEARCH)
80*10465441SEvalZero 
81*10465441SEvalZero #define F_DUPFD  0
82*10465441SEvalZero #define F_GETFD  1
83*10465441SEvalZero #define F_SETFD  2
84*10465441SEvalZero #define F_GETFL  3
85*10465441SEvalZero #define F_SETFL  4
86*10465441SEvalZero 
87*10465441SEvalZero #define F_SETOWN 8
88*10465441SEvalZero #define F_GETOWN 9
89*10465441SEvalZero #define F_SETSIG 10
90*10465441SEvalZero #define F_GETSIG 11
91*10465441SEvalZero 
92*10465441SEvalZero #define F_GETLK 12
93*10465441SEvalZero #define F_SETLK 13
94*10465441SEvalZero #define F_SETLKW 14
95*10465441SEvalZero 
96*10465441SEvalZero #define F_SETOWN_EX 15
97*10465441SEvalZero #define F_GETOWN_EX 16
98*10465441SEvalZero 
99*10465441SEvalZero #define F_GETOWNER_UIDS 17
100*10465441SEvalZero #endif
101*10465441SEvalZero 
102*10465441SEvalZero #endif
103