1
+ use { c_void, c_int, c_uint, c_double, size_t} ;
2
+
1
3
pub type in_addr_t = u32 ;
2
4
pub type in_port_t = u16 ;
3
5
pub type pthread_key_t = usize ;
@@ -6,6 +8,9 @@ pub type sa_family_t = u8;
6
8
pub type socklen_t = usize ;
7
9
pub type time_t = i64 ;
8
10
11
+ pub enum FILE { }
12
+ pub enum fpos_t { } // TODO: fill this out with a struct
13
+
9
14
s ! {
10
15
pub struct addrinfo {
11
16
pub ai_flags: :: c_int,
@@ -90,6 +95,140 @@ pub const SOCK_DGRAM: ::c_int = 128;
90
95
pub const SOCK_STREAM : :: c_int = 130 ;
91
96
92
97
extern {
98
+ pub fn isalnum ( c : c_int ) -> c_int ;
99
+ pub fn isalpha ( c : c_int ) -> c_int ;
100
+ pub fn iscntrl ( c : c_int ) -> c_int ;
101
+ pub fn isdigit ( c : c_int ) -> c_int ;
102
+ pub fn isgraph ( c : c_int ) -> c_int ;
103
+ pub fn islower ( c : c_int ) -> c_int ;
104
+ pub fn isprint ( c : c_int ) -> c_int ;
105
+ pub fn ispunct ( c : c_int ) -> c_int ;
106
+ pub fn isspace ( c : c_int ) -> c_int ;
107
+ pub fn isupper ( c : c_int ) -> c_int ;
108
+ pub fn isxdigit ( c : c_int ) -> c_int ;
109
+ pub fn tolower ( c : c_int ) -> c_int ;
110
+ pub fn toupper ( c : c_int ) -> c_int ;
111
+
112
+ pub fn fopen ( filename : * const c_char , mode : * const c_char ) -> * mut FILE ;
113
+ pub fn freopen (
114
+ filename : * const c_char ,
115
+ mode : * const c_char ,
116
+ file : * mut FILE ,
117
+ ) -> * mut FILE ;
118
+ pub fn fflush ( file : * mut FILE ) -> c_int ;
119
+ pub fn fclose ( file : * mut FILE ) -> c_int ;
120
+ pub fn remove ( filename : * const c_char ) -> c_int ;
121
+ pub fn rename ( oldname : * const c_char , newname : * const c_char ) -> c_int ;
122
+ pub fn tmpfile ( ) -> * mut FILE ;
123
+ pub fn setvbuf (
124
+ stream : * mut FILE ,
125
+ buffer : * mut c_char ,
126
+ mode : c_int ,
127
+ size : size_t ,
128
+ ) -> c_int ;
129
+ pub fn setbuf ( stream : * mut FILE , buf : * mut c_char ) ;
130
+ pub fn getchar ( ) -> c_int ;
131
+ pub fn putchar ( c : c_int ) -> c_int ;
132
+ pub fn fgetc ( stream : * mut FILE ) -> c_int ;
133
+ pub fn fgets ( buf : * mut c_char , n : c_int , stream : * mut FILE ) -> * mut c_char ;
134
+ pub fn fputc ( c : c_int , stream : * mut FILE ) -> c_int ;
135
+ pub fn fputs ( s : * const c_char , stream : * mut FILE ) -> c_int ;
136
+ pub fn puts ( s : * const c_char ) -> c_int ;
137
+ pub fn ungetc ( c : c_int , stream : * mut FILE ) -> c_int ;
138
+ pub fn fread (
139
+ ptr : * mut c_void ,
140
+ size : size_t ,
141
+ nobj : size_t ,
142
+ stream : * mut FILE ,
143
+ ) -> size_t ;
144
+ pub fn fwrite (
145
+ ptr : * const c_void ,
146
+ size : size_t ,
147
+ nobj : size_t ,
148
+ stream : * mut FILE ,
149
+ ) -> size_t ;
150
+ pub fn fseek ( stream : * mut FILE , offset : c_long , whence : c_int ) -> c_int ;
151
+ pub fn ftell ( stream : * mut FILE ) -> c_long ;
152
+ pub fn rewind ( stream : * mut FILE ) ;
153
+ pub fn fgetpos ( stream : * mut FILE , ptr : * mut fpos_t ) -> c_int ;
154
+ pub fn fsetpos ( stream : * mut FILE , ptr : * const fpos_t ) -> c_int ;
155
+ pub fn feof ( stream : * mut FILE ) -> c_int ;
156
+ pub fn ferror ( stream : * mut FILE ) -> c_int ;
157
+ pub fn perror ( s : * const c_char ) ;
158
+ pub fn atoi ( s : * const c_char ) -> c_int ;
159
+ pub fn strtod ( s : * const c_char , endp : * mut * mut c_char ) -> c_double ;
160
+ pub fn strtol (
161
+ s : * const c_char ,
162
+ endp : * mut * mut c_char ,
163
+ base : c_int ,
164
+ ) -> c_long ;
165
+ pub fn strtoul (
166
+ s : * const c_char ,
167
+ endp : * mut * mut c_char ,
168
+ base : c_int ,
169
+ ) -> c_ulong ;
170
+ pub fn calloc ( nobj : size_t , size : size_t ) -> * mut c_void ;
171
+ pub fn malloc ( size : size_t ) -> * mut c_void ;
172
+ pub fn realloc ( p : * mut c_void , size : size_t ) -> * mut c_void ;
173
+ pub fn free ( p : * mut c_void ) ;
174
+ pub fn abort ( ) -> !;
175
+ pub fn exit ( status : c_int ) -> !;
176
+ pub fn _exit ( status : c_int ) -> !;
177
+ pub fn atexit ( cb : extern fn ( ) ) -> c_int ;
178
+ pub fn system ( s : * const c_char ) -> c_int ;
179
+ pub fn getenv ( s : * const c_char ) -> * mut c_char ;
180
+
181
+ pub fn strcpy ( dst : * mut c_char , src : * const c_char ) -> * mut c_char ;
182
+ pub fn strncpy (
183
+ dst : * mut c_char ,
184
+ src : * const c_char ,
185
+ n : size_t ,
186
+ ) -> * mut c_char ;
187
+ pub fn strcat ( s : * mut c_char , ct : * const c_char ) -> * mut c_char ;
188
+ pub fn strncat ( s : * mut c_char , ct : * const c_char , n : size_t )
189
+ -> * mut c_char ;
190
+ pub fn strcmp ( cs : * const c_char , ct : * const c_char ) -> c_int ;
191
+ pub fn strncmp ( cs : * const c_char , ct : * const c_char , n : size_t ) -> c_int ;
192
+ pub fn strcoll ( cs : * const c_char , ct : * const c_char ) -> c_int ;
193
+ pub fn strchr ( cs : * const c_char , c : c_int ) -> * mut c_char ;
194
+ pub fn strrchr ( cs : * const c_char , c : c_int ) -> * mut c_char ;
195
+ pub fn strspn ( cs : * const c_char , ct : * const c_char ) -> size_t ;
196
+ pub fn strcspn ( cs : * const c_char , ct : * const c_char ) -> size_t ;
197
+ pub fn strdup ( cs : * const c_char ) -> * mut c_char ;
198
+ pub fn strpbrk ( cs : * const c_char , ct : * const c_char ) -> * mut c_char ;
199
+ pub fn strstr ( cs : * const c_char , ct : * const c_char ) -> * mut c_char ;
200
+ pub fn strlen ( cs : * const c_char ) -> size_t ;
201
+ pub fn strnlen ( cs : * const c_char , maxlen : size_t ) -> size_t ;
202
+ pub fn strerror ( n : c_int ) -> * mut c_char ;
203
+ pub fn strtok ( s : * mut c_char , t : * const c_char ) -> * mut c_char ;
204
+ pub fn strxfrm ( s : * mut c_char , ct : * const c_char , n : size_t ) -> size_t ;
205
+ pub fn wcslen ( buf : * const wchar_t ) -> size_t ;
206
+ pub fn wcstombs (
207
+ dest : * mut c_char ,
208
+ src : * const wchar_t ,
209
+ n : size_t ,
210
+ ) -> :: size_t ;
211
+
212
+ pub fn memchr ( cx : * const c_void , c : c_int , n : size_t ) -> * mut c_void ;
213
+ pub fn memcmp ( cx : * const c_void , ct : * const c_void , n : size_t ) -> c_int ;
214
+ pub fn memcpy (
215
+ dest : * mut c_void ,
216
+ src : * const c_void ,
217
+ n : size_t ,
218
+ ) -> * mut c_void ;
219
+ pub fn memmove (
220
+ dest : * mut c_void ,
221
+ src : * const c_void ,
222
+ n : size_t ,
223
+ ) -> * mut c_void ;
224
+ pub fn memset ( dest : * mut c_void , c : c_int , n : size_t ) -> * mut c_void ;
225
+
226
+ pub fn abs ( i : c_int ) -> c_int ;
227
+ pub fn atof ( s : * const c_char ) -> c_double ;
228
+ pub fn labs ( i : c_long ) -> c_long ;
229
+ pub fn rand ( ) -> c_int ;
230
+ pub fn srand ( seed : c_uint ) ;
231
+
93
232
pub fn arc4random_buf ( buf : * const :: c_void , len : :: size_t ) ;
94
233
pub fn freeaddrinfo ( res : * mut addrinfo ) ;
95
234
pub fn gai_strerror ( errcode : :: c_int ) -> * const :: c_char ;
0 commit comments