#![allow(non_upper_case_globals)] #![allow(non_camel_case_types)] #![allow(non_snake_case)] #![allow(dead_code)] extern "C" { // Fonctions de gestion des données pub fn SSV_LireCartePS( NomRessourcePS: *const ::std::os::raw::c_char, NomRessourceLecteur: *const ::std::os::raw::c_char, CodePorteurPS: *const ::std::os::raw::c_char, pZDataOut: *mut *mut ::std::os::raw::c_void, pTailleZone: *mut usize, ) -> ::std::os::raw::c_ushort; pub fn SSV_LireDroitsVitale( NomRessourcePS: *const ::std::os::raw::c_char, NomRessourceLecteur: *const ::std::os::raw::c_char, CodePorteurPS: *const ::std::os::raw::c_char, DateConsultation: *const ::std::os::raw::c_char, pZDataOut: *mut *mut ::std::os::raw::c_void, pTailleZone: *mut usize, ) -> ::std::os::raw::c_ushort; pub fn SSV_FormaterFactures( cFactureACreer: ::std::os::raw::c_char, cModeSecur: ::std::os::raw::c_char, cTypeFlux: ::std::os::raw::c_char, pZDataIn: *mut ::std::os::raw::c_void, TailleDataIn: usize, pZDataOut: *mut *mut ::std::os::raw::c_void, pTailleZone: *mut usize, ) -> ::std::os::raw::c_ushort; pub fn SSV_ChiffrerFacture( pZDataIn: *mut ::std::os::raw::c_void, TailleDataIn: usize, pZDataOut: *mut *mut ::std::os::raw::c_void, pTailleZone: *mut usize, ) -> ::std::os::raw::c_ushort; pub fn SSV_SignerFactureVitale( pcNomRessourceVitale: *const ::std::os::raw::c_char, pZDataIn: *mut ::std::os::raw::c_void, szTailleDataIn: usize, pZDataOut: *mut *mut ::std::os::raw::c_void, pszTailleZone: *mut usize, ) -> ::std::os::raw::c_ushort; pub fn SSV_CalculerHashFactureAssure( pcNumSerie: *const ::std::os::raw::c_char, pZDataIn: *mut ::std::os::raw::c_void, szTailleDataIn: usize, pZDataOut: *mut *mut ::std::os::raw::c_void, pszTailleZone: *mut usize, ) -> ::std::os::raw::c_ushort; pub fn SSV_AjouterSignatureAssureDansFacture( pZDataIn: *mut ::std::os::raw::c_void, szTailleDataIn: usize, pZDataOut: *mut *mut ::std::os::raw::c_void, pszTailleZone: *mut usize, ) -> ::std::os::raw::c_ushort; pub fn SSV_SignerFactureCPS( pcNomRessourcePS: *const ::std::os::raw::c_char, pcNomRessourceLecteur: *const ::std::os::raw::c_char, pcCodePorteurPS: *const ::std::os::raw::c_char, cNologSituation: ::std::os::raw::c_char, pZDataIn: *mut ::std::os::raw::c_void, szTailleDataIn: usize, pZDataOut: *mut *mut ::std::os::raw::c_void, pszTailleZone: *mut usize, ) -> ::std::os::raw::c_ushort; pub fn SSV_FormaterLot( NBZDataIn: ::std::os::raw::c_short, TZDataIn: *mut *mut ::std::os::raw::c_void, TTailleZoneIn: *mut usize, pNbZDataOut: *mut ::std::os::raw::c_short, TZDataOut: *mut *mut ::std::os::raw::c_void, TTailleZoneOut: *mut usize, ) -> ::std::os::raw::c_ushort; pub fn SSV_SignerLotCPS( pcNomRessourcePS: *const ::std::os::raw::c_char, pcNomRessourceLecteur: *const ::std::os::raw::c_char, pcCodePorteurPS: *const ::std::os::raw::c_char, cNologSituation: ::std::os::raw::c_char, pZDataIn: *mut ::std::os::raw::c_void, szTailleDataIn: usize, pZDataOut: *mut *mut ::std::os::raw::c_void, pszTailleZone: *mut usize, ) -> ::std::os::raw::c_ushort; pub fn SSV_FormaterFichier( pZDataIn: *mut ::std::os::raw::c_void, TailleDataIn: usize, pZDataOut: *mut *mut ::std::os::raw::c_void, pTailleZone: *mut usize, ) -> ::std::os::raw::c_ushort; pub fn SSV_TraduireARL( NbZDonneesEntree: ::std::os::raw::c_short, TZDataIn: *mut *mut ::std::os::raw::c_void, TTailleZoneIn: *mut usize, pZDataOut: *mut *mut ::std::os::raw::c_void, pTailleZoneOut: *mut usize, ) -> ::std::os::raw::c_ushort; pub fn SSV_LireNumSerieCarteVitale( pcNomRessource: *mut ::std::os::raw::c_char, numeroSerie: *mut ::std::os::raw::c_uchar, ) -> ::std::os::raw::c_ushort; pub fn SSV_CalculerHashFacturePS( pcNumSerieCPS: *const ::std::os::raw::c_char, pZDataIn: *mut ::std::os::raw::c_void, usTailleDataIn: usize, pZDataOut: *mut *mut ::std::os::raw::c_void, pusTailleZone: *mut usize, ) -> ::std::os::raw::c_ushort; pub fn SSV_AjouterSignaturePSFacture( pZDataIn: *mut ::std::os::raw::c_void, szTailleDataIn: usize, pZDataOut: *mut *mut ::std::os::raw::c_void, pszTailleZone: *mut usize, ) -> ::std::os::raw::c_ushort; pub fn SSV_DechargerFacturesPdT( NomRessourcePS: *const ::std::os::raw::c_char, NomRessourceLecteur: *const ::std::os::raw::c_char, CodePorteurPS: *const ::std::os::raw::c_char, pcNumFact: *const ::std::os::raw::c_char, sNbZDataIn: ::std::os::raw::c_short, pvTZDataIn: *mut *mut ::std::os::raw::c_void, psTTailleDataIn: *mut usize, pNbZDataOut: *mut ::std::os::raw::c_short, TZDataOut: *mut *mut ::std::os::raw::c_void, TTailleZoneOut: *mut usize, ) -> ::std::os::raw::c_ushort; pub fn SSV_TraduireFSE( pZDataIn: *mut ::std::os::raw::c_void, TailleDataIn: usize, pZDataOut: *mut *mut ::std::os::raw::c_void, pTailleZone: *mut usize, ) -> ::std::os::raw::c_ushort; // Fonctions TLA // TLA (Terminal Lecteur Applicatif) -> lecteur autre que PC-SC, on ne prend pas en compte cela pub fn SSV_IdentifierTLA( pcNomRessourceLecteur: *const ::std::os::raw::c_char, NumVersionCDC: *const ::std::os::raw::c_char, pZDataOut: *mut *mut ::std::os::raw::c_void, tailleDataOut: *mut usize, ) -> ::std::os::raw::c_ushort; pub fn SSV_ChargerDonneesTLA( pcNomRessourceLecteur: *const ::std::os::raw::c_char, sNbZDataIn: ::std::os::raw::c_short, pvTZDataIn: *mut *mut ::std::os::raw::c_void, psTTailleDataIn: *mut usize, ) -> ::std::os::raw::c_ushort; pub fn SSV_ChargerFacturesPdT( pcNomRessourceLecteur: *const ::std::os::raw::c_char, pcNumFacturation: *const ::std::os::raw::c_char, sNbZDataIn: ::std::os::raw::c_short, pvTZDataIn: *mut *mut ::std::os::raw::c_void, psTTailleDataIn: *mut usize, pNbZDataOut: *mut ::std::os::raw::c_short, TZDataOut: *mut *mut ::std::os::raw::c_void, TTailleZoneOut: *mut usize, ) -> ::std::os::raw::c_ushort; pub fn SSV_DechargerFSETLA( NomRessourcePS: *const ::std::os::raw::c_char, NomRessourceLecteur: *const ::std::os::raw::c_char, CodePorteurPS: *const ::std::os::raw::c_char, pcNumFact: *const ::std::os::raw::c_char, pNbZDataOut: *mut ::std::os::raw::c_short, TZDataOut: *mut *mut ::std::os::raw::c_void, TTailleZoneOut: *mut usize, ) -> ::std::os::raw::c_ushort; pub fn SSV_DechargerFSETLANC( NomRessourcePS: *const ::std::os::raw::c_char, NomRessourceLecteur: *const ::std::os::raw::c_char, CodePorteurPS: *const ::std::os::raw::c_char, pcNumFact: *const ::std::os::raw::c_char, pNbZDataOut: *mut ::std::os::raw::c_short, TZDataOut: *mut *mut ::std::os::raw::c_void, TTailleZoneOut: *mut usize, ) -> ::std::os::raw::c_ushort; pub fn SSV_DechargerBeneficiaires( NomRessourcePS: *const ::std::os::raw::c_char, NomRessourceLecteur: *const ::std::os::raw::c_char, CodePorteurPS: *const ::std::os::raw::c_char, cNumFacturation: *const ::std::os::raw::c_char, sNbZDataOut: *mut ::std::os::raw::c_short, pTZDataOut: *mut *mut ::std::os::raw::c_void, sTTailleDataOut: *mut usize, ) -> ::std::os::raw::c_ushort; pub fn SSV_EffacerTLA( NomRessourcePS: *const ::std::os::raw::c_char, NomRessourceLecteur: *const ::std::os::raw::c_char, CodePorteurPS: *const ::std::os::raw::c_char, cNumFacturation: *const ::std::os::raw::c_char, cTypeDonnee: *const ::std::os::raw::c_char, ) -> ::std::os::raw::c_ushort; pub fn SSV_SecuriserFacture( pcNomRessourcePS: *const ::std::os::raw::c_char, pcNomRessourceLecteur: *const ::std::os::raw::c_char, pcCodePorteurPS: *const ::std::os::raw::c_char, cNologSituation: ::std::os::raw::c_char, pcNumFact: *const ::std::os::raw::c_char, pvDataIn: *mut ::std::os::raw::c_void, szTailleDataIn: usize, pvDataOut: *mut *mut ::std::os::raw::c_void, pszTailleDataOut: *mut usize, ) -> ::std::os::raw::c_ushort; // Fonctions de gestion de configuration (GALSS) pub fn SSV_LireConfig( pZDataOut: *mut *mut ::std::os::raw::c_void, psTailleDataOut: *mut usize, ) -> ::std::os::raw::c_ushort; pub fn SSV_LireDateLecteur( pcNomRessourceLecteur: *const ::std::os::raw::c_char, pcDateHeure: *mut ::std::os::raw::c_char, ) -> ::std::os::raw::c_ushort; pub fn SSV_MajDateLecteur( pcNomRessourceLecteur: *const ::std::os::raw::c_char, pcDateHeure: *const ::std::os::raw::c_char, ) -> ::std::os::raw::c_ushort; pub fn SSV_ChargerAppli( pcNomRessourceLecteur: *const ::std::os::raw::c_char, sNbZDataIn: ::std::os::raw::c_short, pvTZDataIn: *mut *mut ::std::os::raw::c_void, psTTailleDataIn: *mut usize, ) -> ::std::os::raw::c_ushort; // Fonctions techniques // La fonction Initialiser Librairie a pour objet de charger et d’initialiser dans la mémoire du système : // - dans le cas où le GALSS est installé sur le poste : // - la bibliothèque du Gestionnaire d’Accès au Lecteur Santé Social (GALSS), // - qui charge la bibliothèque du Protocole Santé Social (PSS), // - la configuration du poste de travail à l’aide du fichier galssinf, // - les variables globales communes aux différents Services SESAM-Vitale, // - les fichiers de tables et scripts des répertoires par défaut. // Cette fonction accède au référentiel électronique en utilisant le chemin complet indiqué dans le fichier sesam.ini. pub fn SSV_InitLIB2(pcFichierSesam: *const ::std::os::raw::c_char) -> ::std::os::raw::c_ushort; // La fonction Terminer a pour objet de décharger de la mémoire du système les éléments // chargés par la fonction Initialiser Librairie, qui ne sont plus utiles. pub fn SSV_TermLIB() -> ::std::os::raw::c_ushort; /// Fonctions de Tracage //La fonction Allouer Zone Mémoire a un rôle purement technique : elle permet d’allouer, autrement dit de réserver une zone ou partie de la mémoire du poste de travail pour y écrire les données à passer en entrée d’un Service SESAM-Vitale. // Cette fonction doit être utilisée pour allouer toutes les zones de mémoire requises en entrée des Services SESAM-Vitale de manière à permettre un diagnostic fiable par le « mode trace » en cas de dysfonctionnement. En effet, son mode d’exécution est susceptible de fournir des informations utiles au « mode trace » lorsqu’il est activé. pub fn SSV_AllouerZoneMem( pZDataIn: *mut *mut ::std::os::raw::c_void, taille: usize, ) -> ::std::os::raw::c_ushort; // La fonction Libérer Zone Mémoire a un rôle purement technique : elle permet de libérer une zone de mémoire du poste de travail précédemment allouée après exploitation des données qu’elle contient. // Cette fonction doit être utilisée pour libérer toutes les zones de mémoire : // - celles qui ont été allouées par le progiciel de santé pour fournir les données nécessaires à l’entrée des Services SESAM-Vitale, avant leur appel, celles qui ont été allouées par les Services SESAM-Vitale pour fournir en sortie les données utiles au progiciel de santé qui a fait appel à ces services, // - de façon à permettre un diagnostic fiable par le mode trace en cas de dysfonctionnement //En effet, son exécution est susceptible de fournir des informations utiles au « mode trace » lorsqu’il est activé. pub fn SSV_LibererZoneMem(pZone: *mut ::std::os::raw::c_void); // La fonction Initialiser Trace a pour objet de permettre l’activation du « mode trace ». // Ce mode de fonctionnement est prévu pour permettre à l’assistance technique du GIE // SESAM-Vitale d’analyser les problèmes de mise en œuvre des Services SESAM-Vitale, // notamment lorsque une fonction retourne un code d’erreur de valeur hexadécimale supérieure à FF00. pub fn SSV_InitTrace( pathConf: *mut ::std::os::raw::c_char, ModeOuvertureFicherLog: *mut ::std::os::raw::c_char, ModuleLog: ::std::os::raw::c_ushort, NiveauLog: ::std::os::raw::c_uchar, ) -> ::std::os::raw::c_ushort; }