0 | module System.Linux.Signalfd.Struct
3 | import System.Linux.Signalfd.Flags
4 | import System.Posix.File.FileDesc
5 | import System.Posix.Signal.Struct
6 | import System.Posix.Signal.Types
10 | %foreign "C:li_ssi_signo, linux-idris"
11 | prim__ssi_signo : AnyPtr -> PrimIO Bits32
13 | %foreign "C:li_ssi_errno, linux-idris"
14 | prim__ssi_errno : AnyPtr -> PrimIO Int32
16 | %foreign "C:li_ssi_code, linux-idris"
17 | prim__ssi_code : AnyPtr -> PrimIO Int32
19 | %foreign "C:li_ssi_pid, linux-idris"
20 | prim__ssi_pid : AnyPtr -> PrimIO PidT
22 | %foreign "C:li_ssi_uid, linux-idris"
23 | prim__ssi_uid : AnyPtr -> PrimIO UidT
25 | %foreign "C:li_ssi_fd, linux-idris"
26 | prim__ssi_fd : AnyPtr -> PrimIO Bits32
28 | %foreign "C:li_ssi_tid, linux-idris"
29 | prim__ssi_tid : AnyPtr -> PrimIO Bits32
31 | %foreign "C:li_ssi_band, linux-idris"
32 | prim__ssi_band : AnyPtr -> PrimIO Bits32
34 | %foreign "C:li_ssi_overrun, linux-idris"
35 | prim__ssi_overrun : AnyPtr -> PrimIO Bits32
37 | %foreign "C:li_ssi_trapno, linux-idris"
38 | prim__ssi_trapno : AnyPtr -> PrimIO Bits32
40 | %foreign "C:li_ssi_status, linux-idris"
41 | prim__ssi_status : AnyPtr -> PrimIO Int32
43 | %foreign "C:li_ssi_status, linux-idris"
44 | prim__ssi_int : AnyPtr -> PrimIO Int32
46 | %foreign "C:li_ssi_ptr, linux-idris"
47 | prim__ssi_ptr : AnyPtr -> PrimIO Bits64
49 | %foreign "C:li_ssi_utime, linux-idris"
50 | prim__ssi_utime : AnyPtr -> PrimIO Bits64
52 | %foreign "C:li_ssi_stime, linux-idris"
53 | prim__ssi_stime : AnyPtr -> PrimIO Bits64
55 | %foreign "C:li_ssi_addr, linux-idris"
56 | prim__ssi_addr : AnyPtr -> PrimIO Bits64
58 | %foreign "C:li_ssi_addr_lsb, linux-idris"
59 | prim__ssi_addr_lsb : AnyPtr -> PrimIO Bits16
71 | record Signalfd where
76 | Cast Signalfd Fd where cast = MkFd . fd
79 | Cast Bits32 Signalfd where cast = SFD
82 | Cast CInt Signalfd where cast = SFD . cast
86 | record SSiginfo where
91 | Deref SSiginfo where deref = pure . SSI
93 | public export %inline
94 | SizeOf SSiginfo where sizeof_ = signalfd_siginfo_size
97 | siginfo : SSiginfo -> PrimIO Siginfo
99 | let MkIORes sig w := prim__ssi_signo p w
100 | MkIORes cod w := prim__ssi_code p w
101 | MkIORes pid w := prim__ssi_pid p w
102 | MkIORes uid w := prim__ssi_uid p w
103 | MkIORes stt w := prim__ssi_status p w
104 | MkIORes val w := prim__ssi_int p w
105 | in MkIORes (SI (S sig) cod pid uid stt (cast val)) w