]>
git.proxmox.com Git - rustc.git/blob - vendor/libc/src/windows/mod.rs
1 //! Windows CRT definitions
5 pub type c_short
= i16;
6 pub type c_ushort
= u16;
9 pub type c_float
= f32;
10 pub type c_double
= f64;
11 pub type c_longlong
= i64;
12 pub type c_ulonglong
= u64;
13 pub type intmax_t
= i64;
14 pub type uintmax_t
= u64;
16 pub type size_t
= usize;
17 pub type ptrdiff_t
= isize;
18 pub type intptr_t
= isize;
19 pub type uintptr_t
= usize;
20 pub type ssize_t
= isize;
21 pub type sighandler_t
= usize;
24 pub type c_long
= i32;
25 pub type c_ulong
= u32;
26 pub type wchar_t
= u16;
28 pub type clock_t
= i32;
30 pub type errno_t
= ::c_int
;
33 if #[cfg(all(target_arch = "x86", target_env = "gnu"))] {
34 pub type time_t
= i32;
36 pub type time_t
= i64;
43 #[cfg_attr(feature = "extra_traits", derive(Debug))]
45 impl ::Copy
for timezone {}
46 impl ::Clone
for timezone
{
47 fn clone(&self) -> timezone
{
51 pub type time64_t
= i64;
53 pub type SOCKET
= ::uintptr_t
;
56 // note this is the struct called stat64 in Windows. Not stat, nor stati64.
61 pub st_nlink
: ::c_short
,
62 pub st_uid
: ::c_short
,
63 pub st_gid
: ::c_short
,
66 pub st_atime
: time64_t
,
67 pub st_mtime
: time64_t
,
68 pub st_ctime
: time64_t
,
71 // note that this is called utimbuf64 in Windows
74 pub modtime
: time64_t
,
86 pub tm_isdst
: ::c_int
,
100 pub sa_family
: c_ushort
,
101 pub sa_data
: [c_char
; 14],
105 pub const INT_MIN
: c_int
= -2147483648;
106 pub const INT_MAX
: c_int
= 2147483647;
108 pub const EXIT_FAILURE
: ::c_int
= 1;
109 pub const EXIT_SUCCESS
: ::c_int
= 0;
110 pub const RAND_MAX
: ::c_int
= 32767;
111 pub const EOF
: ::c_int
= -1;
112 pub const SEEK_SET
: ::c_int
= 0;
113 pub const SEEK_CUR
: ::c_int
= 1;
114 pub const SEEK_END
: ::c_int
= 2;
115 pub const _IOFBF
: ::c_int
= 0;
116 pub const _IONBF
: ::c_int
= 4;
117 pub const _IOLBF
: ::c_int
= 64;
118 pub const BUFSIZ
: ::c_uint
= 512;
119 pub const FOPEN_MAX
: ::c_uint
= 20;
120 pub const FILENAME_MAX
: ::c_uint
= 260;
123 pub const O_RDONLY
: ::c_int
= 0x0000;
124 pub const O_WRONLY
: ::c_int
= 0x0001;
125 pub const O_RDWR
: ::c_int
= 0x0002;
126 pub const O_APPEND
: ::c_int
= 0x0008;
127 pub const O_CREAT
: ::c_int
= 0x0100;
128 pub const O_TRUNC
: ::c_int
= 0x0200;
129 pub const O_EXCL
: ::c_int
= 0x0400;
130 pub const O_TEXT
: ::c_int
= 0x4000;
131 pub const O_BINARY
: ::c_int
= 0x8000;
132 pub const _O_WTEXT
: ::c_int
= 0x10000;
133 pub const _O_U16TEXT
: ::c_int
= 0x20000;
134 pub const _O_U8TEXT
: ::c_int
= 0x40000;
135 pub const O_RAW
: ::c_int
= O_BINARY
;
136 pub const O_NOINHERIT
: ::c_int
= 0x0080;
137 pub const O_TEMPORARY
: ::c_int
= 0x0040;
138 pub const _O_SHORT_LIVED
: ::c_int
= 0x1000;
139 pub const _O_OBTAIN_DIR
: ::c_int
= 0x2000;
140 pub const O_SEQUENTIAL
: ::c_int
= 0x0020;
141 pub const O_RANDOM
: ::c_int
= 0x0010;
143 pub const S_IFCHR
: ::c_int
= 8192;
144 pub const S_IFDIR
: ::c_int
= 16384;
145 pub const S_IFREG
: ::c_int
= 32768;
146 pub const S_IFMT
: ::c_int
= 61440;
147 pub const S_IEXEC
: ::c_int
= 64;
148 pub const S_IWRITE
: ::c_int
= 128;
149 pub const S_IREAD
: ::c_int
= 256;
151 pub const LC_ALL
: ::c_int
= 0;
152 pub const LC_COLLATE
: ::c_int
= 1;
153 pub const LC_CTYPE
: ::c_int
= 2;
154 pub const LC_MONETARY
: ::c_int
= 3;
155 pub const LC_NUMERIC
: ::c_int
= 4;
156 pub const LC_TIME
: ::c_int
= 5;
158 pub const EPERM
: ::c_int
= 1;
159 pub const ENOENT
: ::c_int
= 2;
160 pub const ESRCH
: ::c_int
= 3;
161 pub const EINTR
: ::c_int
= 4;
162 pub const EIO
: ::c_int
= 5;
163 pub const ENXIO
: ::c_int
= 6;
164 pub const E2BIG
: ::c_int
= 7;
165 pub const ENOEXEC
: ::c_int
= 8;
166 pub const EBADF
: ::c_int
= 9;
167 pub const ECHILD
: ::c_int
= 10;
168 pub const EAGAIN
: ::c_int
= 11;
169 pub const ENOMEM
: ::c_int
= 12;
170 pub const EACCES
: ::c_int
= 13;
171 pub const EFAULT
: ::c_int
= 14;
172 pub const EBUSY
: ::c_int
= 16;
173 pub const EEXIST
: ::c_int
= 17;
174 pub const EXDEV
: ::c_int
= 18;
175 pub const ENODEV
: ::c_int
= 19;
176 pub const ENOTDIR
: ::c_int
= 20;
177 pub const EISDIR
: ::c_int
= 21;
178 pub const EINVAL
: ::c_int
= 22;
179 pub const ENFILE
: ::c_int
= 23;
180 pub const EMFILE
: ::c_int
= 24;
181 pub const ENOTTY
: ::c_int
= 25;
182 pub const EFBIG
: ::c_int
= 27;
183 pub const ENOSPC
: ::c_int
= 28;
184 pub const ESPIPE
: ::c_int
= 29;
185 pub const EROFS
: ::c_int
= 30;
186 pub const EMLINK
: ::c_int
= 31;
187 pub const EPIPE
: ::c_int
= 32;
188 pub const EDOM
: ::c_int
= 33;
189 pub const ERANGE
: ::c_int
= 34;
190 pub const EDEADLK
: ::c_int
= 36;
191 pub const EDEADLOCK
: ::c_int
= 36;
192 pub const ENAMETOOLONG
: ::c_int
= 38;
193 pub const ENOLCK
: ::c_int
= 39;
194 pub const ENOSYS
: ::c_int
= 40;
195 pub const ENOTEMPTY
: ::c_int
= 41;
196 pub const EILSEQ
: ::c_int
= 42;
197 pub const STRUNCATE
: ::c_int
= 80;
199 // POSIX Supplement (from errno.h)
200 pub const EADDRINUSE
: ::c_int
= 100;
201 pub const EADDRNOTAVAIL
: ::c_int
= 101;
202 pub const EAFNOSUPPORT
: ::c_int
= 102;
203 pub const EALREADY
: ::c_int
= 103;
204 pub const EBADMSG
: ::c_int
= 104;
205 pub const ECANCELED
: ::c_int
= 105;
206 pub const ECONNABORTED
: ::c_int
= 106;
207 pub const ECONNREFUSED
: ::c_int
= 107;
208 pub const ECONNRESET
: ::c_int
= 108;
209 pub const EDESTADDRREQ
: ::c_int
= 109;
210 pub const EHOSTUNREACH
: ::c_int
= 110;
211 pub const EIDRM
: ::c_int
= 111;
212 pub const EINPROGRESS
: ::c_int
= 112;
213 pub const EISCONN
: ::c_int
= 113;
214 pub const ELOOP
: ::c_int
= 114;
215 pub const EMSGSIZE
: ::c_int
= 115;
216 pub const ENETDOWN
: ::c_int
= 116;
217 pub const ENETRESET
: ::c_int
= 117;
218 pub const ENETUNREACH
: ::c_int
= 118;
219 pub const ENOBUFS
: ::c_int
= 119;
220 pub const ENODATA
: ::c_int
= 120;
221 pub const ENOLINK
: ::c_int
= 121;
222 pub const ENOMSG
: ::c_int
= 122;
223 pub const ENOPROTOOPT
: ::c_int
= 123;
224 pub const ENOSR
: ::c_int
= 124;
225 pub const ENOSTR
: ::c_int
= 125;
226 pub const ENOTCONN
: ::c_int
= 126;
227 pub const ENOTRECOVERABLE
: ::c_int
= 127;
228 pub const ENOTSOCK
: ::c_int
= 128;
229 pub const ENOTSUP
: ::c_int
= 129;
230 pub const EOPNOTSUPP
: ::c_int
= 130;
231 pub const EOVERFLOW
: ::c_int
= 132;
232 pub const EOWNERDEAD
: ::c_int
= 133;
233 pub const EPROTO
: ::c_int
= 134;
234 pub const EPROTONOSUPPORT
: ::c_int
= 135;
235 pub const EPROTOTYPE
: ::c_int
= 136;
236 pub const ETIME
: ::c_int
= 137;
237 pub const ETIMEDOUT
: ::c_int
= 138;
238 pub const ETXTBSY
: ::c_int
= 139;
239 pub const EWOULDBLOCK
: ::c_int
= 140;
242 pub const SIGINT
: ::c_int
= 2;
243 pub const SIGILL
: ::c_int
= 4;
244 pub const SIGFPE
: ::c_int
= 8;
245 pub const SIGSEGV
: ::c_int
= 11;
246 pub const SIGTERM
: ::c_int
= 15;
247 pub const SIGABRT
: ::c_int
= 22;
248 pub const NSIG
: ::c_int
= 23;
250 pub const SIG_ERR
: ::c_int
= -1;
251 pub const SIG_DFL
: ::sighandler_t
= 0;
252 pub const SIG_IGN
: ::sighandler_t
= 1;
253 pub const SIG_GET
: ::sighandler_t
= 2;
254 pub const SIG_SGE
: ::sighandler_t
= 3;
255 pub const SIG_ACK
: ::sighandler_t
= 4;
257 // inline comment below appeases style checker
258 #[cfg(all(target_env = "msvc", feature = "rustc-dep-of-std"))] // " if "
259 #[link(name = "msvcrt", cfg(not(target_feature = "crt-static")))]
260 #[link(name = "libcmt", cfg(target_feature = "crt-static"))]
263 #[cfg_attr(feature = "extra_traits", derive(Debug))]
265 impl ::Copy
for FILE {}
266 impl ::Clone
for FILE
{
267 fn clone(&self) -> FILE
{
271 #[cfg_attr(feature = "extra_traits", derive(Debug))]
272 pub enum fpos_t {}
// FIXME: fill this out with a struct
273 impl ::Copy
for fpos_t {}
274 impl ::Clone
for fpos_t
{
275 fn clone(&self) -> fpos_t
{
280 // Special handling for all print and scan type functions because of https://github.com/rust-lang/libc/issues/2860
282 if #[cfg(not(feature = "rustc-dep-of-std"))] {
284 all(windows
, target_env
= "msvc"),
285 link(name
= "legacy_stdio_definitions")
288 pub fn printf(format
: *const c_char
, ...) -> ::c_int
;
289 pub fn fprintf(stream
: *mut FILE
, format
: *const c_char
, ...) -> ::c_int
;
295 pub fn isalnum(c
: c_int
) -> c_int
;
296 pub fn isalpha(c
: c_int
) -> c_int
;
297 pub fn iscntrl(c
: c_int
) -> c_int
;
298 pub fn isdigit(c
: c_int
) -> c_int
;
299 pub fn isgraph(c
: c_int
) -> c_int
;
300 pub fn islower(c
: c_int
) -> c_int
;
301 pub fn isprint(c
: c_int
) -> c_int
;
302 pub fn ispunct(c
: c_int
) -> c_int
;
303 pub fn isspace(c
: c_int
) -> c_int
;
304 pub fn isupper(c
: c_int
) -> c_int
;
305 pub fn isxdigit(c
: c_int
) -> c_int
;
306 pub fn isblank(c
: c_int
) -> c_int
;
307 pub fn tolower(c
: c_int
) -> c_int
;
308 pub fn toupper(c
: c_int
) -> c_int
;
309 pub fn fopen(filename
: *const c_char
, mode
: *const c_char
) -> *mut FILE
;
310 pub fn freopen(filename
: *const c_char
, mode
: *const c_char
, file
: *mut FILE
) -> *mut FILE
;
311 pub fn fflush(file
: *mut FILE
) -> c_int
;
312 pub fn fclose(file
: *mut FILE
) -> c_int
;
313 pub fn remove(filename
: *const c_char
) -> c_int
;
314 pub fn rename(oldname
: *const c_char
, newname
: *const c_char
) -> c_int
;
315 pub fn tmpfile() -> *mut FILE
;
316 pub fn setvbuf(stream
: *mut FILE
, buffer
: *mut c_char
, mode
: c_int
, size
: size_t
) -> c_int
;
317 pub fn setbuf(stream
: *mut FILE
, buf
: *mut c_char
);
318 pub fn getchar() -> c_int
;
319 pub fn putchar(c
: c_int
) -> c_int
;
320 pub fn fgetc(stream
: *mut FILE
) -> c_int
;
321 pub fn fgets(buf
: *mut c_char
, n
: c_int
, stream
: *mut FILE
) -> *mut c_char
;
322 pub fn fputc(c
: c_int
, stream
: *mut FILE
) -> c_int
;
323 pub fn fputs(s
: *const c_char
, stream
: *mut FILE
) -> c_int
;
324 pub fn puts(s
: *const c_char
) -> c_int
;
325 pub fn ungetc(c
: c_int
, stream
: *mut FILE
) -> c_int
;
326 pub fn fread(ptr
: *mut c_void
, size
: size_t
, nobj
: size_t
, stream
: *mut FILE
) -> size_t
;
327 pub fn fwrite(ptr
: *const c_void
, size
: size_t
, nobj
: size_t
, stream
: *mut FILE
) -> size_t
;
328 pub fn fseek(stream
: *mut FILE
, offset
: c_long
, whence
: c_int
) -> c_int
;
329 pub fn ftell(stream
: *mut FILE
) -> c_long
;
330 pub fn rewind(stream
: *mut FILE
);
331 pub fn fgetpos(stream
: *mut FILE
, ptr
: *mut fpos_t
) -> c_int
;
332 pub fn fsetpos(stream
: *mut FILE
, ptr
: *const fpos_t
) -> c_int
;
333 pub fn feof(stream
: *mut FILE
) -> c_int
;
334 pub fn ferror(stream
: *mut FILE
) -> c_int
;
335 pub fn perror(s
: *const c_char
);
336 pub fn atof(s
: *const c_char
) -> c_double
;
337 pub fn atoi(s
: *const c_char
) -> c_int
;
338 pub fn atol(s
: *const c_char
) -> c_long
;
339 pub fn atoll(s
: *const c_char
) -> c_longlong
;
340 pub fn strtod(s
: *const c_char
, endp
: *mut *mut c_char
) -> c_double
;
341 pub fn strtof(s
: *const c_char
, endp
: *mut *mut c_char
) -> c_float
;
342 pub fn strtol(s
: *const c_char
, endp
: *mut *mut c_char
, base
: c_int
) -> c_long
;
343 pub fn strtoll(s
: *const c_char
, endp
: *mut *mut c_char
, base
: c_int
) -> c_longlong
;
344 pub fn strtoul(s
: *const c_char
, endp
: *mut *mut c_char
, base
: c_int
) -> c_ulong
;
345 pub fn strtoull(s
: *const c_char
, endp
: *mut *mut c_char
, base
: c_int
) -> c_ulonglong
;
346 pub fn calloc(nobj
: size_t
, size
: size_t
) -> *mut c_void
;
347 pub fn malloc(size
: size_t
) -> *mut c_void
;
348 pub fn _msize(p
: *mut c_void
) -> size_t
;
349 pub fn realloc(p
: *mut c_void
, size
: size_t
) -> *mut c_void
;
350 pub fn free(p
: *mut c_void
);
352 pub fn exit(status
: c_int
) -> !;
353 pub fn _exit(status
: c_int
) -> !;
354 pub fn atexit(cb
: extern "C" fn()) -> c_int
;
355 pub fn system(s
: *const c_char
) -> c_int
;
356 pub fn getenv(s
: *const c_char
) -> *mut c_char
;
358 pub fn strcpy(dst
: *mut c_char
, src
: *const c_char
) -> *mut c_char
;
359 pub fn strncpy(dst
: *mut c_char
, src
: *const c_char
, n
: size_t
) -> *mut c_char
;
360 pub fn strcat(s
: *mut c_char
, ct
: *const c_char
) -> *mut c_char
;
361 pub fn strncat(s
: *mut c_char
, ct
: *const c_char
, n
: size_t
) -> *mut c_char
;
362 pub fn strcmp(cs
: *const c_char
, ct
: *const c_char
) -> c_int
;
363 pub fn strncmp(cs
: *const c_char
, ct
: *const c_char
, n
: size_t
) -> c_int
;
364 pub fn strcoll(cs
: *const c_char
, ct
: *const c_char
) -> c_int
;
365 pub fn strchr(cs
: *const c_char
, c
: c_int
) -> *mut c_char
;
366 pub fn strrchr(cs
: *const c_char
, c
: c_int
) -> *mut c_char
;
367 pub fn strspn(cs
: *const c_char
, ct
: *const c_char
) -> size_t
;
368 pub fn strcspn(cs
: *const c_char
, ct
: *const c_char
) -> size_t
;
369 pub fn strdup(cs
: *const c_char
) -> *mut c_char
;
370 pub fn strpbrk(cs
: *const c_char
, ct
: *const c_char
) -> *mut c_char
;
371 pub fn strstr(cs
: *const c_char
, ct
: *const c_char
) -> *mut c_char
;
372 pub fn strlen(cs
: *const c_char
) -> size_t
;
373 pub fn strnlen(cs
: *const c_char
, maxlen
: size_t
) -> size_t
;
374 pub fn strerror(n
: c_int
) -> *mut c_char
;
375 pub fn strtok(s
: *mut c_char
, t
: *const c_char
) -> *mut c_char
;
376 pub fn strxfrm(s
: *mut c_char
, ct
: *const c_char
, n
: size_t
) -> size_t
;
377 pub fn wcslen(buf
: *const wchar_t
) -> size_t
;
378 pub fn wcstombs(dest
: *mut c_char
, src
: *const wchar_t
, n
: size_t
) -> ::size_t
;
380 pub fn memchr(cx
: *const c_void
, c
: c_int
, n
: size_t
) -> *mut c_void
;
381 pub fn memcmp(cx
: *const c_void
, ct
: *const c_void
, n
: size_t
) -> c_int
;
382 pub fn memcpy(dest
: *mut c_void
, src
: *const c_void
, n
: size_t
) -> *mut c_void
;
383 pub fn memmove(dest
: *mut c_void
, src
: *const c_void
, n
: size_t
) -> *mut c_void
;
384 pub fn memset(dest
: *mut c_void
, c
: c_int
, n
: size_t
) -> *mut c_void
;
386 pub fn abs(i
: c_int
) -> c_int
;
387 pub fn labs(i
: c_long
) -> c_long
;
388 pub fn rand() -> c_int
;
389 pub fn srand(seed
: c_uint
);
391 pub fn signal(signum
: c_int
, handler
: sighandler_t
) -> sighandler_t
;
392 pub fn raise(signum
: c_int
) -> c_int
;
394 #[link_name = "_gmtime64_s"]
395 pub fn gmtime_s(destTime
: *mut tm
, srcTime
: *const time_t
) -> ::c_int
;
396 #[link_name = "_localtime64_s"]
397 pub fn localtime_s(tmDest
: *mut tm
, sourceTime
: *const time_t
) -> ::errno_t
;
398 #[link_name = "_time64"]
399 pub fn time(destTime
: *mut time_t
) -> time_t
;
400 #[link_name = "_chmod"]
401 pub fn chmod(path
: *const c_char
, mode
: ::c_int
) -> ::c_int
;
402 #[link_name = "_wchmod"]
403 pub fn wchmod(path
: *const wchar_t
, mode
: ::c_int
) -> ::c_int
;
404 #[link_name = "_mkdir"]
405 pub fn mkdir(path
: *const c_char
) -> ::c_int
;
406 #[link_name = "_wrmdir"]
407 pub fn wrmdir(path
: *const wchar_t
) -> ::c_int
;
408 #[link_name = "_fstat64"]
409 pub fn fstat(fildes
: ::c_int
, buf
: *mut stat
) -> ::c_int
;
410 #[link_name = "_stat64"]
411 pub fn stat(path
: *const c_char
, buf
: *mut stat
) -> ::c_int
;
412 #[link_name = "_wstat64"]
413 pub fn wstat(path
: *const wchar_t
, buf
: *mut stat
) -> ::c_int
;
414 #[link_name = "_wutime64"]
415 pub fn wutime(file
: *const wchar_t
, buf
: *mut utimbuf
) -> ::c_int
;
416 #[link_name = "_popen"]
417 pub fn popen(command
: *const c_char
, mode
: *const c_char
) -> *mut ::FILE
;
418 #[link_name = "_pclose"]
419 pub fn pclose(stream
: *mut ::FILE
) -> ::c_int
;
420 #[link_name = "_fdopen"]
421 pub fn fdopen(fd
: ::c_int
, mode
: *const c_char
) -> *mut ::FILE
;
422 #[link_name = "_fileno"]
423 pub fn fileno(stream
: *mut ::FILE
) -> ::c_int
;
424 #[link_name = "_open"]
425 pub fn open(path
: *const c_char
, oflag
: ::c_int
, ...) -> ::c_int
;
426 #[link_name = "_wopen"]
427 pub fn wopen(path
: *const wchar_t
, oflag
: ::c_int
, ...) -> ::c_int
;
428 #[link_name = "_creat"]
429 pub fn creat(path
: *const c_char
, mode
: ::c_int
) -> ::c_int
;
430 #[link_name = "_access"]
431 pub fn access(path
: *const c_char
, amode
: ::c_int
) -> ::c_int
;
432 #[link_name = "_chdir"]
433 pub fn chdir(dir
: *const c_char
) -> ::c_int
;
434 #[link_name = "_close"]
435 pub fn close(fd
: ::c_int
) -> ::c_int
;
436 #[link_name = "_dup"]
437 pub fn dup(fd
: ::c_int
) -> ::c_int
;
438 #[link_name = "_dup2"]
439 pub fn dup2(src
: ::c_int
, dst
: ::c_int
) -> ::c_int
;
440 #[link_name = "_execl"]
441 pub fn execl(path
: *const c_char
, arg0
: *const c_char
, ...) -> intptr_t
;
442 #[link_name = "_wexecl"]
443 pub fn wexecl(path
: *const wchar_t
, arg0
: *const wchar_t
, ...) -> intptr_t
;
444 #[link_name = "_execle"]
445 pub fn execle(path
: *const c_char
, arg0
: *const c_char
, ...) -> intptr_t
;
446 #[link_name = "_wexecle"]
447 pub fn wexecle(path
: *const wchar_t
, arg0
: *const wchar_t
, ...) -> intptr_t
;
448 #[link_name = "_execlp"]
449 pub fn execlp(path
: *const c_char
, arg0
: *const c_char
, ...) -> intptr_t
;
450 #[link_name = "_wexeclp"]
451 pub fn wexeclp(path
: *const wchar_t
, arg0
: *const wchar_t
, ...) -> intptr_t
;
452 #[link_name = "_execlpe"]
453 pub fn execlpe(path
: *const c_char
, arg0
: *const c_char
, ...) -> intptr_t
;
454 #[link_name = "_wexeclpe"]
455 pub fn wexeclpe(path
: *const wchar_t
, arg0
: *const wchar_t
, ...) -> intptr_t
;
456 #[link_name = "_execv"]
457 pub fn execv(prog
: *const c_char
, argv
: *const *const c_char
) -> ::intptr_t
;
458 #[link_name = "_execve"]
461 argv
: *const *const c_char
,
462 envp
: *const *const c_char
,
464 #[link_name = "_execvp"]
465 pub fn execvp(c
: *const c_char
, argv
: *const *const c_char
) -> ::c_int
;
466 #[link_name = "_execvpe"]
469 argv
: *const *const c_char
,
470 envp
: *const *const c_char
,
472 #[link_name = "_wexecv"]
473 pub fn wexecv(prog
: *const wchar_t
, argv
: *const *const wchar_t
) -> ::intptr_t
;
474 #[link_name = "_wexecve"]
476 prog
: *const wchar_t
,
477 argv
: *const *const wchar_t
,
478 envp
: *const *const wchar_t
,
480 #[link_name = "_wexecvp"]
481 pub fn wexecvp(c
: *const wchar_t
, argv
: *const *const wchar_t
) -> ::intptr_t
;
482 #[link_name = "_wexecvpe"]
485 argv
: *const *const wchar_t
,
486 envp
: *const *const wchar_t
,
488 #[link_name = "_getcwd"]
489 pub fn getcwd(buf
: *mut c_char
, size
: ::c_int
) -> *mut c_char
;
490 #[link_name = "_getpid"]
491 pub fn getpid() -> ::c_int
;
492 #[link_name = "_isatty"]
493 pub fn isatty(fd
: ::c_int
) -> ::c_int
;
494 #[link_name = "_lseek"]
495 pub fn lseek(fd
: ::c_int
, offset
: c_long
, origin
: ::c_int
) -> c_long
;
496 #[link_name = "_lseeki64"]
497 pub fn lseek64(fd
: ::c_int
, offset
: c_longlong
, origin
: ::c_int
) -> c_longlong
;
498 #[link_name = "_pipe"]
499 pub fn pipe(fds
: *mut ::c_int
, psize
: ::c_uint
, textmode
: ::c_int
) -> ::c_int
;
500 #[link_name = "_read"]
501 pub fn read(fd
: ::c_int
, buf
: *mut ::c_void
, count
: ::c_uint
) -> ::c_int
;
502 #[link_name = "_rmdir"]
503 pub fn rmdir(path
: *const c_char
) -> ::c_int
;
504 #[link_name = "_unlink"]
505 pub fn unlink(c
: *const c_char
) -> ::c_int
;
506 #[link_name = "_write"]
507 pub fn write(fd
: ::c_int
, buf
: *const ::c_void
, count
: ::c_uint
) -> ::c_int
;
508 #[link_name = "_commit"]
509 pub fn commit(fd
: ::c_int
) -> ::c_int
;
510 #[link_name = "_get_osfhandle"]
511 pub fn get_osfhandle(fd
: ::c_int
) -> ::intptr_t
;
512 #[link_name = "_open_osfhandle"]
513 pub fn open_osfhandle(osfhandle
: ::intptr_t
, flags
: ::c_int
) -> ::c_int
;
514 pub fn setlocale(category
: ::c_int
, locale
: *const c_char
) -> *mut c_char
;
515 #[link_name = "_wsetlocale"]
516 pub fn wsetlocale(category
: ::c_int
, locale
: *const wchar_t
) -> *mut wchar_t
;
517 #[link_name = "_aligned_malloc"]
518 pub fn aligned_malloc(size
: size_t
, alignment
: size_t
) -> *mut c_void
;
519 #[link_name = "_aligned_free"]
520 pub fn aligned_free(ptr
: *mut ::c_void
);
521 #[link_name = "_putenv"]
522 pub fn putenv(envstring
: *const ::c_char
) -> ::c_int
;
523 #[link_name = "_wputenv"]
524 pub fn wputenv(envstring
: *const ::wchar_t
) -> ::c_int
;
525 #[link_name = "_putenv_s"]
526 pub fn putenv_s(envstring
: *const ::c_char
, value_string
: *const ::c_char
) -> ::errno_t
;
527 #[link_name = "_wputenv_s"]
528 pub fn wputenv_s(envstring
: *const ::wchar_t
, value_string
: *const ::wchar_t
) -> ::errno_t
;
532 pub fn listen(s
: SOCKET
, backlog
: ::c_int
) -> ::c_int
;
533 pub fn accept(s
: SOCKET
, addr
: *mut ::sockaddr
, addrlen
: *mut ::c_int
) -> SOCKET
;
534 pub fn bind(s
: SOCKET
, name
: *const ::sockaddr
, namelen
: ::c_int
) -> ::c_int
;
535 pub fn connect(s
: SOCKET
, name
: *const ::sockaddr
, namelen
: ::c_int
) -> ::c_int
;
536 pub fn getpeername(s
: SOCKET
, name
: *mut ::sockaddr
, nameln
: *mut ::c_int
) -> ::c_int
;
537 pub fn getsockname(s
: SOCKET
, name
: *mut ::sockaddr
, nameln
: *mut ::c_int
) -> ::c_int
;
542 optval
: *mut ::c_char
,
543 optlen
: *mut ::c_int
,
550 from
: *mut ::sockaddr
,
551 fromlen
: *mut ::c_int
,
555 buf
: *const ::c_char
,
558 to
: *const ::sockaddr
,
565 optval
: *const ::c_char
,
568 pub fn socket(af
: ::c_int
, socket_type
: ::c_int
, protocol
: ::c_int
) -> SOCKET
;
572 if #[cfg(libc_core_cvoid)] {
573 pub use ::ffi
::c_void
;
575 // Use repr(u8) as LLVM expects `void*` to be the same as `i8*` to help
576 // enable more optimization opportunities around it recognizing things
579 #[allow(missing_copy_implementations)]
580 #[allow(missing_debug_implementations)]
582 // Two dummy variants so the #[repr] attribute can be used.
592 if #[cfg(all(target_env = "gnu"))] {
594 pub use self::gnu
::*;
595 } else if #[cfg(all(target_env = "msvc"))] {
597 pub use self::msvc
::*;
599 // Unknown target_env