aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Oliver <contact@pauloliver.dev>2025-08-20 02:26:57 +0000
committerPaul Oliver <contact@pauloliver.dev>2025-08-23 22:59:12 +0000
commitdea39a25938662e6af932bc9a957073d8364dde1 (patch)
tree83c6b464a0d50f68ebf58e048cd28de5faa116a3
parent307cb1b1094c73fd15eab378c27ac0073696b739 (diff)
Falls back to using `ccall` for `gpiod` calls
-rw-r--r--hsm-gpio/Hsm/GPIO/FFI.hs40
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