Annotation of 43BSDReno/contrib/isode-beta/h/pep.h, revision 1.1

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

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.