Annotation of 43BSDReno/contrib/isode-beta/h/pep.h, revision 1.1.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.