|
62 | 62 | pub dli_saddr: *mut ::c_void,
|
63 | 63 | }
|
64 | 64 |
|
| 65 | + pub struct epoll_event { |
| 66 | + pub events: u32, |
| 67 | + pub data: u64, |
| 68 | + _pad: u64, |
| 69 | + } |
| 70 | + |
65 | 71 | pub struct fd_set {
|
66 | 72 | fds_bits: [::c_ulong; ::FD_SETSIZE / ULONG_SIZE],
|
67 | 73 | }
|
@@ -398,6 +404,37 @@ extern {
|
398 | 404 | oldset: *mut ::sigset_t) -> ::c_int;
|
399 | 405 | }
|
400 | 406 |
|
| 407 | +// sys/epoll.h |
| 408 | +pub const EPOLL_CLOEXEC: ::c_int = 0x0100_0000; |
| 409 | +pub const EPOLLIN: ::c_int = 1; |
| 410 | +pub const EPOLLPRI: ::c_int = 0; |
| 411 | +pub const EPOLLOUT: ::c_int = 2; |
| 412 | +pub const EPOLLRDNORM: ::c_int = 0; |
| 413 | +pub const EPOLLNVAL: ::c_int = 0; |
| 414 | +pub const EPOLLRDBAND: ::c_int = 0; |
| 415 | +pub const EPOLLWRNORM: ::c_int = 0; |
| 416 | +pub const EPOLLWRBAND: ::c_int = 0; |
| 417 | +pub const EPOLLMSG: ::c_int = 0; |
| 418 | +pub const EPOLLERR: ::c_int = 0; |
| 419 | +pub const EPOLLHUP: ::c_int = 0; |
| 420 | +pub const EPOLLRDHUP: ::c_int = 0; |
| 421 | +pub const EPOLLEXCLUSIVE: ::c_int = 0; |
| 422 | +pub const EPOLLWAKEUP: ::c_int = 0; |
| 423 | +pub const EPOLLONESHOT: ::c_int = 0; |
| 424 | +pub const EPOLLET: ::c_int = 0; |
| 425 | +extern { |
| 426 | + pub fn epoll_create(size: ::c_int) -> ::c_int; |
| 427 | + pub fn epoll_create1(flags: ::c_int) -> ::c_int; |
| 428 | + pub fn epoll_wait(epfd: ::c_int, |
| 429 | + events: *mut ::epoll_event, |
| 430 | + maxevents: ::c_int, |
| 431 | + timeout: ::c_int) -> ::c_int; |
| 432 | + pub fn epoll_ctl(epfd: ::c_int, |
| 433 | + op: ::c_int, |
| 434 | + fd: ::c_int, |
| 435 | + event: *mut ::epoll_event) -> ::c_int; |
| 436 | +} |
| 437 | + |
401 | 438 | // sys/stat.h
|
402 | 439 | pub const S_IFMT: ::c_int = 0o0_170_000;
|
403 | 440 | pub const S_IFDIR: ::c_int = 0o040_000;
|
|
0 commit comments