From dea39a25938662e6af932bc9a957073d8364dde1 Mon Sep 17 00:00:00 2001 From: Paul Oliver Date: Wed, 20 Aug 2025 02:26:57 +0000 Subject: Falls back to using `ccall` for `gpiod` calls --- hsm-gpio/Hsm/GPIO/FFI.hs | 40 ++++++++++++++++++++-------------------- 1 file 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 -- cgit v1.2.1