diff --git a/Cargo.lock b/Cargo.lock
index 39b5b13..efc5962 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -191,7 +191,7 @@ checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.72",
+ "syn 2.0.79",
 ]
 
 [[package]]
@@ -226,7 +226,7 @@ checksum = "a27b8a3a6e1a44fa4c8baf1f653e4172e81486d4941f2237e20dc2d0cf4ddff1"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.72",
+ "syn 2.0.79",
 ]
 
 [[package]]
@@ -369,6 +369,26 @@ version = "0.22.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6"
 
+[[package]]
+name = "bindgen"
+version = "0.70.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f49d8fed880d473ea71efb9bf597651e77201bdd4893efe54c9e5d65ae04ce6f"
+dependencies = [
+ "bitflags 2.6.0",
+ "cexpr",
+ "clang-sys",
+ "itertools",
+ "log",
+ "prettyplease",
+ "proc-macro2",
+ "quote",
+ "regex",
+ "rustc-hash",
+ "shlex",
+ "syn 2.0.79",
+]
+
 [[package]]
 name = "bitflags"
 version = "1.3.2"
@@ -588,6 +608,15 @@ version = "1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c"
 
+[[package]]
+name = "cexpr"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766"
+dependencies = [
+ "nom 7.1.3",
+]
+
 [[package]]
 name = "cfb"
 version = "0.7.3"
@@ -642,6 +671,17 @@ dependencies = [
  "windows-targets 0.52.6",
 ]
 
+[[package]]
+name = "clang-sys"
+version = "1.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4"
+dependencies = [
+ "glob",
+ "libc",
+ "libloading 0.8.5",
+]
+
 [[package]]
 name = "clap"
 version = "2.34.0"
@@ -945,7 +985,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331"
 dependencies = [
  "quote",
- "syn 2.0.72",
+ "syn 2.0.79",
 ]
 
 [[package]]
@@ -955,7 +995,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "edb49164822f3ee45b17acd4a208cfc1251410cf0cad9a833234c9890774dd9f"
 dependencies = [
  "quote",
- "syn 2.0.72",
+ "syn 2.0.79",
 ]
 
 [[package]]
@@ -1003,7 +1043,7 @@ dependencies = [
  "proc-macro2",
  "quote",
  "strsim 0.11.1",
- "syn 2.0.72",
+ "syn 2.0.79",
 ]
 
 [[package]]
@@ -1025,7 +1065,7 @@ checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806"
 dependencies = [
  "darling_core 0.20.10",
  "quote",
- "syn 2.0.72",
+ "syn 2.0.79",
 ]
 
 [[package]]
@@ -1079,7 +1119,7 @@ dependencies = [
  "proc-macro2",
  "quote",
  "rustc_version",
- "syn 2.0.72",
+ "syn 2.0.79",
 ]
 
 [[package]]
@@ -1200,7 +1240,7 @@ checksum = "f2b99bf03862d7f545ebc28ddd33a665b50865f4dfd84031a393823879bd4c54"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.72",
+ "syn 2.0.79",
 ]
 
 [[package]]
@@ -1316,7 +1356,7 @@ checksum = "de0d48a183585823424a4ce1aa132d174a6a81bd540895822eb4c8373a8e49e8"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.72",
+ "syn 2.0.79",
 ]
 
 [[package]]
@@ -1446,7 +1486,7 @@ checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.72",
+ "syn 2.0.79",
 ]
 
 [[package]]
@@ -1483,6 +1523,16 @@ dependencies = [
  "libc",
 ]
 
+[[package]]
+name = "fsv-sys"
+version = "0.1.0"
+dependencies = [
+ "bindgen",
+ "libc",
+ "libloading 0.8.5",
+ "thiserror",
+]
+
 [[package]]
 name = "fuchsia-zircon"
 version = "0.3.3"
@@ -1562,7 +1612,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.72",
+ "syn 2.0.79",
 ]
 
 [[package]]
@@ -1819,7 +1869,7 @@ dependencies = [
  "proc-macro-error",
  "proc-macro2",
  "quote",
- "syn 2.0.72",
+ "syn 2.0.79",
 ]
 
 [[package]]
@@ -1911,7 +1961,7 @@ dependencies = [
  "proc-macro-error",
  "proc-macro2",
  "quote",
- "syn 2.0.72",
+ "syn 2.0.79",
 ]
 
 [[package]]
@@ -2217,6 +2267,15 @@ dependencies = [
  "once_cell",
 ]
 
+[[package]]
+name = "itertools"
+version = "0.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186"
+dependencies = [
+ "either",
+]
+
 [[package]]
 name = "itoa"
 version = "0.4.8"
@@ -2372,15 +2431,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6e9ec52138abedcc58dc17a7c6c0c00a2bdb4f3427c7f63fa97fd0d859155caf"
 dependencies = [
  "gtk-sys",
- "libloading",
+ "libloading 0.7.4",
  "once_cell",
 ]
 
 [[package]]
 name = "libc"
-version = "0.2.155"
+version = "0.2.159"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c"
+checksum = "561d97a539a36e26a9a5fad1ea11a3039a67714694aaa379433e580854bc3dc5"
 
 [[package]]
 name = "libloading"
@@ -2392,6 +2451,16 @@ dependencies = [
  "winapi 0.3.9",
 ]
 
+[[package]]
+name = "libloading"
+version = "0.8.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4979f22fdb869068da03c9f7528f8297c6fd2606bc3a4affe42e6a823fdb8da4"
+dependencies = [
+ "cfg-if 1.0.0",
+ "windows-targets 0.52.6",
+]
+
 [[package]]
 name = "libredox"
 version = "0.1.3"
@@ -2553,6 +2622,12 @@ version = "0.3.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a"
 
+[[package]]
+name = "minimal-lexical"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
+
 [[package]]
 name = "miniz_oxide"
 version = "0.7.4"
@@ -2749,6 +2824,16 @@ dependencies = [
  "version_check",
 ]
 
+[[package]]
+name = "nom"
+version = "7.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a"
+dependencies = [
+ "memchr",
+ "minimal-lexical",
+]
+
 [[package]]
 name = "notify"
 version = "4.0.18"
@@ -2823,7 +2908,7 @@ dependencies = [
  "proc-macro-crate 3.1.0",
  "proc-macro2",
  "quote",
- "syn 2.0.72",
+ "syn 2.0.79",
 ]
 
 [[package]]
@@ -3203,7 +3288,7 @@ dependencies = [
  "phf_shared 0.11.2",
  "proc-macro2",
  "quote",
- "syn 2.0.72",
+ "syn 2.0.79",
 ]
 
 [[package]]
@@ -3250,7 +3335,7 @@ checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.72",
+ "syn 2.0.79",
 ]
 
 [[package]]
@@ -3341,6 +3426,16 @@ version = "0.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c"
 
+[[package]]
+name = "prettyplease"
+version = "0.2.22"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "479cf940fbbb3426c32c5d5176f62ad57549a0bb84773423ba8be9d089f5faba"
+dependencies = [
+ "proc-macro2",
+ "syn 2.0.79",
+]
+
 [[package]]
 name = "proc-macro-crate"
 version = "1.3.1"
@@ -3629,6 +3724,12 @@ version = "0.1.24"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f"
 
+[[package]]
+name = "rustc-hash"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
+
 [[package]]
 name = "rustc_version"
 version = "0.4.0"
@@ -3695,7 +3796,7 @@ dependencies = [
  "proc-macro2",
  "quote",
  "serde_derive_internals",
- "syn 2.0.72",
+ "syn 2.0.79",
 ]
 
 [[package]]
@@ -3767,7 +3868,7 @@ checksum = "e0cd7e117be63d3c3678776753929474f3b04a43a080c744d6b0ae2a8c28e222"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.72",
+ "syn 2.0.79",
 ]
 
 [[package]]
@@ -3778,7 +3879,7 @@ checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.72",
+ "syn 2.0.79",
 ]
 
 [[package]]
@@ -3810,7 +3911,7 @@ checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.72",
+ "syn 2.0.79",
 ]
 
 [[package]]
@@ -3861,7 +3962,7 @@ dependencies = [
  "darling 0.20.10",
  "proc-macro2",
  "quote",
- "syn 2.0.72",
+ "syn 2.0.79",
 ]
 
 [[package]]
@@ -3954,6 +4055,12 @@ version = "0.1.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "45bb67a18fa91266cc7807181f62f9178a6873bfad7dc788c42e6430db40184f"
 
+[[package]]
+name = "shlex"
+version = "1.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
+
 [[package]]
 name = "signal-hook-registry"
 version = "1.4.2"
@@ -4151,9 +4258,9 @@ dependencies = [
 
 [[package]]
 name = "syn"
-version = "2.0.72"
+version = "2.0.79"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dc4b9b9bf2add8093d3f2c0204471e951b2285580335de42f9d2534f3ae7a8af"
+checksum = "89132cd0bf050864e1d38dc3bbc07a0eb8e7530af26344d3d2bbbef83499f590"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -4350,7 +4457,7 @@ dependencies = [
  "serde",
  "serde_json",
  "sha2",
- "syn 2.0.72",
+ "syn 2.0.79",
  "tauri-utils",
  "thiserror",
  "time",
@@ -4368,7 +4475,7 @@ dependencies = [
  "heck 0.5.0",
  "proc-macro2",
  "quote",
- "syn 2.0.72",
+ "syn 2.0.79",
  "tauri-codegen",
  "tauri-utils",
 ]
@@ -4563,7 +4670,7 @@ checksum = "da31aef70da0f6352dbcb462683eb4dd2bfad01cf3fc96cf204547b9a839a585"
 dependencies = [
  "dirs 4.0.0",
  "fnv",
- "nom",
+ "nom 5.1.3",
  "phf 0.11.2",
  "phf_codegen 0.11.2",
 ]
@@ -4585,22 +4692,22 @@ checksum = "8eaa81235c7058867fa8c0e7314f33dcce9c215f535d1913822a2b3f5e289f3c"
 
 [[package]]
 name = "thiserror"
-version = "1.0.63"
+version = "1.0.64"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c0342370b38b6a11b6cc11d6a805569958d54cfa061a29969c3b5ce2ea405724"
+checksum = "d50af8abc119fb8bb6dbabcfa89656f46f84aa0ac7688088608076ad2b459a84"
 dependencies = [
  "thiserror-impl",
 ]
 
 [[package]]
 name = "thiserror-impl"
-version = "1.0.63"
+version = "1.0.64"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261"
+checksum = "08904e7672f5eb876eaaf87e0ce17857500934f4981c4a0ab2b4aa98baac7fc3"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.72",
+ "syn 2.0.79",
 ]
 
 [[package]]
@@ -4683,7 +4790,7 @@ checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.72",
+ "syn 2.0.79",
 ]
 
 [[package]]
@@ -4843,7 +4950,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.72",
+ "syn 2.0.79",
 ]
 
 [[package]]
@@ -5153,7 +5260,7 @@ dependencies = [
  "once_cell",
  "proc-macro2",
  "quote",
- "syn 2.0.72",
+ "syn 2.0.79",
  "wasm-bindgen-shared",
 ]
 
@@ -5187,7 +5294,7 @@ checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.72",
+ "syn 2.0.79",
  "wasm-bindgen-backend",
  "wasm-bindgen-shared",
 ]
@@ -5306,7 +5413,7 @@ checksum = "1d228f15bba3b9d56dde8bddbee66fa24545bd17b48d5128ccf4a8742b18e431"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.72",
+ "syn 2.0.79",
 ]
 
 [[package]]
@@ -5459,7 +5566,7 @@ checksum = "f6fc35f58ecd95a9b71c4f2329b911016e6bec66b3f2e6a4aad86bd2e99e2f9b"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.72",
+ "syn 2.0.79",
 ]
 
 [[package]]
@@ -5470,7 +5577,7 @@ checksum = "2bbd5b46c938e506ecbce286b6628a02171d56153ba733b6c741fc627ec9579b"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.72",
+ "syn 2.0.79",
 ]
 
 [[package]]
@@ -5481,7 +5588,7 @@ checksum = "08990546bf4edef8f431fa6326e032865f27138718c587dc21bc0265bbcb57cc"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.72",
+ "syn 2.0.79",
 ]
 
 [[package]]
@@ -5492,7 +5599,7 @@ checksum = "053c4c462dc91d3b1504c6fe5a726dd15e216ba718e84a0e46a88fbe5ded3515"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.72",
+ "syn 2.0.79",
 ]
 
 [[package]]
@@ -5902,7 +6009,7 @@ dependencies = [
  "proc-macro-crate 3.1.0",
  "proc-macro2",
  "quote",
- "syn 2.0.72",
+ "syn 2.0.79",
  "zvariant_utils",
 ]
 
@@ -5939,7 +6046,7 @@ dependencies = [
  "proc-macro-crate 3.1.0",
  "proc-macro2",
  "quote",
- "syn 2.0.72",
+ "syn 2.0.79",
  "zvariant_utils",
 ]
 
@@ -5951,5 +6058,5 @@ checksum = "c51bcff7cc3dbb5055396bcf774748c3dab426b4b8659046963523cee4808340"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.72",
+ "syn 2.0.79",
 ]
diff --git a/Cargo.toml b/Cargo.toml
index a4ff5d4..4c5d469 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -4,5 +4,6 @@ members = [
     "crates/backend",
     "crates/desktop",
     "crates/sesam-vitale",
+    "crates/fsv-sys",
     "crates/utils",
 ]
diff --git a/README.md b/README.md
index eb2ad78..8788108 100644
--- a/README.md
+++ b/README.md
@@ -9,6 +9,7 @@ Logiciel de Pharmacie libre et open-source.
     - `crates/desktop`: Client desktop propulsé par Tauri, exposant le `frontend`
     - `crates/sesam-vitale`: Bibliothèque de gestion des services SESAM-Vitale (Lecture des cartes CPS et Vitale, téléservices ...)
     - `crates/utils`: Bibliothèque de fonctions utilitaires
+    - `crates/fsv-sys`: Bindings Rust pour les librairies dynamiques FSV (SESAM-Vitale)
 - `frontend`: Interface web du logiciel, propulsée par Nuxt.js
 
 ## Installation
@@ -43,9 +44,9 @@ La CLI Tauri est nécessaire au lancement du client `desktop`. Elle peut être i
 cargo install tauri-cli --version "^2.0.0-rc"
 ```
 
-#### SESAM-Vitale
+#### FSV-sys
 
-La crate `sesam-vitale` nécessite la présence des librairies dynamiques fournies par le package FSV et la CryptolibCPS. Les instructions d'installation sont disponibles dans le [README](crates/sesam-vitale/README.md) de la crate `sesam-vitale`.
+La crate `fsv-sys` nécessite la présence des librairies fournies par le package FSV et la CryptolibCPS. Les instructions d'installation sont disponibles dans le [README](crates/sesam-vitale/README.md) de la crate `fsv-sys`.
 
 #### Backend Hot-reload
 
diff --git a/crates/fsv-sys/Cargo.toml b/crates/fsv-sys/Cargo.toml
new file mode 100644
index 0000000..f0028e8
--- /dev/null
+++ b/crates/fsv-sys/Cargo.toml
@@ -0,0 +1,17 @@
+[package]
+name = "fsv-sys"
+version = "0.1.0"
+edition = "2021"
+
+links = "ssvlux64,ssvosx,Ssvw64"
+# Linux: Libssvlux64.so
+# Windows: Ssvw64.dll
+# macOS: ssvosx.framework
+
+[dependencies]
+libc = "0.2.159"
+libloading = "0.8.5"
+thiserror = "1.0.64"
+
+[build-dependencies]
+bindgen = "0.70.1"
diff --git a/crates/fsv-sys/README.md b/crates/fsv-sys/README.md
new file mode 100644
index 0000000..85278bc
--- /dev/null
+++ b/crates/fsv-sys/README.md
@@ -0,0 +1,23 @@
+# FSV-sys, bindings Rust pour le package FSV SESAM-Vitale
+
+## Utilisation
+
+### Pré-requis
+
+- Installer le [package FSV](https://industriels.sesam-vitale.fr/group/fournitures-sesam-vitale)
+    - Les librairies dynamiques (.lib, .dll, ...) fournies ne sont pas installés dans les emplacements standard du système, il faudra donc configurer leur chemin d'installation dans le fichier de configuration `.env.build` (voir ci-dessous)
+        - Le détail des chemins d'installation est donné dans la documentation du package FSV `fsv-mi-004_pack-FSV1.40.14_V2.3.pdf`
+            - Linux - par défaut : `/opt/santesocial/fsv/1.40.13/lib`
+            - Windows - par défaut : `C:\Program Files\santesocial\santesocial\fsv\1.40.14\lib` (ou dans Program Files (x86) si c'est le package 32bits qui a été installé)
+
+- Installer la [CryptolibCPS](https://industriels.sesam-vitale.fr/group/galss-cryptolib-cps)
+    - Ce package fourni également l'utilitaire "CPS Gestion" pour obtenir des informations sur le lecteur de carte, etc.
+        - Linux : `cpgeslux`
+        - Windows : `...`
+
+## Développement
+
+### Pré-requis
+
+- Pour la génération des bindings lors de la pahse de `build` à l'aide de `bindgen`, il est nécessaire d'avoir installé `clang` ([documentation](https://rust-lang.github.io/rust-bindgen/requirements.html)).
+
diff --git a/crates/fsv-sys/build.rs b/crates/fsv-sys/build.rs
new file mode 100644
index 0000000..d65bc6c
--- /dev/null
+++ b/crates/fsv-sys/build.rs
@@ -0,0 +1,62 @@
+use std::{env, path::PathBuf};
+
+fn main() {
+    // // TODO: make the path dynamic
+    // println!("cargo:rustc-link-search=native=/home/florianbriand/TMP/SESAM-VITALE/FSV_1.40.1317_Linux/x86_64/Release/installeur/opt/santesocial/fsv/1.40.13/lib");
+
+    // Configure for various targets
+    let target_code;
+
+    // Use CARGO configuration env Variable, because !cfg(target_os) is not available in build.rs
+    // Source: https://kazlauskas.me/entries/writing-proper-buildrs-scripts
+    let target = env::var("TARGET").expect("TARGET not set");
+    let target_os = env::var("CARGO_CFG_TARGET_OS");
+
+    println!("Target: {:?}", target);
+
+    match  target_os.as_ref().map(|x| &**x) {
+        Ok("linux") => {
+            println!("Building for Linux");
+            // lib_name = "ssvlux64";
+            target_code = "linux";
+        },
+        Ok("windows") => {
+            println!("Building for Windows");
+            // lib_name = "Ssvw64";
+            target_code = "win";
+        },
+        Ok("macos") => {
+            println!("Building for MacOS");
+            // lib_name = "ssvosx";
+            target_code = "macosx";
+        },
+        tos => panic!("Unsupported target_os {:?}", tos),
+    }
+
+    // Link the library
+    // println!("cargo:rustc-link-lib={}", lib_name);
+
+    // Build the bindings
+    let wrapper_path = format!("vendor/fsv/1.40.14.13/includes/wrapper.{}.h", target_code);
+    let bindings = bindgen::Builder::default()
+        // The input header we would like to generate
+        // bindings for.
+        .header(wrapper_path)
+        // To generate the bindings for specific target
+        .clang_arg(format!("--target={}", target))
+        // Limit the bindings generation to the SSV_ prefix
+        .allowlist_item("SSV_.*")
+        // Tell cargo to invalidate the built crate whenever any of the
+        // included header files changed.
+        .parse_callbacks(Box::new(bindgen::CargoCallbacks::new()))
+        // Finish the builder and generate the bindings.
+        .generate()
+        // Unwrap the Result and panic on failure.
+        .expect("Unable to generate bindings");
+    
+    // Write the bindings to the $OUT_DIR/bindings.rs file.
+    let out_path = PathBuf::from(env::var("OUT_DIR").unwrap());
+    bindings
+        .write_to_file(out_path.join("bindings.rs"))
+        .expect("Couldn't write bindings!");
+}
\ No newline at end of file
diff --git a/crates/fsv-sys/src/lib.rs b/crates/fsv-sys/src/lib.rs
new file mode 100644
index 0000000..6e2d341
--- /dev/null
+++ b/crates/fsv-sys/src/lib.rs
@@ -0,0 +1,130 @@
+#![allow(non_upper_case_globals)]
+#![allow(non_camel_case_types)]
+#![allow(non_snake_case)]
+
+pub mod BINDINGS {
+    include!(concat!(env!("OUT_DIR"), "/bindings.rs"));
+}
+
+// We need to keep the this use statement to get `ssv_function` macro working well
+use BINDINGS::*;
+
+/// Macro to generate a function that implements a call to an external function in BINDINGS
+macro_rules! ssv_function {
+    ($binding:ty, $func_name:ident, {$($arg_name:ident: $arg_type:ty),*}) => {
+        /// # Safety
+        /// This function is unsafe because it calls an external function through FFI.
+        /// The caller must ensure that the provided arguments are valid and that the
+        /// external function is safe to call.
+        pub unsafe fn $func_name(&self, $($arg_name: $arg_type),*) -> Result<u16, Error> {
+            let func_struct: libloading::Symbol<'_, $binding> =
+                unsafe { self.library.get(stringify!($binding).as_bytes())? };
+            let func = match *func_struct {
+                Some(func) => func,
+                None => return Err(Error::SymbolMissing(stringify!($binding))),
+            };
+            Ok(func($($arg_name),*))
+        }
+    };
+}
+
+#[derive(thiserror::Error, Debug)]
+pub enum Error {
+    #[error(transparent)]
+    LibLoading(#[from] libloading::Error),
+    #[error("Symbol missing: {0}")]
+    SymbolMissing(&'static str),
+}
+
+/// Wrapper around the SESAM-VITALE library
+/// This struct is responsible for loading the library and providing an interface to call its functions.
+/// The library is loaded at creation and kept in memory until the struct is dropped.
+#[derive(Debug)]
+pub struct SSVLibrary {
+    library: libloading::Library,
+}
+
+pub fn get_library_path() -> String {
+    // TODO : Use libloading::library_filename to get platform-specific filename ?
+    "/opt/santesocial/fsv/1.40.13/lib/libssvlux64.so".to_string()
+}
+
+impl SSVLibrary {
+    pub fn new(library_path: &str) -> Result<Self, Error> {
+        let library = unsafe { libloading::Library::new(library_path)? };
+        Ok(SSVLibrary { library })
+    }
+
+    pub fn library(&self) -> &libloading::Library {
+        &self.library
+    }
+
+    ssv_function!(SSV_InitLIB2, ssv_init_lib2, {
+        pcFichierSesam: *const i8
+    });
+    
+    ssv_function!(SSV_LireConfig, ssv_lire_config, {
+        pZDataOut: *mut *mut libc::c_void,
+        psTailleDataOut: *mut usize
+    });
+
+    ssv_function!(SSV_LireCartePS, ssv_lire_carte_ps, {
+        NomRessourcePS: *const i8,
+        NomRessourceLecteur: *const i8,
+        CodePorteurPS: *const i8,
+        pZDataOut: *mut *mut libc::c_void,
+        pTailleZone: *mut usize
+    });
+}
+
+#[cfg(test)]
+mod test {
+    use std::{ffi::CString, ptr};
+
+    use super::*;         
+
+    #[test]
+    fn test_initlib2() {
+        let library_path = get_library_path();
+        let ssv_library = SSVLibrary::new(&library_path).expect("SSVLibrary::new failed");
+
+        let sesam_ini_str = CString::new("/etc/opt/santesocial/fsv/1.40.13/conf/sesam.ini")
+            .expect("CString::new failed");
+        let result = unsafe { ssv_library.ssv_init_lib2(sesam_ini_str.as_ptr()) }.unwrap();
+        assert_eq!(result, 0);
+    }
+
+    #[test]
+    fn test_lire_config_and_carte_ps() {
+        let library_path = get_library_path();
+        let ssv_library = SSVLibrary::new(&library_path).expect("SSVLibrary::new failed");
+
+        let sesam_ini_str = CString::new("/etc/opt/santesocial/fsv/1.40.13/conf/sesam.ini")
+            .expect("CString::new failed");
+        let result = unsafe { ssv_library.ssv_init_lib2(sesam_ini_str.as_ptr()) }.unwrap();
+        assert_eq!(result, 0);
+
+        let mut buffer_ptr: *mut libc::c_void = ptr::null_mut();
+        let mut size: libc::size_t = 0;
+        let result = unsafe { ssv_library.ssv_lire_config(&mut buffer_ptr, &mut size) }.unwrap();
+        assert_eq!(result, 0);
+
+        let nom_ressource_ps = CString::new("Gemalto PC Twin Reader (645D94C3) 00 00")
+            .expect("CString::new failed");
+        let nom_ressource_lecteur = CString::new("Gemalto PC Twin Reader (645D94C3) 00 00")
+            .expect("CString::new failed");
+        let code_porteur_ps = CString::new("1234").expect("CString::new failed");
+        let mut buffer_ptr: *mut libc::c_void = ptr::null_mut();
+        let mut size: libc::size_t = 0;
+        let result = unsafe {
+            ssv_library.ssv_lire_carte_ps(
+                nom_ressource_ps.as_ptr(),
+                nom_ressource_lecteur.as_ptr(),
+                code_porteur_ps.as_ptr(),
+                &mut buffer_ptr,
+                &mut size,
+            )
+        }.unwrap();
+        assert_eq!(result, 0);
+    }
+}
diff --git a/crates/fsv-sys/vendor/fsv/1.40.14.13/includes/SGD/sgd.h b/crates/fsv-sys/vendor/fsv/1.40.14.13/includes/SGD/sgd.h
new file mode 100644
index 0000000..d7b9520
--- /dev/null
+++ b/crates/fsv-sys/vendor/fsv/1.40.14.13/includes/SGD/sgd.h
@@ -0,0 +1,123 @@
+/*
+ * -------------------------------------------------------------------
+ * (c) 2001 GIE SESAM-VITALE
+ *
+ * PROJET   : Services de Gestion de Donnees
+ *
+ * FICHIER  : sgd.h (v4)
+ *
+ * Declaration des prototypes des fonctions SGD pour les progiciels.
+ * -------------------------------------------------------------------
+ */
+
+#ifndef __SGD_H__
+#define __SGD_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * Inclusions
+ */
+#include <stddef.h>
+#include "mc_sys_def.h"
+
+/* Reservation d'un session d'echange. */
+extern unsigned short API_ENTRY SGD_ReserverSession (size_t          Taille,                unsigned short* NumeroSession);
+
+/* Redimensionnement d'une zone d'entree interne. */
+extern unsigned short API_ENTRY
+SGD_RedimensionnerBuffer (unsigned short NumeroSession,
+                          size_t         NouvelleTaille);
+
+/* Liberation d'une session d'echange. */
+extern unsigned short API_ENTRY
+SGD_LibererSession (unsigned short NumeroSession);
+
+/* Ajout d'un groupe. */
+extern unsigned short API_ENTRY
+SGD_AjouterGroupe (unsigned short NumeroSession,
+                   unsigned short IdGroupe);
+
+/* Ajout d'un champ. */
+extern unsigned short API_ENTRY
+SGD_AjouterChamp (unsigned short NumeroSession,
+                  const char*    ValeurChamp);
+
+/* Ajout d'un champ d'octets. */
+extern unsigned short API_ENTRY
+SGD_AjouterChampBin (unsigned short NumeroSession,
+                     const char*    ValeurChamp,
+                     size_t         TailleChamp);
+
+/* Ajout d'un champ d'octets d'un Fichier. */
+extern unsigned short API_ENTRY
+SGD_AjouterChampFichier (unsigned short NumeroSession,
+                         const char*    NomFichier);
+
+/* Lecture du numero du groupe suivant. */
+extern unsigned short API_ENTRY
+SGD_LireGroupeSuivant (unsigned short  NumeroSession,
+                       unsigned short  IdGroupeCourant,
+                       unsigned short  OccurrenceGroupeCourant,
+                       unsigned short* IdGroupeSuivant,
+                       unsigned short* OccurrenceGroupeSuivant);
+
+/* Lecture d'un champ. */
+extern unsigned short API_ENTRY
+SGD_LireChamp (unsigned short NumeroSession,
+               unsigned short IdGroupe,
+               unsigned short OccurrenceGroupe,
+               unsigned short NumeroChamp,
+               char*          ValeurChamp,
+               size_t*        TailleMax);
+
+/* Lecture d'un champ d'octets. */
+extern unsigned short API_ENTRY
+SGD_LireChampBin (unsigned short NumeroSession,
+                  unsigned short IdGroupe,
+                  unsigned short OccurrenceGroupe,
+                  unsigned short NumeroChamp,
+                  char*          ValeurChamp,
+                  size_t*        TailleMax);
+
+/* Lecture d'un champ vers un fichier. */
+extern unsigned short API_ENTRY
+SGD_LireChampFichier (unsigned short NumeroSession,
+                      unsigned short IdGroupe,
+                      unsigned short OccurrenceGroupe,
+                      unsigned short NumeroChamp,
+                      const char*    NomFichier);
+
+/* Activation de la trace. */
+extern unsigned short API_ENTRY
+SGD_InitTrace (const char*    NomFichier,
+               const char*    ModeOuverture,
+               unsigned short Module,
+               unsigned char  Niveau);
+
+/*Initialisation de SGD*/
+unsigned short API_ENTRY SGD_Init(const char *fichierSesam);
+
+/* Transmission de la zone d'entrée. */
+extern unsigned short API_ENTRY SGD_LireZoneIn(unsigned short NumeroSession,
+				void**         ZDonneesEntree,
+				size_t*        TailleDonneesEntree);
+
+/* Transmission de la zone de sortie. */
+typedef void (API_ENTRY *LibererZoneMem) (void* Zone);
+
+
+extern unsigned short API_ENTRY SGD_EcrireZoneOut(unsigned short NumeroSession,
+				   void*          ZDonneesSortie,
+				   size_t         TailleDonneesSortie,
+				   LibererZoneMem Fonction);
+                   
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/crates/fsv-sys/vendor/fsv/1.40.14.13/includes/SRT/srt.h b/crates/fsv-sys/vendor/fsv/1.40.14.13/includes/SRT/srt.h
new file mode 100644
index 0000000..0e30d7b
--- /dev/null
+++ b/crates/fsv-sys/vendor/fsv/1.40.14.13/includes/SRT/srt.h
@@ -0,0 +1,176 @@
+/*
+ * -------------------------------------------------------------------
+ * (c) 2001-2003 GIE SESAM-VITALE
+ *
+ * PROJET   : Services Reglementation et Tarification
+ *
+ * FICHIER  : srt.h (v5)
+ *
+ * Declaration des prototypes des fonctions SRT
+ * -------------------------------------------------------------------
+ */
+
+#ifndef __SRT_H__
+#define __SRT_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+    /*
+     * Inclusions
+     */
+#include <stddef.h>
+/* Inclure le fichier de d�clarations sp�cifiques syst�me : win32def.h, macosdef.h, unixdef.h, etc. */
+
+
+/*
+* Declarations des fonctions publiques "standards"
+*/
+
+/* Recherche de codes CCAM par mot cle. */
+typedef unsigned short (API_ENTRY FARPTR SRT_RechercherParMotCle)
+    (const char*    MotCle,
+     unsigned long  CadreRecherche,
+     void**         ZDonneesSortie,
+     size_t*        TailleDonneesSortie);
+
+/* Recherche de codes CCAM par filtre. */
+typedef unsigned short (API_ENTRY FARPTR SRT_RechercherParFiltre)
+    (const char*    Filtre,
+     void**         ZDonneesSortie,
+     size_t*        TailleDonneesSortie);
+
+/* Consultation de donnees CCAM. */
+typedef unsigned short (API_ENTRY FARPTR SRT_ConsulterDonnee)
+    (const char*    Identifiant,
+     const char*    DateReference,
+     void*          ZDonneesEntree,
+     size_t         TailleDonneesEntree,
+     void**         ZDonneesSortie,
+     size_t*        TailleDonneesSortie);
+
+/* Modification d'un champ mono-occurrent. */
+typedef unsigned short (API_ENTRY FARPTR SRT_ModifierDonnee)
+    (const char*    Identifiant,
+     const char*    DateEffet,
+     void*          ZDonneesEntree,
+     size_t         TailleDonneesEntree);
+
+/* Annulation d'une modification */
+typedef unsigned short (API_ENTRY FARPTR SRT_AnnulerModification)
+    (const char*    Identifiant,
+     void*          ZDonneesEntree,
+     size_t         TailleDonneesEntree);
+
+/* Controle de la validite d'une ou plusieurs donnees. */
+typedef unsigned short (API_ENTRY FARPTR SRT_ControlerDonnees)
+    (const char*    Identifiant,
+     const char*    DateReference,
+     void*          ZDonneesEntree,
+     size_t         TailleDonneesEntree,
+     unsigned char* Resultat);
+
+/* Regle de gestion ou de tarification. */
+typedef unsigned short (API_ENTRY FARPTR SRT_AppliquerRegle)
+    (const char*    Identifiant,
+     void*          ZDonneesEntree,
+     size_t         TailleDonneesEntree,
+     void**         ZDonneesSortie,
+     size_t*        TailleDonneesSortie);
+
+/* Controle complet. */
+typedef unsigned short (API_ENTRY FARPTR SRT_ControleComplet)
+    (void*          ZDonneesEntree,
+     size_t         TailleDonneesEntree,
+     void**         ZDonneesSortie,
+     size_t*        TailleDonneesSortie);
+
+/* Chargement du referentiel. */
+typedef unsigned short (API_ENTRY FARPTR SRT_InitLIB2)(const char* SesamIni);
+
+/* Dechargement du referentiel. */
+typedef unsigned short (API_ENTRY FARPTR SRT_TermLIB)(void);
+
+/* Sauvegarde des modifications. */
+typedef unsigned short (API_ENTRY FARPTR SRT_SauvegarderReferentiel)(const char* Commentaire);
+
+/* Version du referentiel. */
+typedef unsigned short (API_ENTRY FARPTR SRT_LireVersion)
+    (void**         ZDonneesSortie,
+     size_t*        TailleDonneesSortie);
+
+/* Activation de la trace. */
+typedef unsigned short (API_ENTRY FARPTR SRT_InitTrace)
+	(const char*    pathConf,
+     const char*    ModeOuverture,
+     unsigned short Module,
+     unsigned char  Niveau);
+
+/* Allocation d'une zone memoire. */
+typedef unsigned short (API_ENTRY FARPTR SRT_AllouerZoneMem)
+    (void**         Zone,
+     size_t         Taille);
+
+/* Allocation d'une zone memoire. */
+typedef void (API_ENTRY FARPTR SRT_LibererZoneMem) (void*  Zone);
+
+/*
+* Declarations des fonctions publiques "simplifiees"
+*/
+
+/* Recherche de codes CCAM par mot cle. */
+typedef unsigned short (API_ENTRY FARPTR SRT_RechercherParMotCle_S)
+    (const char*    MotCle,
+     unsigned long  CadreRecherche,
+     unsigned short NumeroSession);
+
+/* Recherche de codes CCAM par filtre. */
+typedef unsigned short (API_ENTRY FARPTR SRT_RechercherParFiltre_S)
+    (const char*    Filtre,
+     unsigned short NumeroSession);
+
+/* Consultation de donnees CCAM. */
+typedef unsigned short (API_ENTRY FARPTR SRT_ConsulterDonnee_S)
+    (const char*    Identifiant,
+     const char*    DateReference,
+     unsigned short NumeroSession);
+
+/* Modification d'un champ mono-occurrent. */
+typedef unsigned short (API_ENTRY FARPTR SRT_ModifierDonnee_S)
+    (const char*    Identifiant,
+     const char*    DateEffet,
+     unsigned short NumeroSession);
+
+/* Annulation des modifications d'une donnee. */
+typedef unsigned short (API_ENTRY FARPTR SRT_AnnulerModification_S)
+    (const char*    Identifiant,
+     unsigned short NumeroSession);
+
+/* Controle de la validite d'une ou plusieurs donnees. */
+typedef unsigned short (API_ENTRY FARPTR SRT_ControlerDonnees_S)
+    (const char*    Identifiant,
+     const char*    DateReference,
+     unsigned short NumeroSession,
+     unsigned char* Resultat);
+
+/* Regle de gestion ou de tarification. */
+typedef unsigned short (API_ENTRY FARPTR SRT_AppliquerRegle_S)
+    (const char*    Identifiant,
+     unsigned short NumeroSession);
+
+/* Controle complet. */
+typedef unsigned short (API_ENTRY FARPTR SRT_ControleComplet_S)
+    (unsigned short NumeroSession);
+
+/* Version du referentiel. */
+typedef unsigned short (API_ENTRY FARPTR SRT_LireVersion_S)
+    (unsigned short NumeroSession);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/crates/fsv-sys/vendor/fsv/1.40.14.13/includes/SSV/pourFSV1.40.13/ssv.h b/crates/fsv-sys/vendor/fsv/1.40.14.13/includes/SSV/pourFSV1.40.13/ssv.h
new file mode 100644
index 0000000..2a46c9d
--- /dev/null
+++ b/crates/fsv-sys/vendor/fsv/1.40.14.13/includes/SSV/pourFSV1.40.13/ssv.h
@@ -0,0 +1,327 @@
+/*
+ * -------------------------------------------------------------------
+ * (c) 2001-2003 GIE SESAM-VITALE
+ *
+ * PROJET   : Services SESAM Vitale
+ *
+ * FICHIER  : ssv.h 
+ *
+ * Declaration des prototypes des fonctions SSV
+ * -------------------------------------------------------------------
+ */
+
+#ifndef __SSV_H__
+#define __SSV_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/*
+ * Inclusions
+ */
+#include <stddef.h>
+/* Inclure le fichier de d�clarations sp�cifiques syst�me :
+   win32def.h, macosdef.h, aixdef.h, etc. */
+
+
+/****** FONCTIONS STANDARDS *********/
+						
+typedef unsigned short (API_ENTRY FARPTR SSV_TraduireARL)
+						 (short                   NbZDataIn,
+                          void   FARPTR FARPTR    TZDataIn,
+                          size_t FARPTR           TTailleZoneIn,
+                          void FARPTR FARPTR		pZDataOut,
+						  size_t FARPTR			pTailleZoneOut);
+
+typedef unsigned short (API_ENTRY FARPTR SSV_LireCartePS)
+                (const char FARPTR NomRessourcePS, 
+                 const char FARPTR NomRessourceLecteur, 
+                 const char FARPTR CodePorteurPS, 
+                 void FARPTR FARPTR pZDataOut, 
+                 size_t FARPTR pTailleZone);
+
+typedef unsigned short (API_ENTRY FARPTR SSV_LireConfig)
+				(void FARPTR FARPTR pZDataOut, 
+				 size_t FARPTR psTailleDataOut);
+
+typedef unsigned short (API_ENTRY FARPTR SSV_FormaterFactures)
+						(const char FARPTR NomRessourcePS,
+						const char FARPTR NomRessourceLecteur,
+						const char FARPTR CodePorteurPS,
+						char cFactureACreer,
+						char cModeSecur,
+						void FARPTR pZDataIn,
+						size_t TailleDataIn,
+						void FARPTR FARPTR pZDataOut,
+						size_t FARPTR pTailleZone);
+
+typedef unsigned short (API_ENTRY FARPTR SSV_FormaterLot)
+						(	const char FARPTR	NomRessourcePS,
+              			 	const char FARPTR	NomRessourceLecteur,
+               				const char FARPTR	CodePorteurPS,
+               				short				NBZDataIn,
+               				void FARPTR FARPTR	TZDataIn,
+               				size_t	FARPTR		TTailleZoneIn,
+			   				short FARPTR 		pNbZDataOut,
+                			void FARPTR FARPTR	TZDataOut,
+                			size_t	FARPTR		TTailleZoneOut);
+
+typedef unsigned short (API_ENTRY FARPTR SSV_FormaterFichier)
+						 (void FARPTR pZDataIn,size_t TailleDataIn,
+						 void FARPTR FARPTR pZDataOut,size_t FARPTR pTailleZone);
+
+
+typedef unsigned short  (API_ENTRY FARPTR SSV_InitTrace)
+						(char FARPTR pathConf, char FARPTR ModeOuverture,
+						 unsigned short Module, unsigned char Niveau);
+						  
+
+typedef unsigned short  (API_ENTRY FARPTR SSV_AllouerZoneMem)
+						(void FARPTR FARPTR pZDataIn,
+						 size_t taille);
+						     
+typedef void (API_ENTRY FARPTR SSV_LibererZoneMem)
+						(void FARPTR pZone);
+
+typedef unsigned short  (API_ENTRY FARPTR SSV_MajDateLecteur)
+						(const char FARPTR pcNomRessourceLecteur,
+						 const char FARPTR pcDateHeure);
+
+typedef unsigned short  (API_ENTRY FARPTR SSV_LireDateLecteur)
+						(const char FARPTR pcNomRessourceLecteur,
+						 char FARPTR pcDateHeure);
+
+
+typedef unsigned short (API_ENTRY FARPTR SSV_LireDroitsVitale)
+                (const char FARPTR NomRessourcePS, 
+                 const char FARPTR NomRessourceLecteur, 
+                 const char FARPTR CodePorteurPS, 
+                 const char FARPTR DateConsultation, 
+                 void FARPTR FARPTR pZDataOut, 
+                 size_t FARPTR pTailleZone);
+
+
+typedef unsigned short  (API_ENTRY FARPTR SSV_IdentifierTLA)
+						(const char FARPTR pcNomRessourceLecteur, 
+						 const char FARPTR NumVersionCDC,
+	    				 void FARPTR FARPTR pZDataOut, 
+	    				 size_t FARPTR tailleDataOut);
+
+typedef unsigned short (API_ENTRY FARPTR SSV_DechargerFacturesPdT)
+						(	const char FARPTR	NomRessourcePS,
+              			 	const char FARPTR	NomRessourceLecteur,
+               				const char FARPTR	CodePorteurPS,
+               				const char FARPTR	pcNumFact,
+							short sNbZDataIn,
+						    void FARPTR FARPTR pvTZDataIn, 
+						    size_t FARPTR psTTailleDataIn,
+			   				short FARPTR 		pNbZDataOut,
+                			void FARPTR FARPTR	TZDataOut,
+                			size_t	FARPTR		TTailleZoneOut);
+
+typedef unsigned short (API_ENTRY FARPTR SSV_DechargerFSETLA)
+						(	const char FARPTR	NomRessourcePS,
+              			 	const char FARPTR	NomRessourceLecteur,
+               				const char FARPTR	CodePorteurPS,
+               				const char FARPTR	pcNumFact,
+			   				short FARPTR 		pNbZDataOut,
+                			void FARPTR FARPTR	TZDataOut,
+                			size_t	FARPTR		TTailleZoneOut);
+
+typedef unsigned short (API_ENTRY FARPTR SSV_DechargerFSETLANC)
+						(	const char FARPTR	NomRessourcePS,
+              			 	const char FARPTR	NomRessourceLecteur,
+               				const char FARPTR	CodePorteurPS,
+               				const char FARPTR	pcNumFact,
+			   				short FARPTR 		pNbZDataOut,
+                			void FARPTR FARPTR	TZDataOut,
+                			size_t	FARPTR		TTailleZoneOut);
+typedef unsigned short (API_ENTRY FARPTR SSV_EffacerTLA)
+					(const char FARPTR NomRessourcePS,
+					 const char FARPTR NomRessourceLecteur,
+					 const char FARPTR CodePorteurPS, 	
+					 const char FARPTR cNumFacturation,
+					 const char FARPTR cTypeDonnee);
+
+typedef unsigned short (API_ENTRY FARPTR SSV_ChargerFacturesPdT)
+						(const char FARPTR pcNomRessourceLecteur,
+						const char FARPTR pcNumFacturation, 
+						short sNbZDataIn,
+						void FARPTR FARPTR pvTZDataIn, 
+						size_t FARPTR psTTailleDataIn,
+						short FARPTR 		pNbZDataOut,
+                		void FARPTR FARPTR	TZDataOut,
+                		size_t	FARPTR		TTailleZoneOut); 
+
+typedef unsigned short (API_ENTRY FARPTR SSV_ChargerAppli)
+						(const char FARPTR pcNomRessourceLecteur, 
+						short sNbZDataIn,
+						void FARPTR FARPTR pvTZDataIn, 
+						size_t FARPTR psTTailleDataIn);
+
+typedef unsigned short (API_ENTRY FARPTR SSV_ChargerDonneesTLA)
+						(const char FARPTR pcNomRessourceLecteur, 
+						short sNbZDataIn,
+						void FARPTR FARPTR pvTZDataIn, 
+						size_t FARPTR psTTailleDataIn);
+
+typedef unsigned short (API_ENTRY FARPTR SSV_DechargerBeneficiaires)                 
+                 (const char FARPTR   NomRessourcePS,
+		          const char FARPTR	  NomRessourceLecteur,
+		          const char FARPTR	  CodePorteurPS,
+		          const char FARPTR	  cNumFacturation,
+				  short FARPTR		  sNbZDataOut, 
+				  void FARPTR FARPTR  pTZDataOut, 
+				  size_t FARPTR		  sTTailleDataOut);
+
+typedef unsigned short (API_ENTRY FARPTR SSV_TraduireFSE)
+				 (void FARPTR pZDataIn,
+				  size_t TailleDataIn,
+				  void FARPTR FARPTR pZDataOut,
+				  size_t FARPTR pTailleZone);
+
+typedef unsigned short (API_ENTRY FARPTR SSV_SecuriserFacture)
+                 (const char FARPTR pcNomRessourcePS,
+				  const char FARPTR pcNomRessourceLecteur,
+				  const char FARPTR pcCodePorteurPS, 
+				  char cNologSituation,
+				  const char FARPTR  pcNumFact,
+				  void FARPTR pvDataIn,
+				  size_t       szTailleDataIn ,
+				  void FARPTR FARPTR pvDataOut, 
+				  size_t FARPTR pszTailleDataOut);
+
+typedef unsigned short (API_ENTRY FARPTR SSV_InitLIB2) (const char FARPTR pcFichierSesam);
+
+typedef unsigned short (API_ENTRY FARPTR SSV_TermLIB)();
+
+
+
+/****** FONCTIONS SIMPLIFIEES *********/
+
+typedef unsigned short (API_ENTRY FARPTR SIS_TraduireARL)
+						 (unsigned short numeroSession);
+
+typedef unsigned short (API_ENTRY FARPTR SIS_LireCartePS)
+                (const char FARPTR NomRessourcePS, 
+                 const char FARPTR NomRessourceLecteur, 
+                 const char FARPTR CodePorteurPS,
+                 unsigned short numeroSession);
+
+typedef unsigned short (API_ENTRY FARPTR SIS_LireConfig)
+				(unsigned short numeroSession);
+
+
+typedef unsigned short (API_ENTRY FARPTR SIS_FormaterFactures)
+						(const char FARPTR NomRessourcePS,
+						const char FARPTR NomRessourceLecteur,
+						const char FARPTR CodePorteurPS,
+						char cFacturesACreer,
+						char ModeSecur,
+                        unsigned short numeroSession);
+
+typedef unsigned short (API_ENTRY FARPTR SIS_FormaterLot)
+						( const char FARPTR	NomRessourcePS,
+              			 const char FARPTR	NomRessourceLecteur,
+               			 const char FARPTR	CodePorteurPS,
+				         unsigned short numeroSession);
+
+typedef unsigned short (API_ENTRY FARPTR SIS_FormaterFichier)
+						 (unsigned short numeroSession);
+
+typedef unsigned short  (API_ENTRY FARPTR SIS_InitTrace)
+						(char FARPTR NomFichier, char FARPTR ModeOuverture,
+						 unsigned short Module, unsigned char Niveau);
+						  
+
+typedef unsigned short  (API_ENTRY FARPTR SIS_MajDateLecteur)
+						(const char FARPTR pcNomRessourceLecteur,
+						 const char FARPTR pcDateHeure);
+
+typedef unsigned short  (API_ENTRY FARPTR SIS_LireDateLecteur)
+						(const char FARPTR pcNomRessourceLecteur,
+						 char FARPTR pcDateHeure);
+
+
+typedef unsigned short (API_ENTRY FARPTR SIS_LireDroitsVitale)
+                (const char FARPTR NomRessourcePS, 
+                 const char FARPTR NomRessourceLecteur, 
+                 const char FARPTR CodePorteurPS, 
+                 const char FARPTR DateConsultation,
+                 unsigned short numeroSession); 
+
+typedef unsigned short  (API_ENTRY FARPTR SIS_IdentifierTLA)
+						(const char FARPTR pcNomRessourceLecteur, 
+						 const char FARPTR NumVersionCDC,
+                         unsigned short numeroSession );
+
+typedef unsigned short (API_ENTRY FARPTR SIS_DechargerFacturesPdT)
+						( const char FARPTR	NomRessourcePS,
+              			 	const char FARPTR	NomRessourceLecteur,
+               				const char FARPTR	CodePorteurPS,
+               				const char FARPTR	pcNumFact,
+                                         unsigned short numeroSession);
+
+typedef unsigned short (API_ENTRY FARPTR SIS_DechargerFSETLA)
+						(const char FARPTR	NomRessourcePS,
+              			 	const char FARPTR	NomRessourceLecteur,
+               				const char FARPTR	CodePorteurPS,
+               				const char FARPTR	pcNumFact,
+                                        unsigned short numeroSession);
+
+typedef unsigned short (API_ENTRY FARPTR SIS_DechargerFSETLANC)
+						(const char FARPTR	NomRessourcePS,
+              			 	const char FARPTR	NomRessourceLecteur,
+               				const char FARPTR	CodePorteurPS,
+               				const char FARPTR	pcNumFact,
+                                        unsigned short numeroSession);
+typedef unsigned short (API_ENTRY FARPTR SIS_EffacerTLA)
+					(const char FARPTR NomRessourcePS,
+					 const char FARPTR NomRessourceLecteur,
+					 const char FARPTR CodePorteurPS, 	
+					 const char FARPTR cNumFacturation,
+					 const char FARPTR cTypeDonnee);
+
+typedef unsigned short (API_ENTRY FARPTR SIS_ChargerFacturesPdT)
+						(const char FARPTR pcNomRessourceLecteur,
+						 const char FARPTR pcNumFacturation,
+                                                 unsigned short numeroSession); 
+
+typedef unsigned short (API_ENTRY FARPTR SIS_ChargerAppli)
+						(const char FARPTR pcNomRessourceLecteur,
+                                                  unsigned short numeroSession);
+
+typedef unsigned short (API_ENTRY FARPTR SIS_ChargerDonneesTLA)
+						(const char FARPTR pcNomRessourceLecteur,
+                                                unsigned short numeroSession);
+
+typedef unsigned short (API_ENTRY FARPTR SIS_DechargerBeneficiaires)                 
+                 (	  const char FARPTR   NomRessourcePS,
+		          const char FARPTR	  NomRessourceLecteur,
+		          const char FARPTR	  CodePorteurPS,
+		          const char FARPTR	  cNumFacturation,
+                          unsigned short numeroSession);
+
+typedef unsigned short (API_ENTRY FARPTR SIS_TraduireFSE)
+				 (unsigned short numeroSession);
+
+typedef unsigned short (API_ENTRY FARPTR SIS_SecuriserFacture)
+                 ( const char FARPTR pcNomRessourcePS,
+				  const char FARPTR pcNomRessourceLecteur,
+				  const char FARPTR pcCodePorteurPS, 
+				  char cNologSituation,
+				  const char FARPTR  pcNumFact,
+                                  unsigned short numeroSession);
+						  
+
+
+
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/crates/fsv-sys/vendor/fsv/1.40.14.13/includes/SSV/pourFSV1.40.14/ssv.h b/crates/fsv-sys/vendor/fsv/1.40.14.13/includes/SSV/pourFSV1.40.14/ssv.h
new file mode 100644
index 0000000..e47b72d
--- /dev/null
+++ b/crates/fsv-sys/vendor/fsv/1.40.14.13/includes/SSV/pourFSV1.40.14/ssv.h
@@ -0,0 +1,412 @@
+/*
+ * -------------------------------------------------------------------
+ * (c) 2001-2003 GIE SESAM-VITALE
+ *
+ * PROJET   : Services SESAM Vitale
+ *
+ * FICHIER  : ssv.h 
+ *
+ * Declaration des prototypes des fonctions SSV
+ * -------------------------------------------------------------------
+ */
+
+#ifndef __SSV_H__
+#define __SSV_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/*
+ * Inclusions
+ */
+#include <stddef.h>
+/* Inclure le fichier de d�clarations sp�cifiques syst�me :
+   win32def.h, macosdef.h, aixdef.h, etc. */
+
+
+/****** FONCTIONS STANDARDS *********/
+						
+typedef unsigned short (API_ENTRY FARPTR SSV_TraduireARL)
+						 (short                   NbZDataIn,
+                          void   FARPTR FARPTR    TZDataIn,
+                          size_t FARPTR           TTailleZoneIn,
+                          void FARPTR FARPTR		pZDataOut,
+						  size_t FARPTR			pTailleZoneOut);
+
+typedef unsigned short (API_ENTRY FARPTR SSV_LireCartePS)
+                (const char FARPTR NomRessourcePS, 
+                 const char FARPTR NomRessourceLecteur, 
+                 const char FARPTR CodePorteurPS, 
+                 void FARPTR FARPTR pZDataOut, 
+                 size_t FARPTR pTailleZone);
+
+typedef unsigned short (API_ENTRY FARPTR SSV_LireConfig)
+				(void FARPTR FARPTR pZDataOut, 
+				 size_t FARPTR psTailleDataOut);
+
+typedef unsigned short (API_ENTRY FARPTR SSV_FormaterFactures)
+						(char cFactureACreer,
+						char cModeSecur,
+						char cTypeFlux,
+						void FARPTR pZDataIn,
+						size_t TailleDataIn,
+						void FARPTR FARPTR pZDataOut,
+						size_t FARPTR pTailleZone);
+
+typedef unsigned short (API_ENTRY FARPTR SSV_ChiffrerFacture)
+						(void * pZDataIn,
+						 size_t TailleDataIn, 
+						 void * * pZDataOut, 
+						 size_t * pTailleZone);
+
+typedef unsigned short (API_ENTRY FARPTR SSV_SignerFactureVitale)
+						(const char * pcNomRessourceVitale,
+						 void * pZDataIn, 
+						 size_t szTailleDataIn, 
+						 void * * pZDataOut, 
+						 size_t * pszTailleZone);
+
+typedef unsigned short (API_ENTRY FARPTR SSV_CalculerHashFactureAssure)
+						(const char * pcNumSerie,
+						 void * pZDataIn, 
+						 size_t szTailleDataIn, 
+						 void * * pZDataOut, 
+						 size_t * pszTailleZone);
+
+typedef unsigned short (API_ENTRY FARPTR SSV_AjouterSignatureAssureDansFacture)
+						(void * pZDataIn,
+						 size_t szTailleDataIn, 
+						 void * * pZDataOut, 
+						 size_t * pszTailleZone);
+
+typedef unsigned short (API_ENTRY FARPTR SSV_SignerFactureCPS)
+						(const char * pcNomRessourcePS,
+						const char * pcNomRessourceLecteur,
+						const char * pcCodePorteurPS,
+						char cNologSituation,
+						void * pZDataIn,
+						size_t szTailleDataIn,
+						void * * pZDataOut,
+						size_t * pszTailleZone);
+
+typedef unsigned short (API_ENTRY SSV_CalculerHashFacturePS)
+						(const char * pcNumSerieCPS,
+						void * pZDataIn, 
+						size_t usTailleDataIn, 
+						void * * pZDataOut, 
+						size_t * pusTailleZone);
+						
+typedef unsigned short (API_ENTRY SSV_AjouterSignaturePSFacture)
+						(void * pZDataIn,
+						size_t szTailleDataIn, 
+						 void * * pZDataOut, 
+						 size_t * pszTailleZone);
+
+typedef unsigned short (API_ENTRY FARPTR SSV_SignerLotCPS)
+						(const char * pcNomRessourcePS,
+						const char * pcNomRessourceLecteur,
+						const char * pcCodePorteurPS,
+						char cNologSituation,
+						void * pZDataIn,
+						size_t szTailleDataIn,
+						void * * pZDataOut,
+						size_t * pszTailleZone);
+
+typedef unsigned short (API_ENTRY FARPTR SSV_FormaterLot)
+						(	short				NBZDataIn,
+               				void FARPTR FARPTR	TZDataIn,
+               				size_t	FARPTR		TTailleZoneIn,
+			   				short FARPTR 		pNbZDataOut,
+                			void FARPTR FARPTR	TZDataOut,
+                			size_t	FARPTR		TTailleZoneOut);
+
+typedef unsigned short (API_ENTRY FARPTR SSV_FormaterFichier)
+						 (void FARPTR pZDataIn,size_t TailleDataIn,
+						 void FARPTR FARPTR pZDataOut,size_t FARPTR pTailleZone);
+
+
+typedef unsigned short  (API_ENTRY FARPTR SSV_InitTrace)
+						(char FARPTR pathConf, char FARPTR ModeOuverture,
+						 unsigned short Module, unsigned char Niveau);
+						  
+
+typedef unsigned short  (API_ENTRY FARPTR SSV_AllouerZoneMem)
+						(void FARPTR FARPTR pZDataIn,
+						 size_t taille);
+						     
+typedef void (API_ENTRY FARPTR SSV_LibererZoneMem)
+						(void FARPTR pZone);
+
+typedef unsigned short  (API_ENTRY FARPTR SSV_MajDateLecteur)
+						(const char FARPTR pcNomRessourceLecteur,
+						 const char FARPTR pcDateHeure);
+
+typedef unsigned short  (API_ENTRY FARPTR SSV_LireDateLecteur)
+						(const char FARPTR pcNomRessourceLecteur,
+						 char FARPTR pcDateHeure);
+
+
+typedef unsigned short (API_ENTRY FARPTR SSV_LireDroitsVitale)
+                (const char FARPTR NomRessourcePS, 
+                 const char FARPTR NomRessourceLecteur, 
+                 const char FARPTR CodePorteurPS, 
+                 const char FARPTR DateConsultation, 
+                 void FARPTR FARPTR pZDataOut, 
+                 size_t FARPTR pTailleZone);
+
+
+typedef unsigned short  (API_ENTRY FARPTR SSV_IdentifierTLA)
+						(const char FARPTR pcNomRessourceLecteur, 
+						 const char FARPTR NumVersionCDC,
+	    				 void FARPTR FARPTR pZDataOut, 
+	    				 size_t FARPTR tailleDataOut);
+
+typedef unsigned short (API_ENTRY FARPTR SSV_DechargerFacturesPdT)
+						(	const char FARPTR	NomRessourcePS,
+              			 	const char FARPTR	NomRessourceLecteur,
+               				const char FARPTR	CodePorteurPS,
+               				const char FARPTR	pcNumFact,
+							short sNbZDataIn,
+						    void FARPTR FARPTR pvTZDataIn, 
+						    size_t FARPTR psTTailleDataIn,
+			   				short FARPTR 		pNbZDataOut,
+                			void FARPTR FARPTR	TZDataOut,
+                			size_t	FARPTR		TTailleZoneOut);
+
+typedef unsigned short (API_ENTRY FARPTR SSV_DechargerFSETLA)
+						(	const char FARPTR	NomRessourcePS,
+              			 	const char FARPTR	NomRessourceLecteur,
+               				const char FARPTR	CodePorteurPS,
+               				const char FARPTR	pcNumFact,
+			   				short FARPTR 		pNbZDataOut,
+                			void FARPTR FARPTR	TZDataOut,
+                			size_t	FARPTR		TTailleZoneOut);
+
+typedef unsigned short (API_ENTRY FARPTR SSV_DechargerFSETLANC)
+						(	const char FARPTR	NomRessourcePS,
+              			 	const char FARPTR	NomRessourceLecteur,
+               				const char FARPTR	CodePorteurPS,
+               				const char FARPTR	pcNumFact,
+			   				short FARPTR 		pNbZDataOut,
+                			void FARPTR FARPTR	TZDataOut,
+                			size_t	FARPTR		TTailleZoneOut);
+typedef unsigned short (API_ENTRY FARPTR SSV_EffacerTLA)
+					(const char FARPTR NomRessourcePS,
+					 const char FARPTR NomRessourceLecteur,
+					 const char FARPTR CodePorteurPS, 	
+					 const char FARPTR cNumFacturation,
+					 const char FARPTR cTypeDonnee);
+
+typedef unsigned short (API_ENTRY FARPTR SSV_ChargerFacturesPdT)
+						(const char FARPTR pcNomRessourceLecteur,
+						const char FARPTR pcNumFacturation, 
+						short sNbZDataIn,
+						void FARPTR FARPTR pvTZDataIn, 
+						size_t FARPTR psTTailleDataIn,
+						short FARPTR 		pNbZDataOut,
+                		void FARPTR FARPTR	TZDataOut,
+                		size_t	FARPTR		TTailleZoneOut); 
+
+typedef unsigned short (API_ENTRY FARPTR SSV_ChargerAppli)
+						(const char FARPTR pcNomRessourceLecteur, 
+						short sNbZDataIn,
+						void FARPTR FARPTR pvTZDataIn, 
+						size_t FARPTR psTTailleDataIn);
+
+typedef unsigned short (API_ENTRY FARPTR SSV_ChargerDonneesTLA)
+						(const char FARPTR pcNomRessourceLecteur, 
+						short sNbZDataIn,
+						void FARPTR FARPTR pvTZDataIn, 
+						size_t FARPTR psTTailleDataIn);
+
+typedef unsigned short (API_ENTRY FARPTR SSV_DechargerBeneficiaires)                 
+                 (const char FARPTR   NomRessourcePS,
+		          const char FARPTR	  NomRessourceLecteur,
+		          const char FARPTR	  CodePorteurPS,
+		          const char FARPTR	  cNumFacturation,
+				  short FARPTR		  sNbZDataOut, 
+				  void FARPTR FARPTR  pTZDataOut, 
+				  size_t FARPTR		  sTTailleDataOut);
+
+typedef unsigned short (API_ENTRY FARPTR SSV_TraduireFSE)
+				 (void FARPTR pZDataIn,
+				  size_t TailleDataIn,
+				  void FARPTR FARPTR pZDataOut,
+				  size_t FARPTR pTailleZone);
+
+typedef unsigned short (API_ENTRY FARPTR SSV_SecuriserFacture)
+                 (const char FARPTR pcNomRessourcePS,
+				  const char FARPTR pcNomRessourceLecteur,
+				  const char FARPTR pcCodePorteurPS, 
+				  char cNologSituation,
+				  const char FARPTR  pcNumFact,
+				  void FARPTR pvDataIn,
+				  size_t       szTailleDataIn ,
+				  void FARPTR FARPTR pvDataOut, 
+				  size_t FARPTR pszTailleDataOut);
+
+typedef unsigned short (API_ENTRY FARPTR SSV_InitLIB2) (const char FARPTR pcFichierSesam);
+
+typedef unsigned short (API_ENTRY FARPTR SSV_TermLIB)();
+
+
+
+/****** FONCTIONS SIMPLIFIEES *********/
+
+typedef unsigned short (API_ENTRY FARPTR SIS_TraduireARL)
+						 (unsigned short numeroSession);
+
+typedef unsigned short (API_ENTRY FARPTR SIS_LireCartePS)
+                (const char FARPTR NomRessourcePS, 
+                 const char FARPTR NomRessourceLecteur, 
+                 const char FARPTR CodePorteurPS,
+                 unsigned short numeroSession);
+
+typedef unsigned short (API_ENTRY FARPTR SIS_LireConfig)
+				(unsigned short numeroSession);
+
+
+typedef unsigned short (API_ENTRY FARPTR SIS_FormaterFactures)
+						(char cFacturesACreer,
+						char ModeSecur,
+						char cTypeFlux,
+                        unsigned short numeroSession);
+
+typedef unsigned short (API_ENTRY FARPTR SIS_ChiffrerFacture)
+						(unsigned short numeroSession);
+
+typedef unsigned short (API_ENTRY FARPTR SIS_SignerFactureVitale)
+						(const char * pcNomRessourceVitale,
+						 unsigned short numeroSession);
+
+typedef unsigned short (API_ENTRY FARPTR SIS_CalculerHashFactureAssure)
+						(const char * pcNumSerie,
+						 unsigned short numeroSession);
+
+typedef unsigned short (API_ENTRY FARPTR SIS_AjouterSignatureAssureDansFacture)
+						(unsigned short numeroSession);
+
+typedef unsigned short (API_ENTRY FARPTR SIS_SignerFactureCPS)
+						(const char * pcNomRessourcePS,
+						 const char * pcNomRessourceLecteur,
+						 const char * pcCodePorteurPS,
+						 char cNologSituation,
+						 unsigned short numeroSession);
+
+typedef unsigned short (SIS_CalculerHashFacturePS)
+						(const char * pcNumSerieCPS,
+						unsigned short numeroSession);
+
+typedef unsigned short (API_ENTRY SIS_AjouterSignaturePSFacture)
+						(unsigned short numeroSession);
+
+typedef unsigned short (API_ENTRY FARPTR SIS_SignerLotCPS)
+						(const char * pcNomRessourcePS,
+						 const char * pcNomRessourceLecteur,
+						 const char * pcCodePorteurPS,
+						 char cNologSituation,
+						 unsigned short numeroSession);
+
+typedef unsigned short (API_ENTRY FARPTR SIS_FormaterLot)
+						(unsigned short numeroSession);
+
+typedef unsigned short (API_ENTRY FARPTR SIS_FormaterFichier)
+						 (unsigned short numeroSession);
+
+typedef unsigned short  (API_ENTRY FARPTR SIS_InitTrace)
+						(char FARPTR NomFichier, char FARPTR ModeOuverture,
+						 unsigned short Module, unsigned char Niveau);
+						  
+
+typedef unsigned short  (API_ENTRY FARPTR SIS_MajDateLecteur)
+						(const char FARPTR pcNomRessourceLecteur,
+						 const char FARPTR pcDateHeure);
+
+typedef unsigned short  (API_ENTRY FARPTR SIS_LireDateLecteur)
+						(const char FARPTR pcNomRessourceLecteur,
+						 char FARPTR pcDateHeure);
+
+
+typedef unsigned short (API_ENTRY FARPTR SIS_LireDroitsVitale)
+                (const char FARPTR NomRessourcePS, 
+                 const char FARPTR NomRessourceLecteur, 
+                 const char FARPTR CodePorteurPS, 
+                 const char FARPTR DateConsultation,
+                 unsigned short numeroSession); 
+
+typedef unsigned short  (API_ENTRY FARPTR SIS_IdentifierTLA)
+						(const char FARPTR pcNomRessourceLecteur, 
+						 const char FARPTR NumVersionCDC,
+                         unsigned short numeroSession );
+
+typedef unsigned short (API_ENTRY FARPTR SIS_DechargerFacturesPdT)
+						( const char FARPTR	NomRessourcePS,
+              			 	const char FARPTR	NomRessourceLecteur,
+               				const char FARPTR	CodePorteurPS,
+               				const char FARPTR	pcNumFact,
+                                         unsigned short numeroSession);
+
+typedef unsigned short (API_ENTRY FARPTR SIS_DechargerFSETLA)
+						(const char FARPTR	NomRessourcePS,
+              			 	const char FARPTR	NomRessourceLecteur,
+               				const char FARPTR	CodePorteurPS,
+               				const char FARPTR	pcNumFact,
+                                        unsigned short numeroSession);
+
+typedef unsigned short (API_ENTRY FARPTR SIS_DechargerFSETLANC)
+						(const char FARPTR	NomRessourcePS,
+              			 	const char FARPTR	NomRessourceLecteur,
+               				const char FARPTR	CodePorteurPS,
+               				const char FARPTR	pcNumFact,
+                                        unsigned short numeroSession);
+typedef unsigned short (API_ENTRY FARPTR SIS_EffacerTLA)
+					(const char FARPTR NomRessourcePS,
+					 const char FARPTR NomRessourceLecteur,
+					 const char FARPTR CodePorteurPS, 	
+					 const char FARPTR cNumFacturation,
+					 const char FARPTR cTypeDonnee);
+
+typedef unsigned short (API_ENTRY FARPTR SIS_ChargerFacturesPdT)
+						(const char FARPTR pcNomRessourceLecteur,
+						 const char FARPTR pcNumFacturation,
+                                                 unsigned short numeroSession); 
+
+typedef unsigned short (API_ENTRY FARPTR SIS_ChargerAppli)
+						(const char FARPTR pcNomRessourceLecteur,
+                                                  unsigned short numeroSession);
+
+typedef unsigned short (API_ENTRY FARPTR SIS_ChargerDonneesTLA)
+						(const char FARPTR pcNomRessourceLecteur,
+                                                unsigned short numeroSession);
+
+typedef unsigned short (API_ENTRY FARPTR SIS_DechargerBeneficiaires)                 
+                 (	  const char FARPTR   NomRessourcePS,
+		          const char FARPTR	  NomRessourceLecteur,
+		          const char FARPTR	  CodePorteurPS,
+		          const char FARPTR	  cNumFacturation,
+                          unsigned short numeroSession);
+
+typedef unsigned short (API_ENTRY FARPTR SIS_TraduireFSE)
+				 (unsigned short numeroSession);
+
+typedef unsigned short (API_ENTRY FARPTR SIS_SecuriserFacture)
+                 ( const char FARPTR pcNomRessourcePS,
+				  const char FARPTR pcNomRessourceLecteur,
+				  const char FARPTR pcCodePorteurPS, 
+				  char cNologSituation,
+				  const char FARPTR  pcNumFact,
+                                  unsigned short numeroSession);
+						  
+
+/* inclusion temporaire dans ssv.h pour ne pas a avoir � relivrer Sedica (pas d'incidence sur le code) -> � inclure dans sedica.h ou commun.h*/
+/* Chaine discriminante d un nom de ressource TL PCSC */
+#define TL_PCSC " TL "
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/crates/fsv-sys/vendor/fsv/1.40.14.13/includes/STS/sts.h b/crates/fsv-sys/vendor/fsv/1.40.14.13/includes/STS/sts.h
new file mode 100644
index 0000000..ca2937c
--- /dev/null
+++ b/crates/fsv-sys/vendor/fsv/1.40.14.13/includes/STS/sts.h
@@ -0,0 +1,353 @@
+/*
+%-----------------------------------------------------------------------------
+% PROJET  : STS INTERFACE
+%
+% MODULE  : HEADER STS INTERFACE
+%
+% VERSION : cf #define ci-apr�s
+%
+% FICHIER : sts.h
+%
+% D�claration des prototypes des fonctions STS - INTERFACE
+%-----------------------------------------------------------------------------
+%
+% EDS DHU - 09/04/03 - Cr�ation du .h
+%
+% EDS OCL - 06/06/03 - Defect 91 : Rectification du prototype de InitTrace()
+%
+% EDS OCL - 04/07/03 - Defect 115 : Nettoyage de stsitf.h (devenu sts.h)
+%
+%-----------------------------------------------------------------------------
+*/
+
+#ifndef __STSITF_H
+#define __STSITF_H
+#define __STSITF_VERSION "0103"
+/* Ne pas oublier d'impacter idef.h aussi */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+% Biblioth�ques ANSI ou syst�me
+%------------------------------
+*/
+
+
+/*
+% Fichiers h inclus
+%------------------
+*/
+
+#include "sys_dep.h"
+/*
+% Macros et Constantes
+%---------------------
+*/
+
+/* OCL - Defect 115 : Suppression du #define G_xxx ici m�me */
+
+/* OCL - Defect 115 : Suppression du second #ifdef _cplusplus ici m�me */
+
+
+/*********************************************************************************
+ ************************* Fonctions r�entrantes *********************************
+ *********************************************************************************/
+
+/*
+%-----------------------------------------------------------------------------
+% STS_Tarification
+%
+% R�le : Tarification de la part compl�mentaire des actes de la facture
+%
+% Param�tres d'entr�e :
+%			MotifAppel (char) : 1er appel ('P') ou Appel sur echec de
+%				tarification ('E').
+%			ZDonneesEntree (void*) : Zone d'�change fournie par le Progiciel
+%				contenant toutes les informations sur la facture
+%			TailleDonneesEntree (size_t) : Taille de la zone d'�change Zin
+%
+% Param�tres de sortie :
+%			ZDonneesSortie (void**) : Zone d'�change fournie par le module STS appel�
+%				contenant toutes les informations modifi�es de la facture
+%				en entr�e et de nouvelles informations.
+%			TailleDonneesSortie (size_t*) : Taille de la zone d'�change Zout
+%
+% Valeur retourn�e :
+%			OK si pas d'erreur
+%			ERR_STS_NON_INITIALISE si module STS non initialis�
+%        et les codes d'erreurs de la tarification du module STS appel�
+% 
+%-----------------------------------------------------------------------------
+*/
+/* OCL - Defect 115 : Remplacement PTR par FARPTR */
+typedef unsigned short (API_ENTRY FARPTR STS_Tarification)(char	MotifAppel, void FARPTR	ZDonneesEntree,
+														   size_t TailleDonneesEntree, void FARPTR FARPTR ZDonneesSortie,
+														   size_t FARPTR TailleDonneesSortie);
+
+/* Fonction simplifi�e */
+/* OCL - Defect 115 : Remplacement STS_SIM par SGD */
+#ifdef SGD
+typedef unsigned short (API_ENTRY FARPTR STS_Tarification_S)(char MotifAppel, unsigned short NumeroSession);
+#endif
+
+/*
+%-----------------------------------------------------------------------------
+% STS_Assistance
+%
+% R�le : Assistance � la facturation.
+%
+% Param�tres d'entr�e :
+%			MotifAppel (char) : 1er appel ('P') ou Appel sur echec de
+%				tarification ('E').
+%			PorteeAppel (ushort) : 0 pour une assistance sur toute la facture.
+%				1..n pour une assistance sur un acte de rang donn� /zone
+%			ZDonneesEntree (void*) : Zone d'�change fournie par le Progiciel
+%				contenant toutes les informations sur la facture
+%			TailleDonneesEntree (size_t) : Taille de la zone d'�change Zin
+%
+% Param�tres de sortie :
+%			ZDonneesSortie (void**) : Zone d'�change fournie par le module STS appel�
+%			TailleDonneesSortie (size_t*) : Taille de la zone d'�change Zout
+%
+% Valeur retourn�e : (idem Tarification)
+%			OK si pas d'erreur
+%			ERR_STS_NON_INITIALISE si module STS non initialis�
+%        et les codes d'erreurs de la tarification du module STS appel�
+%
+%-----------------------------------------------------------------------------
+*/
+/* OCL - Defect 115 : Remplacement PTR par FARPTR */
+typedef unsigned short (API_ENTRY FARPTR STS_Assistance)(char MotifAppel, unsigned short PorteeAppel,
+														 void FARPTR ZDonneesEntree, size_t	TailleDonneesEntree,
+														 void FARPTR FARPTR	ZDonneesSortie, size_t FARPTR TailleDonneesSortie);
+
+/* Fonction simplifi�e */
+#ifdef SGD
+typedef unsigned short (API_ENTRY FARPTR STS_Assistance_S)(char MotifAppel, unsigned short PorteeAppel,
+														   unsigned short NumeroSession);
+#endif
+
+/*
+%-----------------------------------------------------------------------------
+% STS_LireVersion
+%
+% R�le : Lecture de la version de ce module et du fichier de ces tables externes
+%			dans le groupe 3780. Appeller la lecture de version de chaque module STS 
+%        puis recopier la r�ponse 3780 de chacun dans la zone de sortie.
+%
+% Param�tres d'entr�e : aucun
+%
+% Param�tres de sortie :
+%			ZDonneesSortie (void**) : Zone d'�change fournie par ce module
+%				contenant les versions (grp 3780) demand�es.
+%			TailleDonneesSortie (size_t*) : Taille de la zone d'�change Zout
+%
+% Valeur retourn�e :
+%			OK si pas d'erreur
+%			ERR_STS_NON_INITIALISE si module STS non initialis�
+%			ERR_ZOUT si ZDonneesSortie==NULL ou TailleDonneesSortie==NULL
+%			ERR_ZONE_ALLOC si m�moire insuffisante pour allouer la Zout
+%
+%-----------------------------------------------------------------------------
+*/
+/* OCL - Defect 115 : Remplacement PTR par FARPTR */
+typedef unsigned short (API_ENTRY FARPTR STS_LireVersion)(void FARPTR FARPTR ZDonneesSortie, size_t FARPTR TailleDonneesSortie);
+
+/* Fonction simplifi�e */
+#ifdef SGD
+typedef unsigned short (API_ENTRY FARPTR STS_LireVersion_S)(unsigned short NumeroSession);
+#endif
+
+/*
+%-----------------------------------------------------------------------------
+% STS_InitTrace
+%
+% R�le : Initialisation des traces du module STS-Interface dans un fichier log.
+%			Cette fonction permet d'activer ou d�sactiver (niveau 0) les
+%			traces. Une activation requiert un nom de fichier et un mode
+%			d'ouverture. Un changement de niveau peut se faire sur le m�me
+%			fichier ou sur un diff�rent s'il est pr�cis� en entr�e
+%
+% Param�tres d'entr�e :
+%			NomFichier (char*) : Chemin et nom de fichier de trace
+%			ModeOuverture (char*) : Mode d'ouverture du fichier de trace
+%				"a", "w" (,"ab", "wb").
+%			Module (ushort) : n� de module 0 � 5 (6=TOUS)
+%			Niveau (uchar) : Niveau de trace : 0 signifie pas de trace, 1
+%				signifie traces de profondeur 8 et >=2 signifie traces sans limite
+%				de profondeur et activation traces module STS_SI
+%
+% Param�tres de sortie : aucun
+%
+% Valeur retourn�e :
+%			OK si pas d'erreur
+%			ERR_PARAM si NomFichier/ModeOuverture incorrect quand Niveau > 0
+%			ERR_TRACE_FILE si erreur d'ouverture du fichier de trace
+%
+%-----------------------------------------------------------------------------
+*/
+/* OCL - Defect 91 : Rectification du prototype de InitTrace() */
+/* OCL - Defect 115 : Remplacement PTR par FARPTR */
+typedef unsigned short (API_ENTRY FARPTR STS_InitTrace)(const char FARPTR pathConf, const char FARPTR	ModeOuverture,
+														unsigned short Module, unsigned char Niveau);
+
+/*********************************************************************************
+ ************************* Fonctions d'initialisation et de terminaison  *********
+ *********************************************************************************/
+
+/*
+%-----------------------------------------------------------------------------
+% STS_InitLIB
+%
+% R�le : Initialisation du module STS-Interface : Chargement des tables externes
+%			et suivi de parc. Appel de l'nitialisation de chaque module STS 
+%
+% Param�tres d'entr�e : aucun
+%			
+% Param�tres de sortie : aucun
+%
+% Valeur retourn�e :
+%			OK si pas d'erreur
+%			ERR_INTERNE_ITF si erreur interne du module STS-Interface (ou STS SI)
+%			ERR_MEM_DISPO si plus de m�moire disponible
+%			ERR_PKG_PATH_INI si le chemin d'acc�s au fichier binaire est
+%				inconnu (fichier de configuration inaccessible ou information
+%				manquante)
+%			ERR_ITF_PKG_ACCES si fichier binaire de table inaccessible
+%			ERR_ITF_PKG_VER si version du fichier incoh�rent avec version du
+%				module STS-Interface (dans les deux sens)
+%			ERR_ITF_PKG_CRC si CRC du fichier binaire est incorrect
+%			ERR_ITF_PKG_FORME si format du fichier incorrect
+%			ERR_ITF_PKG_INCPT s'il manque une table dans le fichier binaire
+%			ERR_ITF_PKG_NOM si le nom du fichier est diff�rent du nom dans
+%				l'en-t�te du fichier.
+%			les codes suivants ne sont pas des erreurs fatales (non bloquant)
+%				mais juste des avertissements
+%				WAR_STS_DEJA_INITIALISE si module d�j� initialis�
+%				WAR_ADM_PATH si chemin au suivi de parc non trouv� dans fichier
+%					de configuration des produits SV
+%				WAR_ADM_FILE si impossible de cr�er les fichiers de suivi de
+%					parc
+%        ET les codes de retour de chaque module STS appel�
+%
+%-----------------------------------------------------------------------------
+*/
+/* extern unsigned short API_ENTRY STS_InitLIB(); */
+/*
+%-----------------------------------------------------------------------------
+% STS_InitLIB2
+%
+% R�le : Initialisation du module STS-Interface : Chargement des tables externes
+%			et suivi de parc. Appel de l'nitialisation de chaque module STS 
+%
+% Param�tres d'entr�e :
+%			NomFichierIni (char*) : Chemin et nom du fichier de configuration des
+%				produits SESAM Vitale du poste de travail (sesam.ini)
+%
+% Param�tres de sortie : aucun
+%
+% Valeur retourn�e :
+%			OK si pas d'erreur
+%			ERR_INTERNE_ITF si erreur interne du module STS-Interface (ou STS SI)
+%			ERR_MEM_DISPO si plus de m�moire disponible
+%			ERR_PKG_PATH_INI si le chemin d'acc�s au fichier binaire est
+%				inconnu (fichier de configuration inaccessible ou information
+%				manquante)
+%			ERR_ITF_PKG_ACCES si fichier binaire de table inaccessible
+%			ERR_ITF_PKG_VER si version du fichier incoh�rent avec version du
+%				module STS-Interface (dans les deux sens)
+%			ERR_ITF_PKG_CRC si CRC du fichier binaire est incorrect
+%			ERR_ITF_PKG_FORME si format du fichier incorrect
+%			ERR_ITF_PKG_INCPT s'il manque une table dans le fichier binaire
+%			ERR_ITF_PKG_NOM si le nom du fichier est diff�rent du nom dans
+%				l'en-t�te du fichier.
+%			les codes suivants ne sont pas des erreurs fatales (non bloquant)
+%				mais juste des avertissements
+%				WAR_STS_DEJA_INITIALISE si module d�j� initialis�
+%				WAR_ADM_PATH si chemin au suivi de parc non trouv� dans fichier
+%					de configuration des produits SV
+%				WAR_ADM_FILE si impossible de cr�er les fichiers de suivi de
+%					parc
+%        ET les codes de retour de chaque module STS appel�
+%
+%-----------------------------------------------------------------------------
+*/
+typedef unsigned short (API_ENTRY FARPTR STS_InitLIB2)(const char FARPTR nomFichierIni);
+
+/*
+%-----------------------------------------------------------------------------
+% STS_TermLIB
+%
+% R�le : Terminaison du module STS-Interface : D�chargement des tables externes.
+%
+% Param�tres d'entr�e : aucun
+%
+% Param�tres de sortie : aucun
+%
+% Valeur retourn�e :
+%			OK si pas d'erreur
+%			ERR_INTERNE_ITF si erreur interne du module STS-Interface (ou STS SI)
+%
+%-----------------------------------------------------------------------------
+*/
+typedef unsigned short (API_ENTRY FARPTR STS_TermLIB)(void);
+
+/*********************************************************************************
+ ************************* Fonctions de gestion de la m�moire  *******************
+ *********************************************************************************/
+
+/*
+%-----------------------------------------------------------------------------
+% STS_AllouerZoneMem
+%
+% R�le : Allocation d'une zone d'�change de sortie par STS Interface.
+%			Cette fonction permet la r�allocation d'une zone d'�change.
+%			L'allocation d'une nouvelle zone d'�change n�cessite un pointeur
+%			NULL en entr�e !
+%			Cette fonctio est � utiliser conjointement avec STS_LibererZoneMem
+%			pour faciliter le Debugage (zone allou�e par l'�crivain)
+%
+% Param�tres d'entr�e :
+%			Taille (size_t) : Taille de la zone d'�change � allouer.
+%
+% Param�tres d'entr�e et de sortie :
+%			Zone (void**) : Zone d'�change pr�allou�e en entr�e (ou NULL).
+%				Zone allou�e (r�allou�e) par le module STS-Interface.
+%
+% Valeur retourn�e :
+%			OK si pas d'erreur
+%			ERR_ZOUT si Zone==NULL ou Taille==0
+%			ERR_ZONE_ALLOC si plus de m�moire disponible
+%
+%-----------------------------------------------------------------------------
+*/
+/* OCL - Defect 115 : Remplacement PTR par FARPTR */
+typedef unsigned short (API_ENTRY FARPTR STS_AllouerZoneMem)(void FARPTR FARPTR	Zone, size_t Taille);
+
+
+/*
+%-----------------------------------------------------------------------------
+% STS_LibererZoneMem
+%
+% R�le : Lib�ration de la zone d'�change de sortie par STS Interface.
+%
+% Param�tres d'entr�e :
+%			Zone (void*) : Zone d'�change � lib�rer (allou�e pr�c�demment par
+%				le module STS-Interce par STS_AllouerZoneMem).
+%
+% Param�tres de sortie : aucun
+%
+% Valeur retourn�e : aucune
+%
+%-----------------------------------------------------------------------------
+*/
+/* OCL - Defect 115 : Remplacement PTR par FARPTR */
+typedef void (API_ENTRY FARPTR STS_LibererZoneMem)(void FARPTR Zone);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __STSITF_H */
diff --git a/crates/fsv-sys/vendor/fsv/1.40.14.13/includes/SYS_DEF/linux/linuxdef.h b/crates/fsv-sys/vendor/fsv/1.40.14.13/includes/SYS_DEF/linux/linuxdef.h
new file mode 100644
index 0000000..0ef175e
--- /dev/null
+++ b/crates/fsv-sys/vendor/fsv/1.40.14.13/includes/SYS_DEF/linux/linuxdef.h
@@ -0,0 +1,189 @@
+/*---------------------------------------------------------------------------
+ PROJET     : Couche de portabilite multi-systeme
+ 
+ PLATE-FORME: LINUX
+ 
+ MODULE     : Definition des macros et des types utilises par la couche 
+              d'abstraction systeme pour la plate-forme LINUX.
+              
+              Le fichier de definition des types portable (ce fichier) doit 
+              etre inclus avant tout autre .h de definitions d'APIS gip-cps. 
+              Ce fichier definit tous les types et macros dependants du 
+              systeme. 
+
+ FICHIER    : common\linux\src\linuxdef.h
+
+ VERSION    : 1.00
+ 
+ DATE       : 10/01/2001
+ 
+ AUTEUR     : ALVARO ROCHA
+ 
+-----------------------------------------------------------------------------
+-----------------------------------------------------------------------------
+ Modifications:  (nouvelle version, date, auteur, explication)
+ ...
+
+ - V4.31 - AROC le 12/02/2001 :
+      Ajout des #define TRUE et FALSE ainsi que le typedef int BOOLEEN
+-----------------------------------------------------------------------------
+---------------------------------------------------------------------------*/
+
+
+#ifndef __CPSCASDF_H
+#define __CPSCASDF_H
+
+/*----------------- definition des macros portables ------------------------*/
+#ifndef far
+#define far
+#endif
+
+#ifndef FAR
+#define FAR
+#endif
+
+#ifndef PTR
+#define PTR *
+#endif
+
+#ifndef PVOID
+#define PVOID void PTR
+#endif
+
+#ifndef FARPTR
+#define FARPTR PTR
+#endif
+
+#ifndef FPVOID
+#define FPVOID void FARPTR
+#endif
+
+/* AROC 12/02/2001 debut : */
+#ifndef FALSE
+#define FALSE 0
+#endif
+
+#ifndef TRUE
+#define TRUE 1
+#endif
+/* AROC 12/02/2001 fin */
+
+/*----------------- definition des types portables ------------------------*/
+#ifndef CHAR
+#define CHAR char
+#endif
+
+#ifndef PCHAR
+#define PCHAR CHAR PTR
+#endif
+
+#ifndef PSTRG
+#define PSTRG CHAR PTR
+#endif
+
+#ifndef UCHAR
+#define UCHAR unsigned char
+#endif
+
+#ifndef PUCHAR
+#define PUCHAR UCHAR PTR
+#endif
+
+
+#ifndef INT8
+#define INT8 char
+#endif
+
+#ifndef INT16
+#define INT16 short
+#endif
+
+#ifndef INT32
+#define INT32 long
+#endif
+
+#ifndef PINT8
+#define PINT8 INT8 PTR
+#endif
+
+#ifndef PINT16
+#define PINT16 INT16 PTR
+#endif
+
+#ifndef PINT32
+#define PINT32 INT32 PTR
+#endif
+
+
+#ifndef UINT8
+#define UINT8 unsigned char
+#endif
+
+#ifndef UINT16
+#define UINT16 unsigned short
+#endif
+
+#ifndef UINT32
+#define UINT32 unsigned long
+#endif
+
+#ifndef PUINT8
+#define PUINT8 UINT8 PTR
+#endif
+
+#ifndef PUINT16
+#define PUINT16 UINT16 PTR
+#endif
+
+#ifndef PUINT32
+#define PUINT32 UINT32 PTR
+#endif
+
+
+/* 11/02/1997 : Ajout DRE pour CPSCAS */
+#ifndef VOID
+#define VOID void
+#endif
+#ifndef PSTR
+#define PSTR char PTR
+#endif
+/* 11/02/1997 : Fin */
+
+#ifndef WORD
+#define WORD unsigned short
+#endif
+
+#ifndef DWORD
+#define DWORD unsigned long
+#endif
+//typedef unsigned char BYTE;
+#ifndef BYTE
+#define BYTE unsigned char
+#endif
+//typedef BYTE far * LPBYTE;
+#ifndef LPBYTE
+#define LPBYTE BYTE far *
+#endif
+//typedef int BOOL;
+#ifndef BOOL
+#define BOOL int
+#endif
+
+#ifndef Unref
+#define Unref( a) a=a
+#endif
+
+#ifndef min
+#define min(a,b) ((a)>(b)?(b):(a))
+#endif
+
+#ifndef max
+#define max(a,b) ((a)<(b)?(b):(a))
+#endif
+
+/* Taille maximale allou�e par la fonction "malloc" */
+#ifndef MAXBLOC
+#define MAXBLOC     4294967295
+#endif
+
+#endif
diff --git a/crates/fsv-sys/vendor/fsv/1.40.14.13/includes/SYS_DEF/linux/mc_sys_def.h b/crates/fsv-sys/vendor/fsv/1.40.14.13/includes/SYS_DEF/linux/mc_sys_def.h
new file mode 100644
index 0000000..2b96f59
--- /dev/null
+++ b/crates/fsv-sys/vendor/fsv/1.40.14.13/includes/SYS_DEF/linux/mc_sys_def.h
@@ -0,0 +1,85 @@
+/*
+ * -------------------------------------------------------------------
+ * (c) 2002 GIE SESAM-VITALE
+ *
+ * FICHIER : sys_def.h (v2)
+ *
+ * PLATE-FORME : Windows 32 bits
+ *
+ * D�finitions d�pendantes du syst�me.
+ * -------------------------------------------------------------------
+ */
+
+#include "linuxdef.h" 
+#include "stdlib.h" 
+
+#ifndef __SYS_DEF_H__
+#define __SYS_DEF_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+#ifndef API_ENTRY
+#define API_ENTRY
+#endif
+
+#ifndef _MAX_PATH
+#define _MAX_PATH 256 
+#endif
+
+#ifndef _MAX_FNAME
+#define _MAX_FNAME 160
+#endif
+
+#ifndef _MAX_DIR
+#define _MAX_DIR 800
+#endif
+
+#ifndef FARPTR
+#define FARPTR *
+#endif
+
+#ifndef SYS_MAX_PATH
+#define SYS_MAX_PATH				_MAX_PATH
+#endif
+
+#ifndef SYS_MAX_FNAME
+#define SYS_MAX_FNAME               _MAX_FNAME
+#endif
+
+#ifndef SYS_MAX_DIR
+#define SYS_MAX_DIR               _MAX_DIR
+#endif
+
+#ifndef SYS_HANDLE 
+#define SYS_HANDLE void *        
+#endif
+
+#ifndef PTR
+#define PTR *
+#endif
+
+#ifndef SYSFARPROC_
+#define SYSFARPROC_
+typedef unsigned short (API_ENTRY FARPTR SYSFARPROC)();
+#endif
+
+
+/* S�parateur utilis� dans le nommage des arborescences de fichiers */
+#ifndef SEPARATEUR_REPERTOIRE
+#define SEPARATEUR_REPERTOIRE '/'
+#endif
+
+
+/* Activation des fonctions simplifi�es. */
+#ifndef SGD
+#define SGD
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/crates/fsv-sys/vendor/fsv/1.40.14.13/includes/SYS_DEF/macosx/mc_sys_def.h b/crates/fsv-sys/vendor/fsv/1.40.14.13/includes/SYS_DEF/macosx/mc_sys_def.h
new file mode 100644
index 0000000..ca0c3ad
--- /dev/null
+++ b/crates/fsv-sys/vendor/fsv/1.40.14.13/includes/SYS_DEF/macosx/mc_sys_def.h
@@ -0,0 +1,92 @@
+/*
+ * -------------------------------------------------------------------
+ * (c) 2002 GIE SESAM-VITALE
+ *
+ * FICHIER : sys_def.h (v2)
+ *
+ * PLATE-FORME : MAC OSX
+ *
+ * D�finitions d�pendantes du syst�me.
+ * -------------------------------------------------------------------
+ */
+
+//3/11/2004 Modification pour compilation MAC OS X
+#include "osxdef.h"
+
+#include <stdarg.h>
+#include <errno.h>
+#include "stdlib.h" 
+
+#ifndef __SYS_DEF_H__
+#define __SYS_DEF_H__
+
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+//3-11-2004 Ajout pour MAc OS X
+#define FALSE 0
+#define TRUE 1
+
+//3/11/2004 Modification pour compilation MAC OS X
+#ifndef API_ENTRY
+#define API_ENTRY
+#endif
+
+#ifndef FARPTR
+#define FARPTR *
+#endif
+
+#ifndef SYS_MAX_PATH
+#define SYS_MAX_PATH				_MAX_PATH
+#endif
+
+#ifndef SYS_MAX_FNAME
+#define SYS_MAX_FNAME               _MAX_FNAME
+#endif
+
+#ifndef SYS_MAX_DIR
+#define SYS_MAX_DIR               _MAX_DIR
+#endif
+
+
+
+#ifndef PTR
+#define PTR *
+#endif
+
+
+#ifndef SYS_HANDLE
+//typedef void * SYS_HANDLE;
+#define SYS_HANDLE void *
+#endif
+
+#ifndef SYSFARPROC_
+#define SYSFARPROC_
+typedef unsigned short (API_ENTRY FARPTR SYSFARPROC)();
+#endif
+
+
+
+/* S�parateur utilis� dans le nommage des arborescences de fichiers */
+#ifndef SEPARATEUR_REPERTOIRE
+	#ifdef WIN32
+		#define SEPARATEUR_REPERTOIRE '\\'
+	#else
+		#define SEPARATEUR_REPERTOIRE '/'
+	#endif
+#endif
+
+
+/* Activation des fonctions simplifi�es. */
+#ifndef SGD
+#define SGD
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/crates/fsv-sys/vendor/fsv/1.40.14.13/includes/SYS_DEF/macosx/osxdef.h b/crates/fsv-sys/vendor/fsv/1.40.14.13/includes/SYS_DEF/macosx/osxdef.h
new file mode 100644
index 0000000..9e14e90
--- /dev/null
+++ b/crates/fsv-sys/vendor/fsv/1.40.14.13/includes/SYS_DEF/macosx/osxdef.h
@@ -0,0 +1,150 @@
+/*---------------------------------------------------------------------------
+ PROJET     : Couche de portabilite multi-systeme
+ 
+ PLATE-FORME: MAC OS X
+ 
+ MODULE     : Definition des macros et des types utilises par la couche 
+              d'abstraction systeme pour la plate-forme LINUX.
+              
+              Le fichier de definition des types portable (ce fichier) doit 
+              etre inclus avant tout autre .h de definitions d'APIS gip-cps. 
+              Ce fichier definit tous les types et macros dependants du 
+              systeme. 
+
+ FICHIER    : common\linux\src\linuxdef.h
+
+ VERSION    : 1.00
+ 
+ DATE       : 10/01/2001
+ 
+ AUTEUR     : ALVARO ROCHA
+ 
+-----------------------------------------------------------------------------
+-----------------------------------------------------------------------------
+ Modifications:  (nouvelle version, date, auteur, explication)
+ ...
+
+ - V4.31 - AROC le 12/02/2001 :
+      Ajout des #define TRUE et FALSE ainsi que le typedef int BOOLEEN
+-----------------------------------------------------------------------------
+---------------------------------------------------------------------------*/
+
+
+#ifndef __CPSCASDF_H
+#define __CPSCASDF_H
+
+//#ifndef __MACTYPES__
+/*#include <CarbonCore/MacTypes.h>*/
+//#include"/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/CarbonCore.framework/Versions/A/Headers/MacTypes.h"*/
+//#endif
+
+
+
+/*----------------- definition des macros portables ------------------------*/
+
+
+/* point d'entree exporte en DLL ?????????????????????????????????????????  */
+#define API_ENTRY /* pour l'instant */
+
+#define far
+#define FAR
+
+#define PTR *
+
+#define PVOID void PTR
+
+#ifndef FARPTR
+#define FARPTR PTR
+#endif
+#define FPVOID void FARPTR
+
+/* AROC 18/O4/2001 ajout pour io_comm*/
+#define HCOMM	unsigned int
+#define PHCOMM	HCOMM FARPTR
+
+/* AROC 12/02/2001 debut : */
+#ifndef FALSE
+#define FALSE 0
+#endif
+
+#ifndef TRUE
+#define TRUE 1
+#endif
+/* AROC 12/02/2001 fin */
+
+/*----------------- definition des types portables ------------------------*/
+
+/* AROC 12/02/2001 debut : */
+/* mise en commentaire de ce define car pb avec module sts où BOOLEEN est defini en char*/
+//#ifndef BOOLEEN
+//typedef int BOOLEEN;
+//#define BOOLEEN int
+//#endif
+/* AROC 12/02/2001 fin */
+/* Boolean */
+#define BOOL Boolean
+
+//#define _MAX_PATH 1024
+typedef char CHAR;
+typedef CHAR PTR PCHAR;
+
+typedef CHAR PTR PSTRG; 
+
+typedef unsigned char UCHAR;
+typedef UCHAR PTR PUCHAR;
+
+typedef char INT8;
+typedef short INT16;
+typedef long INT32;
+
+typedef INT8 PTR PINT8;
+typedef INT16 PTR PINT16;
+typedef INT32 PTR PINT32;
+
+typedef unsigned char UINT8;
+typedef unsigned short UINT16;
+typedef unsigned long UINT32;
+
+typedef UINT8 PTR PUINT8;
+typedef UINT16 PTR PUINT16;
+typedef UINT32 PTR PUINT32;
+
+/* 11/02/1997 : Ajout DRE pour CPSCAS */
+typedef void VOID;
+typedef char PTR PSTR;
+/* 11/02/1997 : Fin */
+
+typedef unsigned short WORD;
+typedef unsigned long DWORD;
+typedef unsigned char BYTE;
+typedef BYTE far * LPBYTE;
+
+#define Unref( a) a=a
+
+#ifndef min
+#define min(a,b) ((a)>(b)?(b):(a))
+#endif
+
+#ifndef max
+#define max(a,b) ((a)<(b)?(b):(a))
+#endif
+
+#ifdef LITTLE_ENDIAN
+#undef LITTLE_ENDIAN
+#endif
+
+#ifndef PATH_MAX
+#define PATH_MAX		 1024
+#endif
+#ifndef _MAX_PATH
+#define _MAX_PATH PATH_MAX /*  PATH_MAX defini dans <usr/include/sys/syslimits.h> */
+#endif
+
+
+
+/* Taille maximale allouÈe par la fonction "malloc" */
+#ifndef MAXBLOC
+#define MAXBLOC    0x7FFFFFFF
+#endif
+
+#endif
diff --git a/crates/fsv-sys/vendor/fsv/1.40.14.13/includes/SYS_DEF/win/mc_sys_def.h b/crates/fsv-sys/vendor/fsv/1.40.14.13/includes/SYS_DEF/win/mc_sys_def.h
new file mode 100644
index 0000000..ec3f061
--- /dev/null
+++ b/crates/fsv-sys/vendor/fsv/1.40.14.13/includes/SYS_DEF/win/mc_sys_def.h
@@ -0,0 +1,69 @@
+/*
+ * -------------------------------------------------------------------
+ * (c) 2002 GIE SESAM-VITALE
+ *
+ * FICHIER : sys_def.h (v2)
+ *
+ * PLATE-FORME : Windows 32 bits
+ *
+ * D�finitions d�pendantes du syst�me.
+ * -------------------------------------------------------------------
+ */
+
+#include <stdlib.h>
+
+#ifndef __SYS_DEF_H__
+#define __SYS_DEF_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+#ifndef API_ENTRY
+#define API_ENTRY __stdcall
+#endif
+
+#ifndef FARPTR
+#define FARPTR *
+#endif
+
+#ifndef SYS_MAX_PATH
+#define SYS_MAX_PATH				_MAX_PATH
+#endif
+
+#ifndef SYS_MAX_FNAME
+#define SYS_MAX_FNAME               _MAX_FNAME
+#endif
+
+#ifndef SYS_MAX_DIR
+#define SYS_MAX_DIR               _MAX_DIR
+#endif
+
+typedef void *        SYS_HANDLE;
+
+#ifndef PTR
+#define PTR *
+#endif
+
+
+typedef unsigned short (API_ENTRY FARPTR SYSFARPROC)();
+
+
+
+/* S�parateur utilis� dans le nommage des arborescences de fichiers */
+#ifndef SEPARATEUR_REPERTOIRE
+#define SEPARATEUR_REPERTOIRE '\\'
+#endif
+
+
+/* Activation des fonctions simplifi�es. */
+#ifndef SGD
+#define SGD
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/crates/fsv-sys/vendor/fsv/1.40.14.13/includes/wrapper.linux.h b/crates/fsv-sys/vendor/fsv/1.40.14.13/includes/wrapper.linux.h
new file mode 100644
index 0000000..50bdd53
--- /dev/null
+++ b/crates/fsv-sys/vendor/fsv/1.40.14.13/includes/wrapper.linux.h
@@ -0,0 +1,7 @@
+#ifndef WRAPPER_LINUX_H
+#define WRAPPER_LINUX_H
+
+#include "SYS_DEF/linux/mc_sys_def.h"
+#include "SSV/pourFSV1.40.14/ssv.h"
+
+#endif // WRAPPER_LINUX_H
\ No newline at end of file
diff --git a/crates/fsv-sys/vendor/fsv/1.40.14.13/includes/wrapper.macosx.h b/crates/fsv-sys/vendor/fsv/1.40.14.13/includes/wrapper.macosx.h
new file mode 100644
index 0000000..d981100
--- /dev/null
+++ b/crates/fsv-sys/vendor/fsv/1.40.14.13/includes/wrapper.macosx.h
@@ -0,0 +1,7 @@
+#ifndef WRAPPER_MACOSX_H
+#define WRAPPER_MACOSX_H
+
+#include "SYS_DEF/macosx/mc_sys_def.h"
+#include "SSV/pourFSV1.40.14/ssv.h"
+
+#endif // WRAPPER_MACOSX_H
\ No newline at end of file
diff --git a/crates/fsv-sys/vendor/fsv/1.40.14.13/includes/wrapper.win.h b/crates/fsv-sys/vendor/fsv/1.40.14.13/includes/wrapper.win.h
new file mode 100644
index 0000000..23aebe0
--- /dev/null
+++ b/crates/fsv-sys/vendor/fsv/1.40.14.13/includes/wrapper.win.h
@@ -0,0 +1,7 @@
+#ifndef WRAPPER_WIN_H
+#define WRAPPER_WIN_H
+
+#include "SYS_DEF/win/mc_sys_def.h"
+#include "SSV/pourFSV1.40.14/ssv.h"
+
+#endif // WRAPPER_WIN_H
\ No newline at end of file