diff options
Diffstat (limited to 'public/sdk/inc/ossper.h')
-rw-r--r-- | public/sdk/inc/ossper.h | 341 |
1 files changed, 341 insertions, 0 deletions
diff --git a/public/sdk/inc/ossper.h b/public/sdk/inc/ossper.h new file mode 100644 index 000000000..bc51675a4 --- /dev/null +++ b/public/sdk/inc/ossper.h @@ -0,0 +1,341 @@ +/*****************************************************************************/ +/* Copyright (C) 1989-1996 Open Systems Solutions, Inc. All rights reserved.*/ +/*****************************************************************************/ +/**************************************************************************/ +/* +/* FILE: @(#)ossper.h 1.5 96/02/27 */ +/* */ +/* function: Define the interfaces to the routines in ossper.a for the */ +/* OSS optimized encoder and decoder. */ +/* */ +/* */ +/**************************************************************************/ + +#ifndef ossper_hdr_file +#define ossper_hdr_file + +#include <limits.h> +#include "asn1hdr.h" + +#define Aligned 1 +#define Unaligned 0 + +struct _enum_data { + int num; /* number of enumerations */ + int *enums; /* pointer to sorted array of enumerations */ +}; + +struct _char_data { + int num; /* number of characters in PermittedAlphabet */ + void *pa; /* pointer to PermittedAlphabet char string */ + void *ia; /* pointer to inverted indices string */ +}; + +extern void _oss_append(struct ossGlobal *g, unsigned char *field, unsigned long length, + int align); + +extern void _oss_penc_unconstr_int(struct ossGlobal *g, + LONG_LONG value); + +extern void _oss_penc_semicon_int(struct ossGlobal *g, + LONG_LONG value, LONG_LONG lower_bound); + +extern void _oss_penc_semicon_uint(struct ossGlobal *g, + ULONG_LONG value, ULONG_LONG lower_bound); + +extern void _oss_penc_nonneg_int(struct ossGlobal *g, + ULONG_LONG value, ULONG_LONG range); + +extern void _oss_penc_indeflen_int(struct ossGlobal *g, + ULONG_LONG value, ULONG_LONG range); + +extern void _oss_penc_small_int(struct ossGlobal *g, ULONG_LONG value); + +extern void _oss_penc_enum(struct ossGlobal *g, long data, + struct _enum_data *root, + struct _enum_data *extension); + +extern void _oss_penc_uenum(struct ossGlobal *g, unsigned long data, + struct _enum_data *root, + struct _enum_data *extension); + +extern void _oss_penc_real(struct ossGlobal *g, double value); +extern void _oss_penc_creal(struct ossGlobal *g, char *value); +extern void _oss_penc_mreal(struct ossGlobal *g, MixedReal value); + +extern void _oss_penc_constr_bpbit(struct ossGlobal *g, void *value, + ULONG_LONG lb, ULONG_LONG ub, _Bool NamedBits, + _Bool Ext); + +extern void _oss_penc_constr_pbit(struct ossGlobal *g, ULONG_LONG value, + ULONG_LONG size, ULONG_LONG lb, ULONG_LONG ub, _Bool NamedBits, + _Bool Ext); + +extern void _oss_penc_constr_bit(struct ossGlobal *g, unsigned char *value, + ULONG_LONG length, ULONG_LONG lb, ULONG_LONG ub, _Bool NamedBits, + _Bool Ext); + +extern void _oss_penc_unconstr_bit(struct ossGlobal *g, unsigned char *value, + ULONG_LONG length, _Bool NamedBits); + +extern void _oss_penc_unconstr_pbit(struct ossGlobal *g, ULONG_LONG value, + ULONG_LONG length, ULONG_LONG size, _Bool NamedBits); + +extern unsigned long _oss_penc_length(struct ossGlobal *g, ULONG_LONG length, + ULONG_LONG lb, ULONG_LONG ub, _Bool ext); + +extern void _oss_penc_small_len(struct ossGlobal *g, ULONG_LONG length); + +extern void _oss_penc_unconstr_oct(struct ossGlobal *g, unsigned char *value, + ULONG_LONG length); + +extern void _oss_penc_constr_oct(struct ossGlobal *g, unsigned char *value, + ULONG_LONG length, ULONG_LONG lb, ULONG_LONG ub); + +extern struct ossGlobal *_oss_push_global(struct ossGlobal *g); +extern struct ossGlobal *_oss_pop_global(struct ossGlobal *g); + +extern void _oss_penc_objids(struct ossGlobal *g, unsigned short *value, + unsigned long length); +extern void _oss_penc_objidi(struct ossGlobal *g, unsigned int *value, + unsigned long length); +extern void _oss_penc_objidl(struct ossGlobal *g, unsigned long *value, + unsigned long length); +extern void _oss_penc_link_objids(struct ossGlobal *g, void *value); +extern void _oss_penc_link_objidi(struct ossGlobal *g, void *value); +extern void _oss_penc_link_objidl(struct ossGlobal *g, void *value); + +extern void _oss_penc_opentype(struct ossGlobal *g, void *value); +extern void _oss_penc_nkmstr(struct ossGlobal *g, char *value, ULONG_LONG length); +extern void _oss_penc_kmstr(struct ossGlobal *g, char *value, ULONG_LONG length, + ULONG_LONG lb, ULONG_LONG ub, int bits, long index, + _Bool ext); +extern void _oss_penc_bmpstr(struct ossGlobal *g, unsigned short *value, + ULONG_LONG length, ULONG_LONG lb, ULONG_LONG ub, int bits, long index, + _Bool ext); +#if INT_MAX == 2147483647 +extern void _oss_penc_unistr(struct ossGlobal *g, int *value, + ULONG_LONG length, ULONG_LONG lb, ULONG_LONG ub, int bits, long index, + _Bool ext); +#else +extern void _oss_penc_unistr(struct ossGlobal *g, long *value, + ULONG_LONG length, ULONG_LONG lb, ULONG_LONG ub, int bits, long index, + _Bool ext); +#endif + +extern void _oss_penc_gtime(struct ossGlobal *g, GeneralizedTime *time); +extern void _oss_penc_utime(struct ossGlobal *g, UTCTime *time); + +void _oss_penc_uany(struct ossGlobal *g, void *data ); + +void _oss_penc_unconstr_huge(struct ossGlobal *g, void *data ); + +/* decoding functions */ + +extern unsigned char _oss_get_bit(struct ossGlobal *g, int align); + +extern void _oss_get_bits(struct ossGlobal *g, unsigned char *field, + unsigned long length, int align); + +unsigned char _oss_get_octet(struct ossGlobal *g, int align); + +extern LONG_LONG _oss_pdec_unconstr_int(struct ossGlobal *g); + +extern LONG_LONG _oss_pdec_semicon_int(struct ossGlobal *g, + LONG_LONG lower_bound); + +extern ULONG_LONG _oss_pdec_semicon_uint(struct ossGlobal *g, + ULONG_LONG lower_bound); + +extern ULONG_LONG _oss_pdec_nonneg_int(struct ossGlobal *g, + ULONG_LONG range); + +extern ULONG_LONG _oss_pdec_indeflen_int(struct ossGlobal *g, + ULONG_LONG range); + +extern ULONG_LONG _oss_pdec_small_int(struct ossGlobal *g); + +extern long _oss_pdec_enum(struct ossGlobal *g, + struct _enum_data *root, + struct _enum_data *extension); + +extern unsigned long _oss_pdec_uenum(struct ossGlobal *g, + struct _enum_data *root, + struct _enum_data *extension); + + +double _oss_pdec_binreal(struct ossGlobal *g, unsigned char s, long len); +void _oss_pdec_chrreal(struct ossGlobal *g, unsigned char s, long len, + double *num_out, unsigned char *str_out); + +extern float _oss_pdec_freal(struct ossGlobal *g); +extern double _oss_pdec_real(struct ossGlobal *g); +extern char * _oss_pdec_creal(struct ossGlobal *g); +extern MixedReal _oss_pdec_mreal(struct ossGlobal *g); + +extern void _oss_pdec_length(struct ossGlobal *g, unsigned long *length, + ULONG_LONG lb, ULONG_LONG ub, _Bool *last); + +void _oss_pdec_unconstr_ubit(struct ossGlobal *g, void *length, + unsigned char **value, int lengthsize); + +void _oss_pdec_unconstr_vbit_ptr(struct ossGlobal *g, void **ptr, + int lengthsize); + +void _oss_pdec_unconstr_vbit(struct ossGlobal *g, void *length, + unsigned char *value, int lengthsize, ULONG_LONG datasize); + +void _oss_pdec_unconstr_pbit(struct ossGlobal *g, void *value, + int size); + +void _oss_pdec_unconstr_bpbit(struct ossGlobal *g, unsigned char *value, + long size); + +void _oss_pdec_constr_ubit(struct ossGlobal *g, void *length, + unsigned char **value, int lengthsize, + ULONG_LONG lb, ULONG_LONG ub); + +void _oss_pdec_constr_vbit(struct ossGlobal *g, void *length, + unsigned char *value, int lengthsize, + ULONG_LONG lb, ULONG_LONG ub); + +void _oss_pdec_constr_pbit(struct ossGlobal *g, void *value, + int size, ULONG_LONG lb, ULONG_LONG ub); + +void _oss_pdec_constr_bpbit(struct ossGlobal *g, unsigned char *value, + int size, ULONG_LONG lb, ULONG_LONG ub); + +void _oss_pdec_unconstr_uoct(struct ossGlobal *g, void *length, + unsigned char **value, int lengthsize); + +void _oss_pdec_unconstr_voct_ptr(struct ossGlobal *g, void **ptr, + int lengthsize); + +void _oss_pdec_constr_voct_ptr(struct ossGlobal *g, void **ptr, + int lengthsize, ULONG_LONG lb, ULONG_LONG ub); + +void _oss_pdec_constr_uoct(struct ossGlobal *g, void *length, + unsigned char **value, int lengthsize, ULONG_LONG lb, ULONG_LONG ub); + +void _oss_pdec_constr_voct(struct ossGlobal *g, void *length, + unsigned char *value, int lengthsize, ULONG_LONG lb, ULONG_LONG ub); + +void _oss_pdec_unconstr_voct(struct ossGlobal *g, void *length, + unsigned char *value, int lengthsize, ULONG_LONG ub); + +struct ossGlobal *_oss_pdec_push(struct ossGlobal *g); +struct ossGlobal *_oss_pdec_pop(struct ossGlobal *g); + +unsigned long _oss_pdec_eap(struct ossGlobal *g, unsigned char **ext); +void _oss_pdec_eas(struct ossGlobal *g, unsigned char *ext, + unsigned long count, unsigned long ea_num); + +void _oss_pdec_lsof(struct ossGlobal *g, unsigned long *count, + ULONG_LONG lb, ULONG_LONG ub, unsigned char ext, + _Bool *last); + +void _oss_pdec_usof(struct ossGlobal *g, unsigned long *count, + unsigned char **value, int lengthsize, long itemsize, + ULONG_LONG lb, ULONG_LONG ub, unsigned char ext, + _Bool *last); + +void _oss_pdec_asof(struct ossGlobal *g, unsigned long *count, + int lengthsize, + ULONG_LONG lb, ULONG_LONG ub, unsigned char ext, + _Bool *last); + +void _oss_pdec_asof_ptr(struct ossGlobal *g, void **ptr, + int lengthsize, long itemsize, long prefixsize, + _Bool *last); + +void _oss_pdec_aobjids(struct ossGlobal *g, unsigned short *value, + unsigned short *count, unsigned short array_size); + +void _oss_pdec_aobjidi(struct ossGlobal *g, unsigned int *value, + unsigned short *count, unsigned short array_size); + +void _oss_pdec_aobjidl(struct ossGlobal *g, unsigned long *value, + unsigned short *count, unsigned short array_size); + +void _oss_pdec_aobjids_ptr(struct ossGlobal *g, void **ptr); +void _oss_pdec_aobjidi_ptr(struct ossGlobal *g, void **ptr); +void _oss_pdec_aobjidl_ptr(struct ossGlobal *g, void **ptr); + +void _oss_pdec_uobjids(struct ossGlobal *g, unsigned short **value, + unsigned short *count); +void _oss_pdec_uobjidi(struct ossGlobal *g, unsigned int **value, + unsigned short *count); +void _oss_pdec_uobjidl(struct ossGlobal *g, unsigned long **value, + unsigned short *count); + +void _oss_pdec_link_objids(struct ossGlobal *g, void **ptr); +void _oss_pdec_link_objidi(struct ossGlobal *g, void **ptr); +void _oss_pdec_link_objidl(struct ossGlobal *g, void **ptr); + +void _oss_pdec_ntp_kmstr(struct ossGlobal *g, char **ptr, + ULONG_LONG lb, ULONG_LONG ub, int bits, long index, + _Bool ext); + +void _oss_pdec_nt_kmstr(struct ossGlobal *g, void *ptr, + ULONG_LONG lb, ULONG_LONG ub, int bits, long index, + _Bool ext); + +void _oss_pdec_vap_kmstr(struct ossGlobal *g, void **ptr, int lengthsize, + ULONG_LONG lb, ULONG_LONG ub, int bits, long index, + _Bool ext); + +void _oss_pdec_va_kmstr(struct ossGlobal *g, void *length, char *value, + int lengthsize, + ULONG_LONG lb, ULONG_LONG ub, int bits, long index, + _Bool ext); + +void _oss_pdec_ub_kmstr(struct ossGlobal *g, void *length, char **ptr, + int lengthsize, + ULONG_LONG lb, ULONG_LONG ub, int bits, long index, + _Bool ext); + +void _oss_pdec_bmpstr(struct ossGlobal *g, void *length, unsigned short **ptr, + int lengthsize, + ULONG_LONG lb, ULONG_LONG ub, int bits, long index, + _Bool ext); + +#if INT_MAX == 2147483647 +void _oss_pdec_unistr(struct ossGlobal *g, void *length, int **ptr, + int lengthsize, + ULONG_LONG lb, ULONG_LONG ub, int bits, long index, + _Bool ext); +#else +void _oss_pdec_unistr(struct ossGlobal *g, void *length, long **ptr, + int lengthsize, + ULONG_LONG lb, ULONG_LONG ub, int bits, long index, + _Bool ext); +#endif + +void _oss_pdec_ntp_nkmstr(struct ossGlobal *g, char **ptr); +void _oss_pdec_nt_nkmstr(struct ossGlobal *g, char *value, unsigned long ub); +void _oss_pdec_vap_nkmstr(struct ossGlobal *g, void **ptr, int lengthsize); +void _oss_pdec_va_nkmstr(struct ossGlobal *g, void *length, char *value, + int lengthsize, unsigned long ub); +void _oss_pdec_ub_nkmstr(struct ossGlobal *g, void *length, char **ptr, + int lengthsize); + +void _oss_pdec_pad_kmstr(struct ossGlobal *g, void *ptr, + ULONG_LONG lb, ULONG_LONG ub, int bits, long index, + _Bool ext); + +void _oss_pdec_pad_kmstr_ptr(struct ossGlobal *g, char **ptr, + ULONG_LONG lb, ULONG_LONG ub, int bits, long index, + _Bool ext); + +void _oss_pdec_opentype(struct ossGlobal *g, void *data ); +void _oss_pdec_uany(struct ossGlobal *g, void *data ); + +void _oss_pdec_gtime(struct ossGlobal *g, GeneralizedTime *data); +void _oss_pdec_utime(struct ossGlobal *g, UTCTime *data); + +struct _char_data *_oss_get_char_data(struct ossGlobal *g, + int index); + +void _oss_pdec_unconstr_huge(struct ossGlobal *g, void *data ); + +#endif /* ossper_hdr_file */ |