summaryrefslogtreecommitdiff
path: root/src/sys/signal.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/sys/signal.rs')
-rw-r--r--src/sys/signal.rs6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/sys/signal.rs b/src/sys/signal.rs
index 15205502..731eecd0 100644
--- a/src/sys/signal.rs
+++ b/src/sys/signal.rs
@@ -56,6 +56,7 @@ pub mod signal {
use libc;
bitflags!(
+ #[deriving(Copy)]
flags SockFlag: libc::c_ulong {
const SA_NOCLDSTOP = 0x00000001,
const SA_NOCLDWAIT = 0x00000002,
@@ -95,6 +96,7 @@ pub mod signal {
// actually a giant union. Currently we're only interested in these fields,
// however.
#[repr(C)]
+ #[deriving(Copy)]
pub struct siginfo {
si_signo: libc::c_int,
si_errno: libc::c_int,
@@ -105,6 +107,7 @@ pub mod signal {
}
#[repr(C)]
+ #[allow(missing_copy_implementations)]
pub struct sigaction {
pub sa_handler: extern fn(libc::c_int),
pub sa_mask: sigset_t,
@@ -114,12 +117,14 @@ pub mod signal {
#[repr(C)]
#[cfg(target_word_size = "32")]
+ #[deriving(Copy)]
pub struct sigset_t {
__val: [libc::c_ulong, ..32],
}
#[repr(C)]
#[cfg(target_word_size = "64")]
+ #[deriving(Copy)]
pub struct sigset_t {
__val: [libc::c_ulong, ..16],
}
@@ -290,6 +295,7 @@ mod ffi {
}
}
+#[deriving(Copy)]
pub struct SigSet {
sigset: sigset_t
}