1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 #if defined _IO_EOF_SEEN
25 # if !defined _IO_UNBUFFERED
26 # define _IO_UNBUFFERED 0x2
27 # endif
28 # if !defined _IO_IN_BACKUP
29 # define _IO_IN_BACKUP 0x100
30 # endif
31 #endif
32
33
34
35 #if defined __NetBSD__
36
37 # include <sys/param.h>
38 #endif
39
40 #include <errno.h>
41
42 #if defined __sferror || defined __DragonFly__ || defined __ANDROID__
43
44
45 # if defined __DragonFly__
46
47 # define fp_ ((struct { struct __FILE_public pub; \
48 struct { unsigned char *_base; int _size; } _bf; \
49 void *cookie; \
50 void *_close; \
51 void *_read; \
52 void *_seek; \
53 void *_write; \
54 struct { unsigned char *_base; int _size; } _ub; \
55 int _ur; \
56 unsigned char _ubuf[3]; \
57 unsigned char _nbuf[1]; \
58 struct { unsigned char *_base; int _size; } _lb; \
59 int _blksize; \
60 fpos_t _offset; \
61 \
62 } *) fp)
63
64 # define _p pub._p
65 # define _flags pub._flags
66 # define _r pub._r
67 # define _w pub._w
68 # elif defined __ANDROID__
69 # ifdef __LP64__
70 # define _gl_flags_file_t int
71 # else
72 # define _gl_flags_file_t short
73 # endif
74 # ifdef __LP64__
75 # define _gl_file_offset_t int64_t
76 # else
77
78 # define _gl_file_offset_t __kernel_off_t
79 # endif
80
81
82
83
84
85
86 # define fp_ ((struct { unsigned char *_p; \
87 int _r; \
88 int _w; \
89 _gl_flags_file_t _flags; \
90 _gl_flags_file_t _file; \
91 struct { unsigned char *_base; size_t _size; } _bf; \
92 int _lbfsize; \
93 void *_cookie; \
94 void *_close; \
95 void *_read; \
96 void *_seek; \
97 void *_write; \
98 struct { unsigned char *_base; size_t _size; } _ext; \
99 unsigned char *_up; \
100 int _ur; \
101 unsigned char _ubuf[3]; \
102 unsigned char _nbuf[1]; \
103 struct { unsigned char *_base; size_t _size; } _lb; \
104 int _blksize; \
105 _gl_file_offset_t _offset; \
106 \
107 } *) fp)
108 # else
109 # define fp_ fp
110 # endif
111
112 # if (defined __NetBSD__ && __NetBSD_Version__ >= 105270000) || defined __OpenBSD__ || defined __minix
113
114
115
116 struct __sfileext
117 {
118 struct __sbuf _ub;
119
120 };
121 # define fp_ub ((struct __sfileext *) fp->_ext._base)->_ub
122 # elif defined __ANDROID__
123 struct __sfileext
124 {
125 struct { unsigned char *_base; size_t _size; } _ub;
126
127 };
128 # define fp_ub ((struct __sfileext *) fp_->_ext._base)->_ub
129 # else
130 # define fp_ub fp_->_ub
131 # endif
132
133 # define HASUB(fp) (fp_ub._base != NULL)
134
135 # if defined __ANDROID__
136
137
138 # ifndef __SEOF
139 # define __SLBF 1
140 # define __SNBF 2
141 # define __SRD 4
142 # define __SWR 8
143 # define __SRW 0x10
144 # define __SEOF 0x20
145 # define __SERR 0x40
146 # endif
147 # ifndef __SOFF
148 # define __SOFF 0x1000
149 # endif
150 # endif
151
152 #endif
153
154
155
156
157 #ifdef __TANDEM
158 # ifndef _IOERR
159
160
161 # define _IOERR 0x40
162 # define _IOREAD 0x80
163 # define _IOWRT 0x4
164 # define _IORW 0x100
165 # endif
166 #endif
167
168 #if defined _IOERR
169
170 # if defined __sun && defined _LP64
171 # define fp_ ((struct { unsigned char *_ptr; \
172 unsigned char *_base; \
173 unsigned char *_end; \
174 long _cnt; \
175 int _file; \
176 unsigned int _flag; \
177 } *) fp)
178 # elif defined __VMS
179 # define fp_ ((struct _iobuf *) fp)
180 # else
181 # define fp_ fp
182 # endif
183
184 # if defined _SCO_DS || (defined __SCO_VERSION__ || defined __sysv5__)
185 # define _cnt __cnt
186 # define _ptr __ptr
187 # define _base __base
188 # define _flag __flag
189 # endif
190
191 #elif defined _WIN32 && ! defined __CYGWIN__
192
193
194 # define WINDOWS_OPAQUE_FILE
195
196 struct _gl_real_FILE
197 {
198
199
200 unsigned char *_ptr;
201 unsigned char *_base;
202 int _cnt;
203 int _flag;
204 int _file;
205 int _charbuf;
206 int _bufsiz;
207 };
208 # define fp_ ((struct _gl_real_FILE *) fp)
209
210
211
212 # define _IOREAD 0x1
213 # define _IOWRT 0x2
214 # define _IORW 0x4
215 # define _IOEOF 0x8
216 # define _IOERR 0x10
217
218 #endif