|
|
/*****************************************************************************/ /* Copyright (C) 1989-1999 Open Systems Solutions, Inc. All rights reserved.*/ /*****************************************************************************/
/* THIS FILE IS PROPRIETARY MATERIAL OF OPEN SYSTEMS SOLUTIONS, INC.
* AND MAY BE USED ONLY BY DIRECT LICENSEES OF OPEN SYSTEMS SOLUTIONS, INC. * THIS FILE MAY NOT BE DISTRIBUTED. */
/**************************************************************************/ /* FILE: @(#)asn1util.h 5.22.1.3 97/06/19 */ /* */ /* function: Support routines definitions for the optimized */ /* encoder/decoder generated by the OSS ASN.1 Compiler */ /* */ /* */ /* changes: */ /* 11/16/90 pet created */ /* */ /**************************************************************************/
#if _MSC_VER > 1000
#pragma once
#endif
#include "ossdll.h"
#if defined(_MSC_VER) && (defined(_WIN32) || defined(WIN32))
#pragma pack(push, ossPacking, 4)
#elif defined(_MSC_VER) && (defined(_WINDOWS) || defined(_MSDOS))
#pragma pack(1)
#elif defined(__BORLANDC__) && defined(__MSDOS__)
#ifdef _BC31
#pragma option -a-
#else
#pragma option -a1
#endif /* _BC31 */
#elif defined(__BORLANDC__) && defined(__WIN32__)
#pragma option -a4
#elif defined(__IBMC__)
#pragma pack(4)
#elif defined(__WATCOMC__) && defined(__NT__)
#pragma pack(push, 4)
#elif defined(__WATCOMC__) && (defined(__WINDOWS__) || defined(__DOS__))
#pragma pack(push, 1)
#endif /* _MSC_VER && _WIN32 */
#ifdef macintosh
#pragma options align=mac68k
#endif
/* The _MEM_ARRAY_SIZE size should be such that the size of the encDecVar
* field be equal or greater than that of the world->c structure */
#ifdef __hp9000s300
#define _MEM_ARRAY_SIZE 34
#endif
#ifdef __alpha
#ifdef __osf__
#define _MEM_ARRAY_SIZE 43
#endif /* __osf__ */
#endif /* __alpha */
#ifdef _AIX
#define _MEM_ARRAY_SIZE 52
#endif
#ifdef __hp9000s700
#define _MEM_ARRAY_SIZE 60
#endif
#ifdef __NeXT__
#define _MEM_ARRAY_SIZE 66
#endif
#ifdef VAXC
#define _MEM_ARRAY_SIZE 78
#endif
#ifdef __TANDEM
# ifdef __XMEM
# ifdef __INT32
# define _MEM_ARRAY_SIZE 83
# else /* INT32 */
# define _MEM_ARRAY_SIZE 84
# endif /* INT32 */
# else /* XMEM */
# define _MEM_ARRAY_SIZE 136
# endif /* XMEM */
#endif /* TANDEM */
#ifdef __mips
# define _MEM_ARRAY_SIZE 70
#endif /* __mips */
#ifdef _FTX /* Stratus's Fault-Tolerant Unix */
#define _MEM_ARRAY_SIZE 84
#endif
#ifdef __HIGHC__
#define _MEM_ARRAY_SIZE 52
#endif /* __HIGHC__ */
#if defined(_WIN32) || defined(_WINDOWS) || defined(__OS2__)
#define _MEM_ARRAY_SIZE 52
#endif /* _WIN32 || _WINDOWS || __OS2__ */
#ifndef _MEM_ARRAY_SIZE
#define _MEM_ARRAY_SIZE 60
#endif
typedef struct _mem_array_ { short _used; /* Next available entry */ void *_entry[_MEM_ARRAY_SIZE]; /* Pointers to allocated
* memory */ struct _mem_array_ *_next; /* Pointer to additional mem_array */ } _mem_array;
#ifndef OSS_BOOL
#define OSS_BOOL
typedef char _Bool; #endif
#ifndef OSSDEBUG
#define OSSDEBUG 0
#endif /* OSSDEBUG */
typedef struct _encoding_ { long length; /* length of the encoding */ char *value; /* pointer to encoding octets */ } _encoding;
typedef struct _enc_block_ { struct _enc_block_ *next; /* nested setofs form a list of these */ long size; /* size of the encodings array */ long used; /* number of items used in the array */ _encoding *enc; /* pointer to array of encodings */ _mem_array mem; /* previous encoding saved*/ _mem_array *mem_tail; char *pos; long max_len; _Bool buffer_provided; long _encoding_length; } _enc_block;
#ifndef _OSSNOANSI
#ifdef __cplusplus
extern "C" { #endif
extern void *DLL_ENTRY _oss_enc_getmem(struct ossGlobal *g,_Bool _userbuf); extern void *DLL_ENTRY _oss_dec_getmem(struct ossGlobal *g,long _size,_Bool _userbuf); extern void DLL_ENTRY _oss_enc_push(struct ossGlobal *g,void *_p); extern void *DLL_ENTRY _oss_enc_pop(struct ossGlobal *g); extern void DLL_ENTRY _oss_freeMem(struct ossGlobal *g,_mem_array *_p); extern void DLL_ENTRY _oss_releaseMem(struct ossGlobal *g,_mem_array *_p); #define _oss_freeTempMem _oss_releaseMem
extern void DLL_ENTRY _oss_set_outmem_d(struct ossGlobal *g, long _final_max_len, long *_totalsize, char **_outbuf); extern void DLL_ENTRY _oss_set_outmem_i(struct ossGlobal *g,long _final_max_len, long *_totalsize,char **_outbuf); extern void DLL_ENTRY _oss_set_outmem_p(struct ossGlobal *g, long *_totalsize,char **_outbuf); extern void DLL_ENTRY _oss_set_outmem_pb(struct ossGlobal *g, long *_totalsize, char **_outbuf, unsigned flags); extern void _oss_hdl_signal(int _signal); extern void DLL_ENTRY _oss_free_creal(struct ossGlobal *g, char *p); extern int DLL_ENTRY ossMinit(struct ossGlobal *g); extern void DLL_ENTRY _oss_beginBlock(struct ossGlobal *g, long count, char **pos, long *max_len); extern void DLL_ENTRY _oss_nextItem(struct ossGlobal *g, long *max_len); extern void DLL_ENTRY _oss_endBlock(struct ossGlobal *g, char **pos, long *max_len, unsigned char ct); extern void DLL_ENTRY _oss_freeDerBlocks(struct ossGlobal *g); extern void DLL_ENTRY _oss_freeGlobals(struct ossGlobal *g); #ifdef __cplusplus
} #endif
#else
extern void *_oss_enc_getmem(); extern void *_oss_dec_getmem(); extern void _oss_enc_push(); extern void *_oss_enc_pop(); extern void _oss_freeMem(); extern void _oss_releaseMem(); #define _oss_freeTempMem _oss_releaseMem
extern void _oss_set_outmem_d(); extern void _oss_set_outmem_i(); extern void _oss_set_outmem_p(); extern void _oss_set_outmem_pb(); extern void _oss_free_creal();
extern void _oss_hdl_signal(); /* signal handler */
extern void _oss_beginBlock(); extern void _oss_nextItem(); extern void _oss_endBlock(); extern void _oss_freeDerBlocks(); extern void _oss_freeGlobals();
#endif /* _OSSNOANSI */
#if defined(_MSC_VER) && (defined(_WIN32) || defined(WIN32))
#pragma pack(pop, ossPacking)
#elif defined(_MSC_VER) && (defined(_WINDOWS) || defined(_MSDOS))
#pragma pack()
#elif defined(__BORLANDC__) && (defined(__WIN32__) || defined(__MSDOS__))
#pragma option -a.
#elif defined(__IBMC__)
#pragma pack()
#elif defined(__WATCOMC__)
#pragma pack(pop)
#endif /* _MSC_VER && _WIN32 */
#ifdef macintosh
#pragma options align=reset
#endif
|