#ifndef _tbl_h_
#define _tbl_h_
typedef enum
{
TBL_BOOLEAN = 0,
TBL_INTEGER = 1,
TBL_BITSTRING = 2,
TBL_OCTETSTRING = 3,
TBL_NULL = 4,
TBL_OID = 5,
TBL_REAL = 6,
TBL_ENUMERATED = 7,
TBL_SEQUENCE = 8,
TBL_SET = 9,
TBL_SEQUENCEOF = 10,
TBL_SETOF = 11,
TBL_CHOICE = 12,
TBL_TYPEREF = 13
} TBLTypeId;
#define BEncTBLTypeIdContent BEncAsnEnumContent
#define BDecTBLTypeIdContent BDecAsnEnumContent
#define PrintTBLTypeId PrintAsnEnum
#define FreeTBLTypeId FreeAsnEnum
typedef AsnInt TBLTypeDefId;
#define BEncTBLTypeDefIdContent BEncAsnIntContent
#define BDecTBLTypeDefIdContent BDecAsnIntContent
#define PrintTBLTypeDefId PrintAsnInt
#define FreeTBLTypeDefId FreeAsnInt
typedef enum
{
UNIVERSAL = 0,
APPLICATION = 1,
CONTEXT = 2,
PRIVATE = 3
} TBLTagClass;
#define BEncTBLTagClassContent BEncAsnEnumContent
#define BDecTBLTagClassContent BDecAsnEnumContent
#define PrintTBLTagClass PrintAsnEnum
#define FreeTBLTagClass FreeAsnEnum
typedef struct TBLRange
{
AsnInt from;
AsnInt to;
} TBLRange;
AsnLen BEncTBLRangeContent PROTO ((BUF_TYPE b, TBLRange *v));
void BDecTBLRangeContent PROTO ((BUF_TYPE b, AsnTag tagId0, AsnLen elmtLen0, TBLRange *v, AsnLen *bytesDecoded, ENV_TYPE env));
void PrintTBLRange PROTO ((FILE* f, TBLRange *v, unsigned short int indent));
void FreeTBLRange PROTO ((TBLRange *v));
typedef struct TBLNamedNumber
{
PrintableString name;
AsnInt value;
} TBLNamedNumber;
AsnLen BEncTBLNamedNumberContent PROTO ((BUF_TYPE b, TBLNamedNumber *v));
void BDecTBLNamedNumberContent PROTO ((BUF_TYPE b, AsnTag tagId0, AsnLen elmtLen0, TBLNamedNumber *v, AsnLen *bytesDecoded, ENV_TYPE env));
void PrintTBLNamedNumber PROTO ((FILE* f, TBLNamedNumber *v, unsigned short int indent));
void FreeTBLNamedNumber PROTO ((TBLNamedNumber *v));
typedef AsnList TBLNamedNumberList;
AsnLen BEncTBLNamedNumberListContent PROTO ((BUF_TYPE b, TBLNamedNumberList *v));
void BDecTBLNamedNumberListContent PROTO ((BUF_TYPE b, AsnTag tagId0, AsnLen elmtLen0, TBLNamedNumberList *v, AsnLen *bytesDecoded, ENV_TYPE env));
void PrintTBLNamedNumberList PROTO ((FILE* f, TBLNamedNumberList *v, unsigned short int indent));
void FreeTBLNamedNumberList PROTO ((TBLNamedNumberList *v));
typedef struct TBLTypeRef
{
TBLTypeDefId typeDef;
AsnBool implicit;
struct TBLTypeDef *typeDefPtr;
} TBLTypeRef;
AsnLen BEncTBLTypeRefContent PROTO ((BUF_TYPE b, TBLTypeRef *v));
void BDecTBLTypeRefContent PROTO ((BUF_TYPE b, AsnTag tagId0, AsnLen elmtLen0, TBLTypeRef *v, AsnLen *bytesDecoded, ENV_TYPE env));
void PrintTBLTypeRef PROTO ((FILE* f, TBLTypeRef *v, unsigned short int indent));
void FreeTBLTypeRef PROTO ((TBLTypeRef *v));
typedef struct TBLTag
{
TBLTagClass tclass;
AsnInt code;
BER_FORM form;
AsnTag encTag;
} TBLTag;
AsnLen BEncTBLTagContent PROTO ((BUF_TYPE b, TBLTag *v));
void BDecTBLTagContent PROTO ((BUF_TYPE b, AsnTag tagId0, AsnLen elmtLen0, TBLTag *v, AsnLen *bytesDecoded, ENV_TYPE env));
void PrintTBLTag PROTO ((FILE* f, TBLTag *v, unsigned short int indent));
void FreeTBLTag PROTO ((TBLTag *v));
typedef AsnList TBLTypeSeqOf;
AsnLen BEncTBLTypeSeqOfContent PROTO ((BUF_TYPE b, TBLTypeSeqOf *v));
void BDecTBLTypeSeqOfContent PROTO ((BUF_TYPE b, AsnTag tagId0, AsnLen elmtLen0, TBLTypeSeqOf *v, AsnLen *bytesDecoded, ENV_TYPE env));
void PrintTBLTypeSeqOf PROTO ((FILE* f, TBLTypeSeqOf *v, unsigned short int indent));
void FreeTBLTypeSeqOf PROTO ((TBLTypeSeqOf *v));
typedef AsnList TBLTypeContentSeqOf;
AsnLen BEncTBLTypeContentSeqOfContent PROTO ((BUF_TYPE b, TBLTypeContentSeqOf *v));
void BDecTBLTypeContentSeqOfContent PROTO ((BUF_TYPE b, AsnTag tagId0, AsnLen elmtLen0, TBLTypeContentSeqOf *v, AsnLen *bytesDecoded, ENV_TYPE env));
void PrintTBLTypeContentSeqOf PROTO ((FILE* f, TBLTypeContentSeqOf *v, unsigned short int indent));
void FreeTBLTypeContentSeqOf PROTO ((TBLTypeContentSeqOf *v));
typedef struct TBLType
{
TBLTypeId typeId;
AsnBool optional;
TBLTypeSeqOf* tagList;
struct TBLTypeContent* content;
PrintableString fieldName;
struct TBLRange* constraint;
TBLNamedNumberList* values;
} TBLType;
AsnLen BEncTBLTypeContent PROTO ((BUF_TYPE b, TBLType *v));
void BDecTBLTypeContent PROTO ((BUF_TYPE b, AsnTag tagId0, AsnLen elmtLen0, TBLType *v, AsnLen *bytesDecoded, ENV_TYPE env));
void PrintTBLType PROTO ((FILE* f, TBLType *v, unsigned short int indent));
void FreeTBLType PROTO ((TBLType *v));
typedef struct TBLTypeContent
{
enum TBLTypeContentChoiceId
{
TBLTYPECONTENT_PRIMTYPE,
TBLTYPECONTENT_ELMTS,
TBLTYPECONTENT_TYPEREF
} choiceId;
union TBLTypeContentChoiceUnion
{
AsnNull primType;
TBLTypeContentSeqOf* elmts;
struct TBLTypeRef* typeRef;
} a;
} TBLTypeContent;
AsnLen BEncTBLTypeContentContent PROTO ((BUF_TYPE b, TBLTypeContent *v));
void BDecTBLTypeContentContent PROTO ((BUF_TYPE b, AsnTag tagId0, AsnLen elmtLen0, TBLTypeContent *v, AsnLen *bytesDecoded, ENV_TYPE env));
void PrintTBLTypeContent PROTO ((FILE* f, TBLTypeContent *v, unsigned short int indent));
void FreeTBLTypeContent PROTO ((TBLTypeContent *v));
typedef struct TBLTypeDef
{
TBLTypeDefId typeDefId;
PrintableString typeName;
struct TBLType* type;
AsnNull* isPdu;
} TBLTypeDef;
AsnLen BEncTBLTypeDefContent PROTO ((BUF_TYPE b, TBLTypeDef *v));
void BDecTBLTypeDefContent PROTO ((BUF_TYPE b, AsnTag tagId0, AsnLen elmtLen0, TBLTypeDef *v, AsnLen *bytesDecoded, ENV_TYPE env));
void PrintTBLTypeDef PROTO ((FILE* f, TBLTypeDef *v, unsigned short int indent));
void FreeTBLTypeDef PROTO ((TBLTypeDef *v));
typedef AsnList TBLModuleSeqOf;
AsnLen BEncTBLModuleSeqOfContent PROTO ((BUF_TYPE b, TBLModuleSeqOf *v));
void BDecTBLModuleSeqOfContent PROTO ((BUF_TYPE b, AsnTag tagId0, AsnLen elmtLen0, TBLModuleSeqOf *v, AsnLen *bytesDecoded, ENV_TYPE env));
void PrintTBLModuleSeqOf PROTO ((FILE* f, TBLModuleSeqOf *v, unsigned short int indent));
void FreeTBLModuleSeqOf PROTO ((TBLModuleSeqOf *v));
typedef struct TBLModule
{
PrintableString name;
AsnOid id;
AsnBool isUseful;
TBLModuleSeqOf* typeDefs;
} TBLModule;
AsnLen BEncTBLModuleContent PROTO ((BUF_TYPE b, TBLModule *v));
void BDecTBLModuleContent PROTO ((BUF_TYPE b, AsnTag tagId0, AsnLen elmtLen0, TBLModule *v, AsnLen *bytesDecoded, ENV_TYPE env));
void PrintTBLModule PROTO ((FILE* f, TBLModule *v, unsigned short int indent));
void FreeTBLModule PROTO ((TBLModule *v));
typedef AsnList TBLSeqOf;
AsnLen BEncTBLSeqOfContent PROTO ((BUF_TYPE b, TBLSeqOf *v));
void BDecTBLSeqOfContent PROTO ((BUF_TYPE b, AsnTag tagId0, AsnLen elmtLen0, TBLSeqOf *v, AsnLen *bytesDecoded, ENV_TYPE env));
void PrintTBLSeqOf PROTO ((FILE* f, TBLSeqOf *v, unsigned short int indent));
void FreeTBLSeqOf PROTO ((TBLSeqOf *v));
typedef struct TBL
{
AsnInt totalNumModules;
AsnInt totalNumTypeDefs;
AsnInt totalNumTypes;
AsnInt totalNumTags;
AsnInt totalNumStrings;
AsnInt totalLenStrings;
TBLSeqOf* modules;
} TBL;
AsnLen BEncTBL PROTO ((BUF_TYPE b, TBL *v));
void BDecTBL PROTO ((BUF_TYPE b, TBL *result, AsnLen *bytesDecoded, ENV_TYPE env));
AsnLen BEncTBLContent PROTO ((BUF_TYPE b, TBL *v));
void BDecTBLContent PROTO ((BUF_TYPE b, AsnTag tagId0, AsnLen elmtLen0, TBL *v, AsnLen *bytesDecoded, ENV_TYPE env));
void PrintTBL PROTO ((FILE* f, TBL *v, unsigned short int indent));
void FreeTBL PROTO ((TBL *v));
#endif