]> gitweb @ CieloNegro.org - bindings-uname.git/blob - Bindings/Uname.hsc
ec03f1da49f24cdd3916ae636518973c4002e936
[bindings-uname.git] / Bindings / Uname.hsc
1 module Bindings.Uname
2     ( Utsname
3     , uname
4
5     , sysname
6     , nodename
7     , release
8     , version
9     , machine
10     )
11     where
12
13 #include <sys/utsname.h>
14
15 import Foreign
16 import Foreign.C
17
18 foreign import ccall unsafe "sys/utsname.h uname"
19         uname :: Ptr Utsname -> IO CInt
20
21 data Utsname
22
23 instance Storable Utsname where
24     sizeOf    = const #size struct utsname
25     alignment = sizeOf
26     poke      = error "Storable Utsname: peek: unsupported operation"
27     peek      = error "Storable Utsname: poke: unsupported operation"
28
29 sysname :: Ptr Utsname -> IO CString
30 sysname = (#peek struct utsname, sysname)
31
32 nodename :: Ptr Utsname -> IO CString
33 nodename = (#peek struct utsname, nodename)
34
35 release :: Ptr Utsname -> IO CString
36 release = (#peek struct utsname, release)
37
38 version :: Ptr Utsname -> IO CString
39 version = (#peek struct utsname, version)
40
41 machine :: Ptr Utsname -> IO CString
42 machine = (#peek struct utsname, machine)