|
|
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 a
Length: 4215 (0x1077)
Types: TextFile
Names: »asndefs.h«
└─⟦9ae75bfbd⟧ Bits:30007242 EUUGD3: Starter Kit
└─⟦697af93db⟧ »EurOpenD3/network/snmp/mit-snmp.tar.Z«
└─⟦57bbcbe75⟧
└─⟦this⟧ »./snmp/asndefs.h«
└─⟦9ae75bfbd⟧ Bits:30007242 EUUGD3: Starter Kit
└─⟦925ee6880⟧ »EurOpenD3/network/snmp/mit-snmp.900225.tar.Z«
└─⟦a4bfa469c⟧
└─⟦this⟧ »./snmp/asndefs.h«
#ifndef _ASNDEFS_H_
#define _ASNDEFS_H_
/*
* $Header: asndefs.h,v 1.1 89/01/11 22:09:57 jrd Exp $
* Author: J. Davin
* Copyright 1988, 1989, Massachusetts Institute of Technology
* See permission and disclaimer notice in file "notice.h"
*/
#include <notice.h>
#include <ctypes.h>
#include <asn.h>
#include <asl.h>
typedef struct AsnDatumTag {
AsnIndexType asnDatumParent;
AsnIndexType asnDatumMyself;
AsnIndexType asnDatumSons;
AsnLengthType asnDatumTotalLen;
AsnLengthType asnDatumMaxLen;
AsnLengthType asnDatumActualLen;
AsnLengthType asnDatumUserLen;
AsnLengthType asnDatumAlarm;
AsnTypeType asnDatumCmd;
AsnClassType asnDatumClass;
AsnTagType asnDatumTag;
AsnLengthType asnDatumValue;
AslIdType asnDatumNode;
CUnssType asnDatumFlags;
} AsnDatumType;
typedef AsnDatumType *AsnDatumPtrType;
#define asnDatumConstructorGet(x) \
(((AsnDatumPtrType)(x))->asnDatumFlags & 0x04)
#define asnDatumConstructorSet(x,c) \
((c) ? \
(((AsnDatumPtrType)(x))->asnDatumFlags |= 0x04) : \
(((AsnDatumPtrType)(x))->asnDatumFlags &= ~(0x04)))
#define asnDatumMustMatchGet(x) \
(((AsnDatumPtrType)(x))->asnDatumFlags & 0x08)
#define asnDatumMustMatchSet(x,c) \
((c) ? \
(((AsnDatumPtrType)(x))->asnDatumFlags |= 0x08) : \
(((AsnDatumPtrType)(x))->asnDatumFlags &= ~(0x08)))
#define asnDatumIndefLengthGet(x) \
(((AsnDatumPtrType)(x))->asnDatumFlags & 0x10)
#define asnDatumIndefLengthSet(x,c) \
((c) ? \
(((AsnDatumPtrType)(x))->asnDatumFlags |= 0x10) : \
(((AsnDatumPtrType)(x))->asnDatumFlags &= ~(0x10)))
typedef AsnStatusType (*AsnParseFnType) ();
typedef struct AsnTag {
AslIdType asnLanguage;
AsnStatusType asnStatus;
CIntfType asnParseLevel;
AsnLengthType asnBytesLeft;
AsnIndexType asnDatumFree;
AsnIndexType asnNewId;
AsnIndexType asnSize;
AsnLengthType asnSoFar;
CUnsfType asnLenCnt;
CUnsfType asnRefCnt;
AsnParseFnType asnFn;
AslIdType asnWomb;
AsnIndexType asnDatum;
AsnDatumPtrType asnArea;
} AsnType;
typedef AsnType *AsnPtrType;
#define asnPtrToId(x) ((AsnIdType) ((AsnDatumPtrType) (x)))
#define asnIdToPtr(x) ((AsnDatumPtrType) ((AsnIdType) (x)))
#define asnPtrToRoot(x) ((AsnPtrType) \
((x) + (x)->asnDatumMyself))
#define asnRootToPtr(x) (((AsnPtrType)(x))->asnArea + \
((AsnPtrType)(x))->asnDatum)
#define asnTagDef(asn) \
((asnIdToPtr (asn))->asnDatumTag)
#define asnTypeDef(asn) \
((asnIdToPtr (asn))->asnDatumCmd)
#define asnLengthDef(asn) \
((asnIdToPtr (asn))->asnDatumUserLen)
#define asnSonsDef(asn) \
((asnIdToPtr (asn))->asnDatumSons)
#define asnConstructorDef(asn) \
(asnDatumConstructorGet (asnIdToPtr (asn)))
#define asnClassDef(asn) \
((asnIdToPtr (asn))->asnDatumClass)
#define asnNegativeDef(cp, n) \
((CBoolType) ((n), \
(*((CIntbPtrType) (cp)) < (CIntbType) 0)))
#define asnNonZeroDef(cp, n) \
((CBoolType) (((n) > 1) || (*(cp) != 0)))
#ifdef SAFE
#define asnComponentDef(asn, i) \
(((asnPtrToRoot (asnIdToPtr (asn)))->asnRefCnt++), \
(asnPtrToId (asnIdToPtr (asn) - (i))))
#else /* SAFE */
#define asnComponentDef(asn, i) \
(((asn) == (AsnIdType) 0) ? (asn) : \
(((i) > (asnIdToPtr (asn))->asnDatumSons) ? \
((AsnIdType) 0) : \
(((asnPtrToRoot (asnIdToPtr (asn)))->asnRefCnt++), \
(asnPtrToId (asnIdToPtr (asn) - (i))))))
#endif /* SAFE */
#define asnFreeDef(asn) \
(((asn) == (AsnIdType) 0) ? (asn) : \
((--((asnPtrToRoot (asnIdToPtr (asn)))->asnRefCnt)) ? \
((AsnIdType) 0) : \
((free ((char *) \
((asnPtrToRoot (asnIdToPtr (asn)))->asnArea))), \
((AsnIdType) 0))))
#ifdef SAFE
#define asnValueDef(asn) \
(((CBytePtrType) \
(asnPtrToRoot (asnIdToPtr (asn))->asnArea)) + \
(asnIdToPtr (asn))->asnDatumValue)
#else /* SAFE */
#define asnValueDef(asn) \
((asn == (AsnIdType) 0) ? \
((CBytePtrType) 0) : \
((asnDatumConstructorGet (asnIdToPtr (asn))) ? \
((CBytePtrType) 0) : (((CBytePtrType) \
(asnPtrToRoot (asnIdToPtr (asn))->asnArea)) + \
(asnIdToPtr (asn))->asnDatumValue)))
#endif /* SAFE */
#endif /* _ASNDEFS_H_ */