diff options
Diffstat (limited to 'hsm-gpio/Hsm/GPIO/FFI.hs')
-rw-r--r-- | hsm-gpio/Hsm/GPIO/FFI.hs | 77 |
1 files changed, 27 insertions, 50 deletions
diff --git a/hsm-gpio/Hsm/GPIO/FFI.hs b/hsm-gpio/Hsm/GPIO/FFI.hs index a4eae5c..e0d6d07 100644 --- a/hsm-gpio/Hsm/GPIO/FFI.hs +++ b/hsm-gpio/Hsm/GPIO/FFI.hs @@ -29,90 +29,67 @@ module Hsm.GPIO.FFI , lineRequestRelease , lineRequestSetValue , lineRequestSetValues - ) -where + ) where import Foreign.C.String (CString) -import Foreign.C.Types (CInt (CInt), CSize (CSize), CUInt (CUInt)) +import Foreign.C.Types (CInt(CInt), CSize(CSize), CUInt(CUInt)) import Foreign.Ptr (Ptr) import Foreign.Storable (Storable) data Chip -foreign import ccall unsafe "gpiod.h gpiod_chip_open" - chipOpen :: CString -> IO (Ptr Chip) +foreign import ccall unsafe "gpiod.h gpiod_chip_open" chipOpen :: CString -> IO (Ptr Chip) -foreign import ccall unsafe "gpiod.h gpiod_chip_close" - chipClose :: Ptr Chip -> IO () +foreign import ccall unsafe "gpiod.h gpiod_chip_close" chipClose :: Ptr Chip -> IO () data LineSettings -newtype LineDirection - = LineDirection CInt - deriving Show +newtype LineDirection = + LineDirection CInt + deriving (Show) -foreign import capi unsafe "gpiod.h value GPIOD_LINE_DIRECTION_INPUT" - input :: LineDirection +foreign import capi unsafe "gpiod.h value GPIOD_LINE_DIRECTION_INPUT" input :: LineDirection -foreign import capi unsafe "gpiod.h value GPIOD_LINE_DIRECTION_OUTPUT" - output :: LineDirection +foreign import capi unsafe "gpiod.h value GPIOD_LINE_DIRECTION_OUTPUT" output :: LineDirection -newtype LineValue - = LineValue CInt +newtype LineValue = + LineValue CInt deriving (Show, Storable) -foreign import capi unsafe "gpiod.h value GPIOD_LINE_VALUE_ACTIVE" - active :: LineValue +foreign import capi unsafe "gpiod.h value GPIOD_LINE_VALUE_ACTIVE" active :: LineValue -foreign import capi unsafe "gpiod.h value GPIOD_LINE_VALUE_INACTIVE" - inactive :: LineValue +foreign import capi unsafe "gpiod.h value GPIOD_LINE_VALUE_INACTIVE" inactive :: LineValue -foreign import ccall unsafe "gpiod.h gpiod_line_settings_new" - lineSettingsNew :: IO (Ptr LineSettings) +foreign import ccall unsafe "gpiod.h gpiod_line_settings_new" lineSettingsNew :: IO (Ptr LineSettings) -foreign import ccall unsafe "gpiod.h gpiod_line_settings_free" - lineSettingsFree :: Ptr LineSettings -> IO () +foreign import ccall unsafe "gpiod.h gpiod_line_settings_free" lineSettingsFree :: Ptr LineSettings -> IO () -foreign import ccall unsafe "gpiod.h gpiod_line_settings_set_direction" - lineSettingsSetDirection :: Ptr LineSettings -> LineDirection -> IO CInt +foreign import ccall unsafe "gpiod.h gpiod_line_settings_set_direction" lineSettingsSetDirection :: Ptr LineSettings -> LineDirection -> IO CInt -foreign import ccall unsafe "gpiod.h gpiod_line_settings_set_output_value" - lineSettingsSetOutputValue :: Ptr LineSettings -> LineValue -> IO CInt +foreign import ccall unsafe "gpiod.h gpiod_line_settings_set_output_value" lineSettingsSetOutputValue :: Ptr LineSettings -> LineValue -> IO CInt data LineConfig -foreign import ccall unsafe "gpiod.h gpiod_line_config_new" - lineConfigNew :: IO (Ptr LineConfig) +foreign import ccall unsafe "gpiod.h gpiod_line_config_new" lineConfigNew :: IO (Ptr LineConfig) -foreign import ccall unsafe "gpiod.h gpiod_line_config_free" - lineConfigFree :: Ptr LineConfig -> IO () +foreign import ccall unsafe "gpiod.h gpiod_line_config_free" lineConfigFree :: Ptr LineConfig -> IO () -foreign import ccall unsafe "gpiod.h gpiod_line_config_add_line_settings" - lineConfigAddLineSettings - :: Ptr LineConfig -> Ptr CUInt -> CSize -> Ptr LineSettings -> IO CInt +foreign import ccall unsafe "gpiod.h gpiod_line_config_add_line_settings" lineConfigAddLineSettings :: Ptr LineConfig -> Ptr CUInt -> CSize -> Ptr LineSettings -> IO CInt data RequestConfig -foreign import ccall unsafe "gpiod.h gpiod_request_config_new" - requestConfigNew :: IO (Ptr RequestConfig) +foreign import ccall unsafe "gpiod.h gpiod_request_config_new" requestConfigNew :: IO (Ptr RequestConfig) -foreign import ccall unsafe "gpiod.h gpiod_request_config_free" - requestConfigFree :: Ptr RequestConfig -> IO () +foreign import ccall unsafe "gpiod.h gpiod_request_config_free" requestConfigFree :: Ptr RequestConfig -> IO () -foreign import ccall unsafe "gpiod.h gpiod_request_config_set_consumer" - requestConfigSetConsumer :: Ptr RequestConfig -> CString -> IO () +foreign import ccall unsafe "gpiod.h gpiod_request_config_set_consumer" requestConfigSetConsumer :: Ptr RequestConfig -> CString -> IO () data LineRequest -foreign import ccall unsafe "gpiod.h gpiod_chip_request_lines" - chipRequestLines - :: Ptr Chip -> Ptr RequestConfig -> Ptr LineConfig -> IO (Ptr LineRequest) +foreign import ccall unsafe "gpiod.h gpiod_chip_request_lines" chipRequestLines :: Ptr Chip -> Ptr RequestConfig -> Ptr LineConfig -> IO (Ptr LineRequest) -foreign import ccall unsafe "gpiod.h gpiod_line_request_release" - lineRequestRelease :: Ptr LineRequest -> IO () +foreign import ccall unsafe "gpiod.h gpiod_line_request_release" lineRequestRelease :: Ptr LineRequest -> IO () -foreign import ccall unsafe "gpiod.h gpiod_line_request_set_value" - lineRequestSetValue :: Ptr LineRequest -> CUInt -> LineValue -> IO CInt +foreign import ccall unsafe "gpiod.h gpiod_line_request_set_value" lineRequestSetValue :: Ptr LineRequest -> CUInt -> LineValue -> IO CInt -foreign import ccall unsafe "gpiod.h gpiod_line_request_set_values" - lineRequestSetValues :: Ptr LineRequest -> Ptr LineValue -> IO CInt +foreign import ccall unsafe "gpiod.h gpiod_line_request_set_values" lineRequestSetValues :: Ptr LineRequest -> Ptr LineValue -> IO CInt |