本项止转自github官方arduino-esp32 传在这里仅为阅读源码方便
projectuser
2019-07-05 50148ccffe21ff54262064ec9f2245900eaf18aa
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
 
#ifndef    _SYS__DEFAULT_FCNTL_H_
#ifdef __cplusplus
extern "C" {
#endif
#define    _SYS__DEFAULT_FCNTL_H_
#include <_ansi.h>
#include <sys/cdefs.h>
#define    _FOPEN        (-1)    /* from sys/file.h, kernel use only */
#define    _FREAD        0x0001    /* read enabled */
#define    _FWRITE        0x0002    /* write enabled */
#define    _FAPPEND    0x0008    /* append (writes guaranteed at the end) */
#define    _FMARK        0x0010    /* internal; mark during gc() */
#define    _FDEFER        0x0020    /* internal; defer for next gc pass */
#define    _FASYNC        0x0040    /* signal pgrp when data ready */
#define    _FSHLOCK    0x0080    /* BSD flock() shared lock present */
#define    _FEXLOCK    0x0100    /* BSD flock() exclusive lock present */
#define    _FCREAT        0x0200    /* open with file create */
#define    _FTRUNC        0x0400    /* open with truncation */
#define    _FEXCL        0x0800    /* error on open if file exists */
#define    _FNBIO        0x1000    /* non blocking I/O (sys5 style) */
#define    _FSYNC        0x2000    /* do all writes synchronously */
#define    _FNONBLOCK    0x4000    /* non blocking I/O (POSIX style) */
#define    _FNDELAY    _FNONBLOCK    /* non blocking I/O (4.2 style) */
#define    _FNOCTTY    0x8000    /* don't assign a ctty on this open */
 
#define    O_ACCMODE    (O_RDONLY|O_WRONLY|O_RDWR)
 
/*
 * Flag values for open(2) and fcntl(2)
 * The kernel adds 1 to the open modes to turn it into some
 * combination of FREAD and FWRITE.
 */
#define    O_RDONLY    0        /* +1 == FREAD */
#define    O_WRONLY    1        /* +1 == FWRITE */
#define    O_RDWR        2        /* +1 == FREAD|FWRITE */
#define    O_APPEND    _FAPPEND
#define    O_CREAT        _FCREAT
#define    O_TRUNC        _FTRUNC
#define    O_EXCL        _FEXCL
#define O_SYNC        _FSYNC
/*    O_NDELAY    _FNDELAY     set in include/fcntl.h */
/*    O_NDELAY    _FNBIO         set in include/fcntl.h */
#define    O_NONBLOCK    _FNONBLOCK
#define    O_NOCTTY    _FNOCTTY
/* For machines which care - */
#if defined (__CYGWIN__)
#define _FBINARY        0x10000
#define _FTEXT          0x20000
#define _FNOINHERIT    0x40000
#define _FDIRECT        0x80000
#define _FNOFOLLOW      0x100000
#define _FDIRECTORY     0x200000
#define _FEXECSRCH      0x400000
 
#define O_BINARY    _FBINARY
#define O_TEXT        _FTEXT
#define O_CLOEXEC    _FNOINHERIT
#define O_DIRECT        _FDIRECT
#define O_NOFOLLOW      _FNOFOLLOW
#define O_DSYNC         _FSYNC
#define O_RSYNC         _FSYNC
#define O_DIRECTORY     _FDIRECTORY
#define O_EXEC          _FEXECSRCH
#define O_SEARCH        _FEXECSRCH
#endif
 
#ifndef    _POSIX_SOURCE
 
/*
 * Flags that work for fcntl(fd, F_SETFL, FXXXX)
 */
#define    FAPPEND        _FAPPEND
#define    FSYNC        _FSYNC
#define    FASYNC        _FASYNC
#define    FNBIO        _FNBIO
#define    FNONBIO        _FNONBLOCK    /* XXX fix to be NONBLOCK everywhere */
#define    FNDELAY        _FNDELAY
 
/*
 * Flags that are disallowed for fcntl's (FCNTLCANT);
 * used for opens, internal state, or locking.
 */
#define    FREAD        _FREAD
#define    FWRITE        _FWRITE
#define    FMARK        _FMARK
#define    FDEFER        _FDEFER
#define    FSHLOCK        _FSHLOCK
#define    FEXLOCK        _FEXLOCK
 
/*
 * The rest of the flags, used only for opens
 */
#define    FOPEN        _FOPEN
#define    FCREAT        _FCREAT
#define    FTRUNC        _FTRUNC
#define    FEXCL        _FEXCL
#define    FNOCTTY        _FNOCTTY
 
#endif    /* !_POSIX_SOURCE */
 
/* XXX close on exec request; must match UF_EXCLOSE in user.h */
#define    FD_CLOEXEC    1    /* posix */
 
/* fcntl(2) requests */
#define    F_DUPFD        0    /* Duplicate fildes */
#define    F_GETFD        1    /* Get fildes flags (close on exec) */
#define    F_SETFD        2    /* Set fildes flags (close on exec) */
#define    F_GETFL        3    /* Get file flags */
#define    F_SETFL        4    /* Set file flags */
#ifndef    _POSIX_SOURCE
#define    F_GETOWN     5    /* Get owner - for ASYNC */
#define    F_SETOWN     6    /* Set owner - for ASYNC */
#endif    /* !_POSIX_SOURCE */
#define    F_GETLK      7    /* Get record-locking information */
#define    F_SETLK      8    /* Set or Clear a record-lock (Non-Blocking) */
#define    F_SETLKW     9    /* Set or Clear a record-lock (Blocking) */
#ifndef    _POSIX_SOURCE
#define    F_RGETLK     10    /* Test a remote lock to see if it is blocked */
#define    F_RSETLK     11    /* Set or unlock a remote lock */
#define    F_CNVT         12    /* Convert a fhandle to an open fd */
#define    F_RSETLKW     13    /* Set or Clear remote record-lock(Blocking) */
#endif    /* !_POSIX_SOURCE */
#ifdef __CYGWIN__
#define    F_DUPFD_CLOEXEC    14    /* As F_DUPFD, but set close-on-exec flag */
#endif
 
/* fcntl(2) flags (l_type field of flock structure) */
#define    F_RDLCK        1    /* read lock */
#define    F_WRLCK        2    /* write lock */
#define    F_UNLCK        3    /* remove lock(s) */
#ifndef    _POSIX_SOURCE
#define    F_UNLKSYS    4    /* remove remote locks for a given system */
#endif    /* !_POSIX_SOURCE */
 
#if __BSD_VISIBLE || __POSIX_VISIBLE >= 200809 || defined(__CYGWIN__)
/* Special descriptor value to denote the cwd in calls to openat(2) etc. */
#define AT_FDCWD -2
 
/* Flag values for faccessat2) et al. */
#define AT_EACCESS              1
#define AT_SYMLINK_NOFOLLOW     2
#define AT_SYMLINK_FOLLOW       4
#define AT_REMOVEDIR            8
#endif
 
#if __BSD_VISIBLE
/* lock operations for flock(2) */
#define    LOCK_SH        0x01        /* shared file lock */
#define    LOCK_EX        0x02        /* exclusive file lock */
#define    LOCK_NB        0x04        /* don't block when locking */
#define    LOCK_UN        0x08        /* unlock file */
#endif
 
/*#include <sys/stdtypes.h>*/
 
#ifndef __CYGWIN__
/* file segment locking set data type - information passed to system by user */
struct flock {
    short    l_type;        /* F_RDLCK, F_WRLCK, or F_UNLCK */
    short    l_whence;    /* flag to choose starting offset */
    long    l_start;    /* relative offset, in bytes */
    long    l_len;        /* length, in bytes; 0 means lock to EOF */
    short    l_pid;        /* returned with F_GETLK */
    short    l_xxx;        /* reserved for future use */
};
#endif /* __CYGWIN__ */
 
#ifndef    _POSIX_SOURCE
/* extended file segment locking set data type */
struct eflock {
    short    l_type;        /* F_RDLCK, F_WRLCK, or F_UNLCK */
    short    l_whence;    /* flag to choose starting offset */
    long    l_start;    /* relative offset, in bytes */
    long    l_len;        /* length, in bytes; 0 means lock to EOF */
    short    l_pid;        /* returned with F_GETLK */
    short    l_xxx;        /* reserved for future use */
    long    l_rpid;        /* Remote process id wanting this lock */
    long    l_rsys;        /* Remote system id wanting this lock */
};
#endif    /* !_POSIX_SOURCE */
 
#include <sys/types.h>
#include <sys/stat.h>        /* sigh. for the mode bits for open/creat */
 
extern int open _PARAMS ((const char *, int, ...));
#if __BSD_VISIBLE || __POSIX_VISIBLE >= 200809 || defined(__CYGWIN__)
extern int openat _PARAMS ((int, const char *, int, ...));
#endif
extern int creat _PARAMS ((const char *, mode_t));
extern int fcntl _PARAMS ((int, int, ...));
#if __BSD_VISIBLE
extern int flock _PARAMS ((int, int));
#endif
#ifdef __CYGWIN__
#include <sys/time.h>
extern int futimesat _PARAMS ((int, const char *, const struct timeval *));
#endif
 
/* Provide _<systemcall> prototypes for functions provided by some versions
   of newlib.  */
#ifdef _COMPILING_NEWLIB
extern int _open _PARAMS ((const char *, int, ...));
extern int _fcntl _PARAMS ((int, int, ...));
#ifdef __LARGE64_FILES
extern int _open64 _PARAMS ((const char *, int, ...));
#endif
#endif
 
#ifdef __cplusplus
}
#endif
#endif    /* !_SYS__DEFAULT_FCNTL_H_ */