-- | -- Copyright : (c) Sam Truzjan 2013 -- License : BSD3 -- Maintainer : pxqr.sta@gmail.com -- Stability : stable -- Portability : portable -- -- Retrieve properties from the hardware database. -- module System.UDev.HWDB ( HWDB , newHWDB , getPropertiesList ) where import Data.ByteString as BS import Foreign.C import System.UDev.Context import System.UDev.List import System.UDev.Types foreign import ccall unsafe "udev_hwdb_new" c_new :: UDev -> IO HWDB -- | Create a hardware database context to query properties for -- devices. newHWDB :: UDev -> IO HWDB newHWDB = c_new foreign import ccall unsafe "udev_hwdb_get_properties_list_entry" c_getPropertiesList :: HWDB -> CString -> CUInt -> IO List -- | Lookup a matching device in the hardware database. The lookup key -- is a modalias string, whose formats are defined for the Linux -- kernel modules. Examples are: pci:v00008086d00001C2D*, -- usb:v04F2pB221*. The first entry of a list of retrieved properties -- is returned. -- getPropertiesList :: HWDB -> ByteString -> IO List getPropertiesList hwdb modalias = useAsCString modalias $ \ c_modalias -> c_getPropertiesList hwdb c_modalias 0