haskus-system-0.6.0.0: Haskus system programming framework

Safe HaskellNone
LanguageHaskell2010

Haskus.Arch.X86_64.Linux.Syscall

Contents

Description

Linux syscall

Synopsis

Documentation

data S n safety name t Source #

data PrimOp Source #

Call syscall using primop

Instances

SelSyscall PrimOp (IO Int64) Source # 

Methods

selectCall :: Int64 -> IO Int64

(Arg a, Arg b, Arg c, Arg d, Arg e, Arg f) => SelSyscall PrimOp (a -> b -> c -> d -> e -> f -> IO Int64) Source # 

Methods

selectCall :: Int64 -> a -> b -> c -> d -> e -> f -> IO Int64

(Arg a, Arg b, Arg c, Arg d, Arg e) => SelSyscall PrimOp (a -> b -> c -> d -> e -> IO Int64) Source # 

Methods

selectCall :: Int64 -> a -> b -> c -> d -> e -> IO Int64

(Arg a, Arg b, Arg c, Arg d) => SelSyscall PrimOp (a -> b -> c -> d -> IO Int64) Source # 

Methods

selectCall :: Int64 -> a -> b -> c -> d -> IO Int64

(Arg a, Arg b, Arg c) => SelSyscall PrimOp (a -> b -> c -> IO Int64) Source # 

Methods

selectCall :: Int64 -> a -> b -> c -> IO Int64

(Arg a, Arg b) => SelSyscall PrimOp (a -> b -> IO Int64) Source # 

Methods

selectCall :: Int64 -> a -> b -> IO Int64

Arg a => SelSyscall PrimOp (a -> IO Int64) Source # 

Methods

selectCall :: Int64 -> a -> IO Int64

data Safe Source #

Call syscall using safe FFI

Instances

SelSyscall Safe (IO Int64) Source # 

Methods

selectCall :: Int64 -> IO Int64

(Arg a, Arg b, Arg c, Arg d, Arg e, Arg f) => SelSyscall Safe (a -> b -> c -> d -> e -> f -> IO Int64) Source # 

Methods

selectCall :: Int64 -> a -> b -> c -> d -> e -> f -> IO Int64

(Arg a, Arg b, Arg c, Arg d, Arg e) => SelSyscall Safe (a -> b -> c -> d -> e -> IO Int64) Source # 

Methods

selectCall :: Int64 -> a -> b -> c -> d -> e -> IO Int64

(Arg a, Arg b, Arg c, Arg d) => SelSyscall Safe (a -> b -> c -> d -> IO Int64) Source # 

Methods

selectCall :: Int64 -> a -> b -> c -> d -> IO Int64

(Arg a, Arg b, Arg c) => SelSyscall Safe (a -> b -> c -> IO Int64) Source # 

Methods

selectCall :: Int64 -> a -> b -> c -> IO Int64

(Arg a, Arg b) => SelSyscall Safe (a -> b -> IO Int64) Source # 

Methods

selectCall :: Int64 -> a -> b -> IO Int64

Arg a => SelSyscall Safe (a -> IO Int64) Source # 

Methods

selectCall :: Int64 -> a -> IO Int64

type family SyscallByName (name :: Symbol) (xs :: [*]) where ... Source #

Equations

SyscallByName name '[] = TypeError (Text "Cannot find syscall " :<>: ShowType name) 
SyscallByName name (S n s name t ': xs) = S n s name t 
SyscallByName name (S n s xxxx t ': xs) = SyscallByName name xs 

syscall_ :: forall syscalls name n s t. (S n s name t ~ SyscallByName name syscalls, SelSyscall s t, KnownNat n) => t Source #

syscall with the given name from the given syscall table

class SelSyscall s t Source #

Select the syscall function

Minimal complete definition

selectCall

Instances

SelSyscall Safe (IO Int64) Source # 

Methods

selectCall :: Int64 -> IO Int64

SelSyscall PrimOp (IO Int64) Source # 

Methods

selectCall :: Int64 -> IO Int64

(Arg a, Arg b, Arg c, Arg d, Arg e, Arg f) => SelSyscall Safe (a -> b -> c -> d -> e -> f -> IO Int64) Source # 

Methods

selectCall :: Int64 -> a -> b -> c -> d -> e -> f -> IO Int64

(Arg a, Arg b, Arg c, Arg d, Arg e) => SelSyscall Safe (a -> b -> c -> d -> e -> IO Int64) Source # 

Methods

selectCall :: Int64 -> a -> b -> c -> d -> e -> IO Int64

(Arg a, Arg b, Arg c, Arg d) => SelSyscall Safe (a -> b -> c -> d -> IO Int64) Source # 

Methods

selectCall :: Int64 -> a -> b -> c -> d -> IO Int64

(Arg a, Arg b, Arg c) => SelSyscall Safe (a -> b -> c -> IO Int64) Source # 

Methods

selectCall :: Int64 -> a -> b -> c -> IO Int64

(Arg a, Arg b) => SelSyscall Safe (a -> b -> IO Int64) Source # 

Methods

selectCall :: Int64 -> a -> b -> IO Int64

Arg a => SelSyscall Safe (a -> IO Int64) Source # 

Methods

selectCall :: Int64 -> a -> IO Int64

(Arg a, Arg b, Arg c, Arg d, Arg e, Arg f) => SelSyscall PrimOp (a -> b -> c -> d -> e -> f -> IO Int64) Source # 

Methods

selectCall :: Int64 -> a -> b -> c -> d -> e -> f -> IO Int64

(Arg a, Arg b, Arg c, Arg d, Arg e) => SelSyscall PrimOp (a -> b -> c -> d -> e -> IO Int64) Source # 

Methods

selectCall :: Int64 -> a -> b -> c -> d -> e -> IO Int64

(Arg a, Arg b, Arg c, Arg d) => SelSyscall PrimOp (a -> b -> c -> d -> IO Int64) Source # 

Methods

selectCall :: Int64 -> a -> b -> c -> d -> IO Int64

(Arg a, Arg b, Arg c) => SelSyscall PrimOp (a -> b -> c -> IO Int64) Source # 

Methods

selectCall :: Int64 -> a -> b -> c -> IO Int64

(Arg a, Arg b) => SelSyscall PrimOp (a -> b -> IO Int64) Source # 

Methods

selectCall :: Int64 -> a -> b -> IO Int64

Arg a => SelSyscall PrimOp (a -> IO Int64) Source # 

Methods

selectCall :: Int64 -> a -> IO Int64

Internals

syscall0primop :: Int64 -> IO Int64 Source #

Syscall with 0 parameter

syscall1primop :: Int64 -> Int64 -> IO Int64 Source #

Syscall with 1 parameter

syscall2primop :: Int64 -> Int64 -> Int64 -> IO Int64 Source #

Syscall with 2 parameters

syscall3primop :: Int64 -> Int64 -> Int64 -> Int64 -> IO Int64 Source #

Syscall with 3 parameters

syscall4primop :: Int64 -> Int64 -> Int64 -> Int64 -> Int64 -> IO Int64 Source #

Syscall with 4 parameters

syscall5primop :: Int64 -> Int64 -> Int64 -> Int64 -> Int64 -> Int64 -> IO Int64 Source #

Syscall with 5 parameters

syscall6primop :: Int64 -> Int64 -> Int64 -> Int64 -> Int64 -> Int64 -> Int64 -> IO Int64 Source #

Syscall with 6 parameters