summaryrefslogtreecommitdiff
path: root/src/sys/event.rs
diff options
context:
space:
mode:
authorZac Berkowitz <zac.berkowitz@gmail.com>2017-02-26 21:28:00 +0000
committerBryant Mairs <bryant@mai.rs>2017-04-09 07:41:58 -0700
commit219671727fdb354a87d6bf453ced0cdb16bbd232 (patch)
tree9d248eba3ab21d9e359997dd1671c008a8538a47 /src/sys/event.rs
parenta859ee3c9396dfdb118fcc2c8ecc697e2d303467 (diff)
downloadnix-219671727fdb354a87d6bf453ced0cdb16bbd232.zip
Fixes nix-rust/nix#532
Diffstat (limited to 'src/sys/event.rs')
-rw-r--r--src/sys/event.rs14
1 files changed, 10 insertions, 4 deletions
diff --git a/src/sys/event.rs b/src/sys/event.rs
index 3e2a6d43..494c12dd 100644
--- a/src/sys/event.rs
+++ b/src/sys/event.rs
@@ -22,8 +22,14 @@ pub struct KEvent {
target_os = "dragonfly", target_os = "macos",
target_os = "ios"))]
type type_of_udata = *mut ::c_void;
+#[cfg(any(target_os = "openbsd", target_os = "freebsd",
+ target_os = "dragonfly", target_os = "macos",
+ target_os = "ios"))]
+type type_of_data = libc::intptr_t;
#[cfg(any(target_os = "netbsd"))]
type type_of_udata = intptr_t;
+#[cfg(any(target_os = "netbsd"))]
+type type_of_data = libc::int64_t;
#[cfg(not(target_os = "netbsd"))]
type type_of_event_filter = i16;
@@ -58,9 +64,9 @@ pub enum EventFilter {
}
#[cfg(target_os = "netbsd")]
-type type_of_event_filter = i32;
+type type_of_event_filter = libc::uint32_t;
#[cfg(target_os = "netbsd")]
-#[repr(u32)]
+#[repr(i32)]
#[derive(Clone, Copy, Debug, PartialEq)]
pub enum EventFilter {
EVFILT_READ = libc::EVFILT_READ,
@@ -216,7 +222,7 @@ impl KEvent {
filter: filter as type_of_event_filter,
flags: flags.bits(),
fflags: fflags.bits(),
- data: data,
+ data: data as type_of_data,
udata: udata as type_of_udata
} }
}
@@ -238,7 +244,7 @@ impl KEvent {
}
pub fn data(&self) -> intptr_t {
- self.kevent.data
+ self.kevent.data as intptr_t
}
pub fn udata(&self) -> intptr_t {