]>
git.proxmox.com Git - cargo.git/blob - vendor/redox_syscall/src/arch/x86.rs
1 use core
::{mem, slice}
;
3 use core
::ops
::{Deref, DerefMut}
;
5 use super::error
::{Error, Result}
;
8 ($
($name
:ident($a
:ident
, $
($b
:ident
, $
($c
:ident
, $
($d
:ident
, $
($e
:ident
, $
($f
:ident
, )?
)?
)?
)?
)?
);)+) => {
10 pub unsafe fn $
name(mut $a
: usize, $
($b
: usize, $
($c
: usize, $
($d
: usize, $
($e
: usize, $
($f
: usize)?
)?
)?
)?
)?
) -> Result
<usize> {
42 syscall3(a
, b
, c
, d
,);
43 // Must be done custom because LLVM reserves ESI
44 //syscall4(a, b, c, d, e,);
45 //syscall5(a, b, c, d, e, f,);
48 pub unsafe fn syscall4(mut a
: usize, b
: usize, c
: usize, d
: usize, e
: usize)
65 pub unsafe fn syscall5(mut a
: usize, b
: usize, c
: usize, d
: usize, e
: usize, f
: usize)
83 #[derive(Clone, Copy, Debug, Default)]
85 pub struct EnvRegisters
{
90 impl Deref
for EnvRegisters
{
92 fn deref(&self) -> &[u8] {
94 slice
::from_raw_parts(self as *const EnvRegisters
as *const u8, mem
::size_of
::<EnvRegisters
>())
99 impl DerefMut
for EnvRegisters
{
100 fn deref_mut(&mut self) -> &mut [u8] {
102 slice
::from_raw_parts_mut(self as *mut EnvRegisters
as *mut u8, mem
::size_of
::<EnvRegisters
>())