|
|
1.1 ! root 1: /* pep.h */ ! 2: ! 3: /* ! 4: * $Header: /f/osi/h/RCS/pep.h,v 7.0 90/07/01 19:52:36 mrose Exp $ ! 5: * ! 6: * ! 7: * $Log: pep.h,v $ ! 8: * Revision 7.0 90/07/01 19:52:36 mrose ! 9: * *** empty log message *** ! 10: * ! 11: */ ! 12: ! 13: /* ! 14: * NOTICE ! 15: * ! 16: * Acquisition, use, and distribution of this module and related ! 17: * materials are subject to the restrictions of a license agreement. ! 18: * Consult the Preface in the User's Manual for the full terms of ! 19: * this agreement. ! 20: * ! 21: */ ! 22: ! 23: ! 24: #ifndef PEP_DEFINITIONS ! 25: #define PEP_DEFINITIONS ! 26: /* ! 27: * Definitions for pep tables ! 28: */ ! 29: ! 30: typedef struct { ! 31: int pe_type; /* Type of entry */ ! 32: int pe_ucode; /* index to user's code if any */ ! 33: int pe_tag; /* Tag of this entry if any */ ! 34: int pe_flags; /* Flags */ ! 35: } tpe; ! 36: ! 37: typedef struct { ! 38: int pe_type; /* Type of entry */ ! 39: int pe_ucode; /* index to user's code if any */ ! 40: int pe_tag; /* Tag of this entry if any */ ! 41: int pe_flags; /* Flags */ ! 42: char *pe_typename /* User defined name of variable */ ! 43: } ptpe; ! 44: ! 45: /* macros for getting values of default flexibly */ ! 46: #define IVAL(x) ((x)->pe_ucode) /* Integer value */ ! 47: #define PVAL(x) ((char *)(x)->pe_tag) /* Pointer (char *) */ ! 48: #define TVAL(x) ((x)->pe_flags) /* Type - Integer value */ ! 49: ! 50: /* Types */ ! 51: #define PE_START (-1) ! 52: #define PE_END 0 ! 53: #define XOBJECT 3 ! 54: #define UCODE 6 ! 55: #define MALLOC 7 ! 56: #define SCTRL 8 ! 57: #define CH_ACT 9 ! 58: #define OPTL 10 /* Optionals field offset */ ! 59: ! 60: /* types that generate data */ ! 61: #define TYPE_DATA 20 ! 62: ! 63: #define ANY (TYPE_DATA + 0) ! 64: #define INTEGER (TYPE_DATA + 1) ! 65: #define BOOLEAN (TYPE_DATA + 2) ! 66: #define OBJECT (TYPE_DATA + 3) /* This generates data */ ! 67: #define BITSTRING (TYPE_DATA + 4) ! 68: #define OCTETSTRING (TYPE_DATA + 5) ! 69: #define SET_START (TYPE_DATA + 6) ! 70: #define SEQ_START (TYPE_DATA + 7) ! 71: #define SEQOF_START (TYPE_DATA + 8) ! 72: #define SETOF_START (TYPE_DATA + 9) ! 73: #define CHOICE_START (TYPE_DATA + 10) ! 74: /* #define CONS_ANY (TYPE_DATA + 11) */ ! 75: #define T_NULL (TYPE_DATA + 12) ! 76: #define T_OID (TYPE_DATA + 13) ! 77: #define ETAG (TYPE_DATA + 14) /*so set_find in pr_set is executed*/ ! 78: #define IMP_OBJ (TYPE_DATA + 15) /*so set_find in pr_set is executed*/ ! 79: #define EXTOBJ (TYPE_DATA + 16) /* External reference object */ ! 80: #define EXTMOD (TYPE_DATA + 17) /* External module for above object */ ! 81: #define OBJID (TYPE_DATA + 18) /* Object Identifier */ ! 82: #define DFLT_F (TYPE_DATA + 19)/* Default value for following entry */ ! 83: #define DFLT_B (TYPE_DATA + 20)/* default value for previous entry */ ! 84: ! 85: #define STYPE_DATA (TYPE_DATA + 30) /* Above here are the S* items */ ! 86: /* No Offset entries to cope with the ISODE optimisation */ ! 87: #define SBITSTRING (STYPE_DATA + 0) /* No offset */ ! 88: #define SOBJID (STYPE_DATA + 1) /* Object Identifier - No offset */ ! 89: /* #define SCONS_ANY (STYPE_DATA + 2) /* No offset */ ! 90: #define SANY (STYPE_DATA + 3) ! 91: #define SEXTOBJ (STYPE_DATA + 4) /* External reference object */ ! 92: #define SOBJECT (STYPE_DATA + 5) /* This generates data */ ! 93: #define SOCTETSTRING (STYPE_DATA + 6) /* No offset */ ! 94: #define SEXTERNAL (STYPE_DATA + 7) /* External to be encoded */ ! 95: ! 96: #define ISDTYPE(p) (p->pe_type >= TYPE_DATA) ! 97: ! 98: /* User code indexes */ ! 99: ! 100: #define NONE 0 /* No User code */ ! 101: /* Standard Tags */ ! 102: ! 103: #define T_BOOL 1 ! 104: #define T_INTEGER 2 ! 105: #define T_OCTETSTRING 4 ! 106: #define T_OBJIDENT 6 ! 107: #define T_EXTERNAL 8 ! 108: #define T_SEQ 16 ! 109: #define T_SET 17 ! 110: #define T_IA5 22 ! 111: #define T_GRAPHIC 25 ! 112: ! 113: /* Flags */ ! 114: ! 115: #define FL_IMPLICIT 0100 ! 116: #define FL_DEFAULT 0200 ! 117: #define FL_OPTIONAL 0400 ! 118: ! 119: #define OPTIONAL(p) ((p)->pe_flags & FL_OPTIONAL) ! 120: #define DEFAULT(p) ((p)->pe_flags & FL_DEFAULT) ! 121: ! 122: /* Class specification */ ! 123: #define FL_UNIVERSAL PE_CLASS_UNIV ! 124: #define FL_APPLICATION PE_CLASS_APPL ! 125: #define FL_CONTEXT PE_CLASS_CONT ! 126: #define FL_PRIVATE PE_CLASS_PRIV ! 127: ! 128: /* This has to be changed if the values for the above 4 are changed in ISODE */ ! 129: #define FL_CLASS 0xf ! 130: ! 131: /* ETAG flags */ ! 132: #define T_PRIM 0 ! 133: #define T_CONS 1 ! 134: #define T_OBJ 2 ! 135: ! 136: #define CLASS(p) ((p)->pe_flags & FL_CLASS) ! 137: #define TAG(p) ((p)->pe_tag) ! 138: #define TESTBIT(p, bit) ((p) & (1 << (bit))) ! 139: #define SETBIT(p, bit) ((p) |= (1 << (bit))) ! 140: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.