]>
git.proxmox.com Git - cargo.git/blob - vendor/redox_syscall/src/arch/riscv64.rs
1 use core
::{mem, slice}
;
2 use core
::ops
::{Deref, DerefMut}
;
4 use super::error
::{Error, Result}
;
7 ($
($name
:ident($a
:ident
, $
($b
:ident
, $
($c
:ident
, $
($d
:ident
, $
($e
:ident
, $
($f
:ident
, )?
)?
)?
)?
)?
);)+) => {
9 pub unsafe fn $
name($a
: usize, $
($b
: usize, $
($c
: usize, $
($d
: usize, $
($e
: usize, $
($f
: usize)?
)?
)?
)?
)?
) -> Result
<usize> {
44 syscall3(a
, b
, c
, d
,);
45 syscall4(a
, b
, c
, d
, e
,);
46 syscall5(a
, b
, c
, d
, e
, f
,);
49 #[derive(Copy, Clone, Debug, Default)]
51 pub struct IntRegisters
{
55 impl Deref
for IntRegisters
{
57 fn deref(&self) -> &[u8] {
59 slice
::from_raw_parts(self as *const IntRegisters
as *const u8, mem
::size_of
::<IntRegisters
>())
64 impl DerefMut
for IntRegisters
{
65 fn deref_mut(&mut self) -> &mut [u8] {
67 slice
::from_raw_parts_mut(self as *mut IntRegisters
as *mut u8, mem
::size_of
::<IntRegisters
>())
72 #[derive(Clone, Copy, Debug, Default)]
74 pub struct FloatRegisters
{
78 impl Deref
for FloatRegisters
{
80 fn deref(&self) -> &[u8] {
82 slice
::from_raw_parts(self as *const FloatRegisters
as *const u8, mem
::size_of
::<FloatRegisters
>())
87 impl DerefMut
for FloatRegisters
{
88 fn deref_mut(&mut self) -> &mut [u8] {
90 slice
::from_raw_parts_mut(self as *mut FloatRegisters
as *mut u8, mem
::size_of
::<FloatRegisters
>())