|
|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T p
Length: 3731 (0xe93)
Types: TextFile
Names: »pep.h«
└─⟦2d1937cfd⟧ Bits:30007241 EUUGD22: P.P 5.0
└─⟦041b9c0f8⟧ »EurOpenD22/isode/pepsy.system-6.0.Z«
└─⟦d49939f05⟧
└─⟦6a28ec38e⟧ »pepsy.tar«
└─⟦this⟧ »pepsy/pep.h«
/* Copyright 1989 CSIRO Division of Information Technology
* May be given away but not sold for profit - See Copyright file for details
*/
#ifndef PEP_DEFINITIONS
#define PEP_DEFINITIONS
/*
* Definitions for pep tables
*/
typedef struct {
int pe_type; /* Type of entry */
int pe_ucode; /* index to user's code if any */
int pe_tag; /* Tag of this entry if any */
int pe_flags; /* Flags */
} tpe;
typedef struct {
int pe_type; /* Type of entry */
int pe_ucode; /* index to user's code if any */
int pe_tag; /* Tag of this entry if any */
int pe_flags; /* Flags */
char *pe_typename /* User defined name of variable */
} ptpe;
/* macros for getting values of default flexibly */
#define IVAL(x) ((x)->pe_ucode) /* Integer value */
#define PVAL(x) ((char *)(x)->pe_tag) /* Pointer (char *) */
#define TVAL(x) ((x)->pe_flags) /* Type - Integer value */
/* Types */
#define PE_START (-1)
#define PE_END 0
#define XOBJECT 3
#define UCODE 6
#define MALLOC 7
#define SCTRL 8
#define CH_ACT 9
#define OPTL 10 /* Optionals field offset */
/* types that generate data */
#define TYPE_DATA 20
#define ANY (TYPE_DATA + 0)
#define INTEGER (TYPE_DATA + 1)
#define BOOLEAN (TYPE_DATA + 2)
#define OBJECT (TYPE_DATA + 3) /* This generates data */
#define BITSTRING (TYPE_DATA + 4)
#define OCTETSTRING (TYPE_DATA + 5)
#define SET_START (TYPE_DATA + 6)
#define SEQ_START (TYPE_DATA + 7)
#define SEQOF_START (TYPE_DATA + 8)
#define SETOF_START (TYPE_DATA + 9)
#define CHOICE_START (TYPE_DATA + 10)
#define CONS_ANY (TYPE_DATA + 11)
#define T_NULL (TYPE_DATA + 12)
#define T_OID (TYPE_DATA + 13)
#define ETAG (TYPE_DATA + 14) /*so set_find in pr_set is executed*/
#define IMP_OBJ (TYPE_DATA + 15) /*so set_find in pr_set is executed*/
#define EXTOBJ (TYPE_DATA + 16) /* External reference object */
#define EXTMOD (TYPE_DATA + 17) /* External module for above object */
#define OBJID (TYPE_DATA + 18) /* Object Identifier */
#define DFLT_F (TYPE_DATA + 19)/* Default value for following entry */
#define DFLT_B (TYPE_DATA + 20)/* default value for previous entry */
#define STYPE_DATA (TYPE_DATA + 30) /* Above here are the S* items */
/* No Offset entries to cope with the ISODE optimisation */
#define SBITSTRING (STYPE_DATA + 0) /* No offset */
#define SOBJID (STYPE_DATA + 1) /* Object Identifier - No offset */
#define SCONS_ANY (STYPE_DATA + 2) /* No offset */
#define SANY (STYPE_DATA + 3)
#define SEXTOBJ (STYPE_DATA + 4) /* External reference object */
#define SOBJECT (STYPE_DATA + 5) /* This generates data */
#define SOCTETSTRING (STYPE_DATA + 6) /* No offset */
#define SEXTERNAL (STYPE_DATA + 7) /* External to be encoded */
#define ISDTYPE(p) (p->pe_type >= TYPE_DATA)
/* User code indexes */
#define NONE 0 /* No User code */
/* Standard Tags */
#define T_BOOL 1
#define T_INTEGER 2
#define T_OCTETSTRING 4
#define T_OBJIDENT 6
#define T_EXTERNAL 8
#define T_SEQ 16
#define T_SET 17
#define T_IA5 22
#define T_GRAPHIC 25
/* Flags */
#define FL_IMPLICIT 0100
#define FL_DEFAULT 0200
#define FL_OPTIONAL 0400
#define OPTIONAL(p) ((p)->pe_flags & FL_OPTIONAL)
#define DEFAULT(p) ((p)->pe_flags & FL_DEFAULT)
/* Class specification */
#define FL_UNIVERSAL PE_CLASS_UNIV
#define FL_APPLICATION PE_CLASS_APPL
#define FL_CONTEXT PE_CLASS_CONT
#define FL_PRIVATE PE_CLASS_PRIV
/* This has to be changed if the values for the above 4 are changed in ISODE */
#define FL_CLASS 0xf
/* ETAG flags */
#define T_PRIM 0
#define T_CONS 1
#define T_OBJ 2
#define CLASS(p) ((p)->pe_flags & FL_CLASS)
#define TAG(p) ((p)->pe_tag)
#define TESTBIT(p, bit) ((p) & (1 << (bit)))
#define SETBIT(p, bit) ((p) |= (1 << (bit)))
#endif