Portability | portable |
---|---|
Stability | stable |
Maintainer | mhenrion@gmail.com |
This module allows access to the BSD sysctl(3) interface via the Haskell FFI.
Convenience functions to read and write the usual sysctl types are provided,
as well as more advanced functions to handle binary values given a suitable
Storable instance. It is also possible to retrieve data whose size changes
at runtime with the sysctlPeekArray
function.
Nodes may be queried either by their name, their OID as a list of Int
s, or
by an OID returned by sysctlNameToOid
if speed is a concern.
- class SysctlKey k
- data OID
- sysctlNameToOid :: String -> IO OID
- sysctlReadInt :: SysctlKey k => k -> IO Int32
- sysctlReadUInt :: SysctlKey k => k -> IO Word32
- sysctlReadLong :: SysctlKey k => k -> IO Int32
- sysctlReadULong :: SysctlKey k => k -> IO Word32
- sysctlReadQuad :: SysctlKey k => k -> IO Int64
- sysctlReadUQuad :: SysctlKey k => k -> IO Word64
- sysctlReadString :: SysctlKey k => k -> IO String
- sysctlPeek :: forall k a. (SysctlKey k, Storable a) => k -> IO a
- sysctlPeekArray :: forall k a. (SysctlKey k, Storable a) => k -> IO [a]
- sysctlWriteInt :: SysctlKey k => k -> Int32 -> IO ()
- sysctlWriteUInt :: SysctlKey k => k -> Word32 -> IO ()
- sysctlWriteLong :: SysctlKey k => k -> Int32 -> IO ()
- sysctlWriteULong :: SysctlKey k => k -> Word32 -> IO ()
- sysctlWriteQuad :: SysctlKey k => k -> Int64 -> IO ()
- sysctlWriteUQuad :: SysctlKey k => k -> Word64 -> IO ()
- sysctlWriteString :: SysctlKey k => k -> String -> IO ()
- sysctlPoke :: (SysctlKey k, Storable a) => k -> a -> IO ()
The data types
Name to OID conversion
sysctlNameToOid :: String -> IO OIDSource
Basic reading functions
sysctlReadInt :: SysctlKey k => k -> IO Int32Source
sysctlReadUInt :: SysctlKey k => k -> IO Word32Source
sysctlReadLong :: SysctlKey k => k -> IO Int32Source
sysctlReadULong :: SysctlKey k => k -> IO Word32Source
sysctlReadQuad :: SysctlKey k => k -> IO Int64Source
sysctlReadUQuad :: SysctlKey k => k -> IO Word64Source
sysctlReadString :: SysctlKey k => k -> IO StringSource
Advanced reading functions
sysctlPeek :: forall k a. (SysctlKey k, Storable a) => k -> IO aSource
sysctlPeekArray :: forall k a. (SysctlKey k, Storable a) => k -> IO [a]Source