-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | Access to the BSD sysctl(3) interface
--
-- This module provides efficient access to the BSD sysctl(3) interface
-- via the Haskell FFI. It allows to read and write both basic sysctl
-- types, as well as complex opaque types described via Storable
-- instances.
@package bsd-sysctl
@version 1.0.0
-- | 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
-- Ints, or by an OID returned by sysctlNameToOid if speed
-- is a concern.
module System.BSD.Sysctl
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 :: (SysctlKey k, Storable a) => k -> IO a
sysctlPeekArray :: (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 ()
instance SysctlKey [Int]
instance SysctlKey String
instance SysctlKey OID