Crates.io | syscall-alt |
lib.rs | syscall-alt |
version | 0.0.14 |
source | src |
created_at | 2016-09-14 12:05:31.232407 |
updated_at | 2017-05-24 10:03:07.652987 |
description | syscall-alt |
homepage | https://github.com/lemonrock/syscall-alt |
repository | https://github.com/lemonrock/syscall-alt.git |
max_upload_size | |
id | 6487 |
size | 878,216 |
[](This file is part of syscall-alt. It is subject to the license terms in the COPYRIGHT file found in the top-level directory of this distribution and at https://raw.githubusercontent.com/lemonrock/syscall-alt/master/COPYRIGHT. No part of syscall-alt, including this file, may be copied, modified, propagated, or distributed except according to the terms contained in the COPYRIGHT file.) [](Copyright © 2016 The developers of syscall-alt. See the COPYRIGHT file in the top-level directory of this distribution and at https://raw.githubusercontent.com/lemonrock/syscall-alt/master/COPYRIGHT.)
syscall-alt is a rust crate that provides inline assembler (asm!
macro) definitions of syscalls for some Linux platforms. It also includes:-
EINVAL
EDEADLOCK
:-
EDEADLOCK != EDEADLK
(so watch out when using match
)arm
, but are compiled for x86_64
, they are available
EDEADLOCK
, EDEADLCK
, ENOTSUP
and EOPNOTSUPP
; these vary in definition and value, sometimes being missing, sometimes being equalEWOULDBLOCK
and EAGAIN
; all current platforms make EWOULDBLOCK
the same as EAGAIN
, but this isn't required by POSIXThe code is very much 'early-days', so expect breaking changes.
This crate is #[!no_std]
, and does not require the std
library or the libc
crate
syscalls are not actually implemented for Linux mips, mips64, powerpc, powerpc64, or s390x but could be by tring to use musl's syscall_arch.h
headers (bar s390x)
We could implement iOS ARM 32-bit syscalls; see https://stackoverflow.com/questions/4371897/arm-darwin-assembly-looking-for-system-calls-tutorial-perhaps for ideas
Support ARM and ARM64 for the BSDs as and when rust gains support for them
Syscalling is not implemented for Solaris, and won't ever be implemented for Windows
The license for this project is AGPL.