diff options
author | Paul Oliver <contact@pauloliver.dev> | 2025-08-20 02:26:57 +0000 |
---|---|---|
committer | Paul Oliver <contact@pauloliver.dev> | 2025-08-23 22:59:12 +0000 |
commit | dea39a25938662e6af932bc9a957073d8364dde1 (patch) | |
tree | 83c6b464a0d50f68ebf58e048cd28de5faa116a3 | |
parent | 307cb1b1094c73fd15eab378c27ac0073696b739 (diff) |
Falls back to using `ccall` for `gpiod` calls
-rw-r--r-- | hsm-gpio/Hsm/GPIO/FFI.hs | 40 |
1 files changed, 20 insertions, 20 deletions
diff --git a/hsm-gpio/Hsm/GPIO/FFI.hs b/hsm-gpio/Hsm/GPIO/FFI.hs index c1bb9e8..a4eae5c 100644 --- a/hsm-gpio/Hsm/GPIO/FFI.hs +++ b/hsm-gpio/Hsm/GPIO/FFI.hs @@ -39,10 +39,10 @@ import Foreign.Storable (Storable) data Chip -foreign import capi unsafe "gpiod.h gpiod_chip_open" +foreign import ccall unsafe "gpiod.h gpiod_chip_open" chipOpen :: CString -> IO (Ptr Chip) -foreign import capi unsafe "gpiod.h gpiod_chip_close" +foreign import ccall unsafe "gpiod.h gpiod_chip_close" chipClose :: Ptr Chip -> IO () data LineSettings @@ -51,68 +51,68 @@ newtype LineDirection = LineDirection CInt deriving Show -foreign import capi safe "gpiod.h value GPIOD_LINE_DIRECTION_INPUT" +foreign import capi unsafe "gpiod.h value GPIOD_LINE_DIRECTION_INPUT" input :: LineDirection -foreign import capi safe "gpiod.h value GPIOD_LINE_DIRECTION_OUTPUT" +foreign import capi unsafe "gpiod.h value GPIOD_LINE_DIRECTION_OUTPUT" output :: LineDirection newtype LineValue = LineValue CInt deriving (Show, Storable) -foreign import capi safe "gpiod.h value GPIOD_LINE_VALUE_ACTIVE" +foreign import capi unsafe "gpiod.h value GPIOD_LINE_VALUE_ACTIVE" active :: LineValue -foreign import capi safe "gpiod.h value GPIOD_LINE_VALUE_INACTIVE" +foreign import capi unsafe "gpiod.h value GPIOD_LINE_VALUE_INACTIVE" inactive :: LineValue -foreign import capi unsafe "gpiod.h gpiod_line_settings_new" +foreign import ccall unsafe "gpiod.h gpiod_line_settings_new" lineSettingsNew :: IO (Ptr LineSettings) -foreign import capi unsafe "gpiod.h gpiod_line_settings_free" +foreign import ccall unsafe "gpiod.h gpiod_line_settings_free" lineSettingsFree :: Ptr LineSettings -> IO () -foreign import capi unsafe "gpiod.h gpiod_line_settings_set_direction" +foreign import ccall unsafe "gpiod.h gpiod_line_settings_set_direction" lineSettingsSetDirection :: Ptr LineSettings -> LineDirection -> IO CInt -foreign import capi unsafe "gpiod.h gpiod_line_settings_set_output_value" +foreign import ccall unsafe "gpiod.h gpiod_line_settings_set_output_value" lineSettingsSetOutputValue :: Ptr LineSettings -> LineValue -> IO CInt data LineConfig -foreign import capi unsafe "gpiod.h gpiod_line_config_new" +foreign import ccall unsafe "gpiod.h gpiod_line_config_new" lineConfigNew :: IO (Ptr LineConfig) -foreign import capi unsafe "gpiod.h gpiod_line_config_free" +foreign import ccall unsafe "gpiod.h gpiod_line_config_free" lineConfigFree :: Ptr LineConfig -> IO () -foreign import capi unsafe "gpiod.h gpiod_line_config_add_line_settings" +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 capi unsafe "gpiod.h gpiod_request_config_new" +foreign import ccall unsafe "gpiod.h gpiod_request_config_new" requestConfigNew :: IO (Ptr RequestConfig) -foreign import capi unsafe "gpiod.h gpiod_request_config_free" +foreign import ccall unsafe "gpiod.h gpiod_request_config_free" requestConfigFree :: Ptr RequestConfig -> IO () -foreign import capi unsafe "gpiod.h gpiod_request_config_set_consumer" +foreign import ccall unsafe "gpiod.h gpiod_request_config_set_consumer" requestConfigSetConsumer :: Ptr RequestConfig -> CString -> IO () data LineRequest -foreign import capi unsafe "gpiod.h gpiod_chip_request_lines" +foreign import ccall unsafe "gpiod.h gpiod_chip_request_lines" chipRequestLines :: Ptr Chip -> Ptr RequestConfig -> Ptr LineConfig -> IO (Ptr LineRequest) -foreign import capi unsafe "gpiod.h gpiod_line_request_release" +foreign import ccall unsafe "gpiod.h gpiod_line_request_release" lineRequestRelease :: Ptr LineRequest -> IO () -foreign import capi unsafe "gpiod.h gpiod_line_request_set_value" +foreign import ccall unsafe "gpiod.h gpiod_line_request_set_value" lineRequestSetValue :: Ptr LineRequest -> CUInt -> LineValue -> IO CInt -foreign import capi unsafe "gpiod.h gpiod_line_request_set_values" +foreign import ccall unsafe "gpiod.h gpiod_line_request_set_values" lineRequestSetValues :: Ptr LineRequest -> Ptr LineValue -> IO CInt |