diff options
| author | Jeremy Soller <jackpot51@gmail.com> | 2017-08-27 10:51:05 -0600 |
|---|---|---|
| committer | Jeremy Soller <jackpot51@gmail.com> | 2017-09-11 18:46:01 -0600 |
| commit | e2820ea06ceeb19cedb8ac38a4f1b7b6abb1fcfd (patch) | |
| tree | 56860ee5915eb0ef8775a918c391b953341850fc /src/libstd/sys/redox/syscall/data.rs | |
| parent | eba374fb21b63751ac10a09dbf269fd5067d4eb8 (diff) | |
| download | rust-e2820ea06ceeb19cedb8ac38a4f1b7b6abb1fcfd.tar.gz rust-e2820ea06ceeb19cedb8ac38a4f1b7b6abb1fcfd.zip | |
Sync with upstream syscall library
Diffstat (limited to 'src/libstd/sys/redox/syscall/data.rs')
| -rw-r--r-- | src/libstd/sys/redox/syscall/data.rs | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/src/libstd/sys/redox/syscall/data.rs b/src/libstd/sys/redox/syscall/data.rs index 0beb173477d..3566d85d9b4 100644 --- a/src/libstd/sys/redox/syscall/data.rs +++ b/src/libstd/sys/redox/syscall/data.rs @@ -12,6 +12,78 @@ use core::ops::{Deref, DerefMut}; use core::{mem, slice}; #[derive(Copy, Clone, Debug, Default)] +pub struct Event { + pub id: usize, + pub flags: usize, + pub data: usize +} + +impl Deref for Event { + type Target = [u8]; + fn deref(&self) -> &[u8] { + unsafe { + slice::from_raw_parts(self as *const Event as *const u8, mem::size_of::<Event>()) as &[u8] + } + } +} + +impl DerefMut for Event { + fn deref_mut(&mut self) -> &mut [u8] { + unsafe { + slice::from_raw_parts_mut(self as *mut Event as *mut u8, mem::size_of::<Event>()) as &mut [u8] + } + } +} + +#[derive(Copy, Clone, Debug, Default)] +#[repr(C)] +pub struct Packet { + pub id: u64, + pub pid: usize, + pub uid: u32, + pub gid: u32, + pub a: usize, + pub b: usize, + pub c: usize, + pub d: usize +} + +impl Deref for Packet { + type Target = [u8]; + fn deref(&self) -> &[u8] { + unsafe { + slice::from_raw_parts(self as *const Packet as *const u8, mem::size_of::<Packet>()) as &[u8] + } + } +} + +impl DerefMut for Packet { + fn deref_mut(&mut self) -> &mut [u8] { + unsafe { + slice::from_raw_parts_mut(self as *mut Packet as *mut u8, mem::size_of::<Packet>()) as &mut [u8] + } + } +} + +#[derive(Copy, Clone, Debug)] +#[repr(C)] +pub struct SigAction { + pub sa_handler: extern "C" fn(usize), + pub sa_mask: [u64; 2], + pub sa_flags: usize, +} + +impl Default for SigAction { + fn default() -> Self { + Self { + sa_handler: unsafe { mem::transmute(0usize) }, + sa_mask: [0; 2], + sa_flags: 0, + } + } +} + +#[derive(Copy, Clone, Debug, Default)] #[repr(C)] pub struct Stat { pub st_dev: u64, |
