add ffasn1c example for RSPRO
This can help us for debugging using an independent decoder compared to asn1c
Change-Id: I15293014cddb75190e7f848fff6d07a3401461ff
diff --git a/ffasn1c/rspro.h b/ffasn1c/rspro.h
new file mode 100644
index 0000000..a11d775
--- /dev/null
+++ b/ffasn1c/rspro.h
@@ -0,0 +1,337 @@
+/* Automatically generated file - do not edit */
+#ifndef _FFASN1_RSPRO_H
+#define _FFASN1_RSPRO_H
+
+#include "asn1defs.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef int OperationTag;
+
+extern const ASN1CType asn1_type_OperationTag[];
+
+typedef int BankId;
+
+extern const ASN1CType asn1_type_BankId[];
+
+typedef int ClientId;
+
+extern const ASN1CType asn1_type_ClientId[];
+
+typedef enum ComponentType {
+ ComponentType_remsimClient,
+ ComponentType_remsimServer,
+ ComponentType_remsimBankd,
+} ComponentType;
+
+extern const ASN1CType asn1_type_ComponentType[];
+
+typedef ASN1String ComponentName;
+
+extern const ASN1CType asn1_type_ComponentName[];
+
+typedef struct ComponentIdentity {
+ ComponentType type;
+ ComponentName name;
+ ComponentName software;
+ ComponentName swVersion;
+ BOOL hwManufacturer_option;
+ ComponentName hwManufacturer;
+ BOOL hwModel_option;
+ ComponentName hwModel;
+ BOOL hwSerialNr_option;
+ ComponentName hwSerialNr;
+ BOOL hwVersion_option;
+ ComponentName hwVersion;
+ BOOL fwVersion_option;
+ ComponentName fwVersion;
+} ComponentIdentity;
+
+
+extern const ASN1CType asn1_type_ComponentIdentity[];
+
+typedef ASN1String Ipv4Address;
+
+extern const ASN1CType asn1_type_Ipv4Address[];
+
+typedef ASN1String Ipv6Address;
+
+extern const ASN1CType asn1_type_Ipv6Address[];
+
+typedef enum {
+ IpAddress_ipv4,
+ IpAddress_ipv6,
+} IpAddress_choice;
+
+typedef struct IpAddress {
+ IpAddress_choice choice;
+ union {
+ Ipv4Address ipv4;
+ Ipv6Address ipv6;
+ } u;
+} IpAddress;
+
+extern const ASN1CType asn1_type_IpAddress[];
+
+typedef int PortNumber;
+
+extern const ASN1CType asn1_type_PortNumber[];
+
+typedef struct IpPort {
+ IpAddress ip;
+ PortNumber port;
+} IpPort;
+
+
+extern const ASN1CType asn1_type_IpPort[];
+
+typedef enum ResultCode {
+ ResultCode_ok,
+ ResultCode_illegalClientId,
+ ResultCode_illegalBankId,
+ ResultCode_illegalSlotId,
+ ResultCode_cardNotPresent,
+ ResultCode_cardUnresponsive,
+ ResultCode_cardTransmissionError,
+} ResultCode;
+
+extern const ASN1CType asn1_type_ResultCode[];
+
+typedef int SlotNumber;
+
+extern const ASN1CType asn1_type_SlotNumber[];
+
+typedef struct ClientSlot {
+ ClientId clientId;
+ SlotNumber slotNr;
+} ClientSlot;
+
+
+extern const ASN1CType asn1_type_ClientSlot[];
+
+typedef struct BankSlot {
+ BankId bankId;
+ SlotNumber slotNr;
+} BankSlot;
+
+
+extern const ASN1CType asn1_type_BankSlot[];
+
+typedef ASN1String ATR;
+
+extern const ASN1CType asn1_type_ATR[];
+
+typedef struct TpduFlags {
+ BOOL tpduHeaderPresent;
+ BOOL finalPart;
+ BOOL procByteContinueTx;
+ BOOL procByteContinueRx;
+} TpduFlags;
+
+
+extern const ASN1CType asn1_type_TpduFlags[];
+
+typedef struct SlotPhysStatus {
+ BOOL resetActive;
+ BOOL vccPresent_option;
+ BOOL vccPresent;
+ BOOL clkActive_option;
+ BOOL clkActive;
+ BOOL cardPresent_option;
+ BOOL cardPresent;
+} SlotPhysStatus;
+
+
+extern const ASN1CType asn1_type_SlotPhysStatus[];
+
+typedef struct ConnectBankReq {
+ ComponentIdentity identity;
+ BankId bankId;
+ SlotNumber numberOfSlots;
+} ConnectBankReq;
+
+
+extern const ASN1CType asn1_type_ConnectBankReq[];
+
+typedef struct ConnectBankRes {
+ ComponentIdentity identity;
+ ResultCode result;
+} ConnectBankRes;
+
+
+extern const ASN1CType asn1_type_ConnectBankRes[];
+
+typedef struct ConnectClientReq {
+ ComponentIdentity identity;
+ BOOL clientSlot_option;
+ ClientSlot clientSlot;
+} ConnectClientReq;
+
+
+extern const ASN1CType asn1_type_ConnectClientReq[];
+
+typedef struct ConnectClientRes {
+ ComponentIdentity identity;
+ ResultCode result;
+} ConnectClientRes;
+
+
+extern const ASN1CType asn1_type_ConnectClientRes[];
+
+typedef struct CreateMappingReq {
+ ClientSlot client;
+ BankSlot bank;
+} CreateMappingReq;
+
+
+extern const ASN1CType asn1_type_CreateMappingReq[];
+
+typedef struct CreateMappingRes {
+ ResultCode result;
+} CreateMappingRes;
+
+
+extern const ASN1CType asn1_type_CreateMappingRes[];
+
+typedef struct RemoveMappingReq {
+ ClientSlot client;
+ BankSlot bank;
+} RemoveMappingReq;
+
+
+extern const ASN1CType asn1_type_RemoveMappingReq[];
+
+typedef struct RemoveMappingRes {
+ ResultCode result;
+} RemoveMappingRes;
+
+
+extern const ASN1CType asn1_type_RemoveMappingRes[];
+
+typedef struct ConfigClientReq {
+ ClientSlot clientSlot;
+ IpPort bankd;
+} ConfigClientReq;
+
+
+extern const ASN1CType asn1_type_ConfigClientReq[];
+
+typedef struct ConfigClientRes {
+ ResultCode result;
+} ConfigClientRes;
+
+
+extern const ASN1CType asn1_type_ConfigClientRes[];
+
+typedef struct SetAtrReq {
+ ClientSlot slot;
+ ATR atr;
+} SetAtrReq;
+
+
+extern const ASN1CType asn1_type_SetAtrReq[];
+
+typedef struct SetAtrRes {
+ ResultCode result;
+} SetAtrRes;
+
+
+extern const ASN1CType asn1_type_SetAtrRes[];
+
+typedef struct TpduModemToCard {
+ ClientSlot fromClientSlot;
+ BankSlot toBankSlot;
+ TpduFlags flags;
+ ASN1String data;
+} TpduModemToCard;
+
+
+extern const ASN1CType asn1_type_TpduModemToCard[];
+
+typedef struct TpduCardToModem {
+ BankSlot fromBankSlot;
+ ClientSlot toClientSlot;
+ TpduFlags flags;
+ ASN1String data;
+} TpduCardToModem;
+
+
+extern const ASN1CType asn1_type_TpduCardToModem[];
+
+typedef struct ClientSlotStatusInd {
+ ClientSlot fromClientSlot;
+ BankSlot toBankSlot;
+ SlotPhysStatus slotPhysStatus;
+} ClientSlotStatusInd;
+
+
+extern const ASN1CType asn1_type_ClientSlotStatusInd[];
+
+typedef struct BankSlotStatusInd {
+ BankSlot fromBankSlot;
+ ClientSlot toClientSlot;
+ SlotPhysStatus slotPhysStatus;
+} BankSlotStatusInd;
+
+
+extern const ASN1CType asn1_type_BankSlotStatusInd[];
+
+typedef enum {
+ RsproPDUchoice_connectBankReq,
+ RsproPDUchoice_connectBankRes,
+ RsproPDUchoice_connectClientReq,
+ RsproPDUchoice_connectClientRes,
+ RsproPDUchoice_createMappingReq,
+ RsproPDUchoice_createMappingRes,
+ RsproPDUchoice_removeMappingReq,
+ RsproPDUchoice_removeMappingRes,
+ RsproPDUchoice_configClientReq,
+ RsproPDUchoice_configClientRes,
+ RsproPDUchoice_setAtrReq,
+ RsproPDUchoice_setAtrRes,
+ RsproPDUchoice_tpduModemToCard,
+ RsproPDUchoice_tpduCardToModem,
+ RsproPDUchoice_clientSlotStatusInd,
+ RsproPDUchoice_bankSlotStatusInd,
+} RsproPDUchoice_choice;
+
+typedef struct RsproPDUchoice {
+ RsproPDUchoice_choice choice;
+ union {
+ ConnectBankReq connectBankReq;
+ ConnectBankRes connectBankRes;
+ ConnectClientReq connectClientReq;
+ ConnectClientRes connectClientRes;
+ CreateMappingReq createMappingReq;
+ CreateMappingRes createMappingRes;
+ RemoveMappingReq removeMappingReq;
+ RemoveMappingRes removeMappingRes;
+ ConfigClientReq configClientReq;
+ ConfigClientRes configClientRes;
+ SetAtrReq setAtrReq;
+ SetAtrRes setAtrRes;
+ TpduModemToCard tpduModemToCard;
+ TpduCardToModem tpduCardToModem;
+ ClientSlotStatusInd clientSlotStatusInd;
+ BankSlotStatusInd bankSlotStatusInd;
+ } u;
+} RsproPDUchoice;
+
+extern const ASN1CType asn1_type_RsproPDUchoice[];
+
+typedef struct RsproPDU {
+ int version;
+ OperationTag tag;
+ RsproPDUchoice msg;
+} RsproPDU;
+
+
+extern const ASN1CType asn1_type_RsproPDU[];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _FFASN1_RSPRO_H */