1+ use { c_void, c_int, c_uint, c_double, size_t} ;
2+
13pub type in_addr_t = u32 ;
24pub type in_port_t = u16 ;
35pub type pthread_key_t = usize ;
@@ -6,6 +8,9 @@ pub type sa_family_t = u8;
68pub type socklen_t = usize ;
79pub type time_t = i64 ;
810
11+ pub enum FILE { }
12+ pub enum fpos_t { } // TODO: fill this out with a struct
13+
914s ! {
1015 pub struct addrinfo {
1116 pub ai_flags: :: c_int,
@@ -90,6 +95,140 @@ pub const SOCK_DGRAM: ::c_int = 128;
9095pub const SOCK_STREAM : :: c_int = 130 ;
9196
9297extern {
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+
93232 pub fn arc4random_buf ( buf : * const :: c_void , len : :: size_t ) ;
94233 pub fn freeaddrinfo ( res : * mut addrinfo ) ;
95234 pub fn gai_strerror ( errcode : :: c_int ) -> * const :: c_char ;
0 commit comments