DataMuseum.dk

Presents historical artifacts from the history of:

DKUUG/EUUG Conference tapes

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about DKUUG/EUUG Conference tapes

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download
Index: T p

⟦50156ed16⟧ TextFile

    Length: 3731 (0xe93)
    Types: TextFile
    Names: »pep.h«

Derivation

└─⟦2d1937cfd⟧ Bits:30007241 EUUGD22: P.P 5.0
    └─⟦041b9c0f8⟧ »EurOpenD22/isode/pepsy.system-6.0.Z« 
        └─⟦d49939f05⟧ 
            └─⟦6a28ec38e⟧ »pepsy.tar« 
                └─⟦this⟧ »pepsy/pep.h« 

TextFile

/* 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