@@ -329,6 +329,8 @@ pub const TIOCGPKT = 0x80045438;
329
329
pub const TIOCGPTLCK = 0x80045439 ;
330
330
pub const TIOCGEXCL = 0x80045440 ;
331
331
332
+ pub const EPOLL_CLOEXEC = O_CLOEXEC ;
333
+
332
334
pub const EPOLL_CTL_ADD = 1 ;
333
335
pub const EPOLL_CTL_DEL = 2 ;
334
336
pub const EPOLL_CTL_MOD = 3 ;
@@ -751,22 +753,31 @@ pub fn fstat(fd: i32, stat_buf: &Stat) usize {
751
753
return arch .syscall2 (arch .SYS_fstat , usize (fd ), @ptrToInt (stat_buf ));
752
754
}
753
755
754
- pub const epoll_data = u64 ;
756
+ pub const epoll_data = extern union {
757
+ ptr : usize ,
758
+ fd : i32 ,
759
+ @"u32" : u32 ,
760
+ @"u64" : u64 ,
761
+ };
755
762
756
763
pub const epoll_event = extern struct {
757
764
events : u32 ,
758
- data : epoll_data
765
+ data : epoll_data ,
759
766
};
760
767
761
768
pub fn epoll_create () usize {
762
- return arch .syscall1 (arch .SYS_epoll_create , usize (1 ));
769
+ return epoll_create1 (0 );
770
+ }
771
+
772
+ pub fn epoll_create1 (flags : usize ) usize {
773
+ return arch .syscall1 (arch .SYS_epoll_create1 , flags );
763
774
}
764
775
765
776
pub fn epoll_ctl (epoll_fd : i32 , op : i32 , fd : i32 , ev : & epoll_event ) usize {
766
777
return arch .syscall4 (arch .SYS_epoll_ctl , usize (epoll_fd ), usize (op ), usize (fd ), @ptrToInt (ev ));
767
778
}
768
779
769
- pub fn epoll_wait (epoll_fd : i32 , events : & epoll_event , maxevents : i32 , timeout : i32 ) usize {
780
+ pub fn epoll_wait (epoll_fd : i32 , events : & epoll_event , maxevents : u32 , timeout : i32 ) usize {
770
781
return arch .syscall4 (arch .SYS_epoll_wait , usize (epoll_fd ), @ptrToInt (events ), usize (maxevents ), usize (timeout ));
771
782
}
772
783
0 commit comments