bindings-uname (empty) → 0.1
raw patch · 3 files changed
+87/−0 lines, 3 filesdep +basesetup-changed
Dependencies added: base
Files
- Bindings/Uname.hsc +54/−0
- Setup.lhs +3/−0
- bindings-uname.cabal +30/−0
+ Bindings/Uname.hsc view
@@ -0,0 +1,54 @@+module Bindings.Uname+ ( Utsname+ , uname++ , sysname+ , nodename+ , release+ , version+ , machine+ )+ where++#include <sys/utsname.h>++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++data Utsname++instance Storable Utsname where+ sizeOf = const #size struct utsname+ alignment = sizeOf+ poke = error "Storable Utsname: peek: unsupported operation"+ peek = error "Storable Utsname: poke: unsupported operation"++sysname :: Ptr Utsname -> CString+sysname = (#ptr struct utsname, sysname)++nodename :: Ptr Utsname -> CString+nodename = (#ptr struct utsname, nodename)++release :: Ptr Utsname -> CString+release = (#ptr struct utsname, release)++version :: Ptr Utsname -> CString+version = (#ptr struct utsname, version)++machine :: Ptr Utsname -> CString+machine = (#ptr struct utsname, machine)
+ Setup.lhs view
@@ -0,0 +1,3 @@+#!/usr/bin/env runhaskell+> import Distribution.Simple+> main = defaultMainWithHooks simpleUserHooks
+ bindings-uname.cabal view
@@ -0,0 +1,30 @@+Name: bindings-uname+Version: 0.1+Synopsis: Low-level binding to POSIX uname(3)+Description:+ This is a low-level binding to POSIX uname(3)+ function. Perhaps it shoule be part of unix package.+Category: FFI, System+License: PublicDomain+Author: PHO <pho at cielonegro.org>+Maintainer: PHO <pho at cielonegro.org>+Stability: Experimental+Cabal-Version: >= 1.6+Build-Type: Simple++Source-Repository head+ Type: git+ Location: git://git.cielonegro.org/bindings-uname++Library+ Build-Depends:+ base < 5++ Exposed-Modules:+ Bindings.Uname++ Extensions:+ EmptyDataDecls, ForeignFunctionInterface++ GHC-Options:+ -Wall