X-Git-Url: http://git.cielonegro.org/gitweb.cgi?p=bindings-uname.git;a=blobdiff_plain;f=Bindings%2FUname.hsc;h=91eefc0f9c433d1f20ca1997cf1f3f1fd51268ba;hp=ec03f1da49f24cdd3916ae636518973c4002e936;hb=1b1bb33141d52b8d173843fb6104040a8d81f72b;hpb=2a97c5d18df8fc20b1d9adf8224c25f4b285b466 diff --git a/Bindings/Uname.hsc b/Bindings/Uname.hsc index ec03f1d..91eefc0 100644 --- a/Bindings/Uname.hsc +++ b/Bindings/Uname.hsc @@ -15,6 +15,18 @@ module Bindings.Uname import Foreign import Foreign.C +-- | @'uname' name@ stores nul-terminated strings of information +-- identifying the current system info to the structure referenced +-- by name. +-- +-- > import Foreign.C +-- > import Foreign.Marshal +-- > +-- > sysName :: IO String +-- > sysName = alloca $ \ ptr -> +-- > do throwErrnoIfMinus1_ "uname" $ uname ptr +-- > peekCString $ sysname ptr +-- foreign import ccall unsafe "sys/utsname.h uname" uname :: Ptr Utsname -> IO CInt @@ -26,17 +38,17 @@ instance Storable Utsname where poke = error "Storable Utsname: peek: unsupported operation" peek = error "Storable Utsname: poke: unsupported operation" -sysname :: Ptr Utsname -> IO CString -sysname = (#peek struct utsname, sysname) +sysname :: Ptr Utsname -> CString +sysname = (#ptr struct utsname, sysname) -nodename :: Ptr Utsname -> IO CString -nodename = (#peek struct utsname, nodename) +nodename :: Ptr Utsname -> CString +nodename = (#ptr struct utsname, nodename) -release :: Ptr Utsname -> IO CString -release = (#peek struct utsname, release) +release :: Ptr Utsname -> CString +release = (#ptr struct utsname, release) -version :: Ptr Utsname -> IO CString -version = (#peek struct utsname, version) +version :: Ptr Utsname -> CString +version = (#ptr struct utsname, version) -machine :: Ptr Utsname -> IO CString -machine = (#peek struct utsname, machine) +machine :: Ptr Utsname -> CString +machine = (#ptr struct utsname, machine)