-- 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