Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

915 lines
40 KiB

  1. /*****************************************************************************/
  2. /* Copyright (C) 1989-1999 Open Systems Solutions, Inc. All rights reserved.*/
  3. /*****************************************************************************/
  4. /* THIS FILE IS PROPRIETARY MATERIAL OF OPEN SYSTEMS SOLUTIONS, INC.
  5. * AND MAY BE USED ONLY BY DIRECT LICENSEES OF OPEN SYSTEMS SOLUTIONS, INC.
  6. * THIS FILE MAY NOT BE DISTRIBUTED. */
  7. /**************************************************************************/
  8. /*
  9. * FILE: @(#)coderror.h 5.16.1.1 97/10/20
  10. # @(#)errindex.sh 1.5 94/06/22
  11. */
  12. /* FILE: @(#)ossber.hh 5.32 97/06/17 */
  13. /* */
  14. /* function: Define the interfaces to the routines in ossber.a for the */
  15. /* OSS optimized encoder and decoder. */
  16. /* */
  17. /* */
  18. /* changes: */
  19. /* 06/28/90 pet created */
  20. /* */
  21. /**************************************************************************/
  22. #ifndef ossber_hdr_file
  23. #define ossber_hdr_file
  24. #if _MSC_VER > 1000
  25. #pragma once
  26. #endif
  27. #include <setjmp.h>
  28. #include "asn1hdr.h"
  29. #if defined(_MSC_VER) && (defined(_WIN32) || defined(WIN32))
  30. #pragma pack(push, ossPacking, 4)
  31. #elif defined(_MSC_VER) && (defined(_WINDOWS) || defined(_MSDOS))
  32. #pragma pack(1)
  33. #elif defined(__BORLANDC__) && defined(__MSDOS__)
  34. #ifdef _BC31
  35. #pragma option -a-
  36. #else
  37. #pragma option -a1
  38. #endif /* _BC31 */
  39. #elif defined(__BORLANDC__) && defined(__WIN32__)
  40. #pragma option -a4
  41. #elif defined(__IBMC__)
  42. #pragma pack(4)
  43. #elif defined(__WATCOMC__) && defined(__NT__)
  44. #pragma pack(push, 4)
  45. #elif defined(__WATCOMC__) && (defined(__WINDOWS__) || defined(__DOS__))
  46. #pragma pack(push, 1)
  47. #endif /* _MSC_VER && _WIN32 */
  48. #ifdef macintosh
  49. #pragma options align=mac68k
  50. #endif
  51. #define _dstd_parms_def char **_pos, long *_buf_len, long _length
  52. #define _dstd_parms _pos, _buf_len, _length
  53. #define _sdstd_parms_def char **_pos, long *_buf_len
  54. #define _sdstd_parms _pos, _buf_len
  55. #define _std_parms_def char **_pos, long *_max_len, _Bool _userbuf
  56. #define _std_parms _pos, _max_len, _userbuf
  57. #ifndef OSS_BOOL
  58. #define OSS_BOOL
  59. typedef char _Bool;
  60. #endif
  61. #ifdef __cplusplus
  62. extern "C"
  63. {
  64. #endif
  65. /* Entry Points for the Interface Routines */
  66. #ifndef _OSSNOANSI
  67. typedef int (DLL_ENTRY_FPTR *_System _Encode_function)(struct ossGlobal *world, int pdunum,
  68. void *inbuf, char **outbuf, long *outlen,
  69. void *ctl_tbl, unsigned flags,
  70. char errmsg[]);
  71. typedef int (DLL_ENTRY_FPTR *_System _Decode_function)(struct ossGlobal *world, int *pduNum,
  72. char **inbuf, long *inlen, void **outbuf,
  73. long *outlen, void *ctl_tbl, unsigned flags,
  74. char errmsg[]);
  75. typedef int (DLL_ENTRY_FPTR *_System _FreePDU_function)(struct ossGlobal *world, int pdunum,
  76. void *data, void *ctl_tbl);
  77. typedef void (DLL_ENTRY_FPTR *_System _Ossinit_function)(struct ossGlobal *);
  78. #else
  79. typedef int (*_Encode_function)();
  80. typedef int (*_Decode_function)();
  81. typedef int (*_FreePDU_function)();
  82. typedef void (*_Ossinit_function)();
  83. #endif /* _OSSNOANSI */
  84. typedef struct _entry_point_struct_ {
  85. _Ossinit_function _ossinit_function;
  86. _Encode_function _ber_encode_function;
  87. _Decode_function _ber_decode_function;
  88. _FreePDU_function _freePDU_function;
  89. unsigned short int _oss_ber_version_number;
  90. _Encode_function _per_encode_function;
  91. _Decode_function _per_decode_function;
  92. unsigned short int _oss_per_version_number;
  93. unsigned int _oss_pa_count;
  94. struct _char_data *_chars_ptr;
  95. } _entry_point_struct;
  96. /* Error Handling */
  97. /* The index to the error messages. NOTE: The enumerated constants here
  98. must match those in coderror.h. */
  99. enum _err_index {
  100. _no_msg , _small_buffer , _type_not_impl , _pdu_range ,
  101. _bad_argument , _version_mismatch_toed , _version_mismatch_soed ,
  102. _out_stor , _bad_choice , _stor_error , _int_too_long ,
  103. _uint_too_long , _bit_str_comp , _access_serialization ,
  104. _constrainedBy , _singleValue_integer , _singleValue_uinteger ,
  105. _singleValue_real , _singleValue_string , _singleValue_void ,
  106. _valueRange_integer , _valueRange_uinteger , _valueRange_real ,
  107. _sizeConstraint_length , _sizeConstraint_number , _oPA_constraint
  108. , _absence_constraint , _presence_constraint , _openType_error ,
  109. _tableConstraint , _componentRelation , _not_enumerated ,
  110. _null_tbl , _null_fcn , _corrupted_tbl , _neg_uinteger ,
  111. _typeConstraint , _bit_str_too_long , _pdu_range_recursive ,
  112. _enc_oid_too_long , _more_input , _more_output ,
  113. _zero_bytes_requested , _size_too_big , _out_of_memory ,
  114. _invalid_object , _memmgr_undefined_err , _bad_encrules_err ,
  115. _toed_rules_not_impl_err , _unlinked_encrules_err ,
  116. _table_mismatch , _type_not_supported ,
  117. _type_not_supported_decreal , _real_dll_failed ,
  118. _indef_length_not_supported , _cstrain_dll_failed ,
  119. _cmp_dll_failed , _cmp_code_not_linked , _real_code_not_linked ,
  120. _pdv_code_not_linked , _pdv_dll_failed , _oid_dll_failed ,
  121. _type_not_supported_der_toed , _toed_rules_not_supp_err ,
  122. _bad_objid , _bad_pointer , _bad_time , _bad_der_time , _too_long
  123. , _toom_field , _mandatory_field , _zero_length_ANY ,
  124. _zero_length_OpenType , _inval_dec_real , _inval_mixed_real ,
  125. _tag_long_nec , _tag_too_long , _exp_long_nec , _exp_too_long ,
  126. _int_long_nec , _subid_long_nec , _subid_too_long ,
  127. _length_too_long , _size_too_long , _non_std_eoc , _unknown_size
  128. , _inconsis_len , _tag_mismatch , _pdu_mismatch , _extra_bits ,
  129. _inval_enc , _no_dec_dig , _no_exp_dig , _inval_nr1 , _inval_nr2
  130. , _inval_nr3 , _real_long_zero , _undef_enc , _truncate ,
  131. _null_in_nlltrm , _unknown_field , _field_repeat , _field_omit ,
  132. _expec_eoc , _indef_len_prim , _expec_constr_fnd_prim ,
  133. _expec_prim_fnd_constr , _unknown_type , _end_of_input ,
  134. _cannot_happen , _neg_not_allowed , _expect_tag , _more_value ,
  135. _real_too_large , _too_many_subids , _too_many_optional_fields ,
  136. _too_many_ext_additions , _indef_length_der , _hindmost_error
  137. };
  138. /* typedef's for the context information */
  139. typedef enum _context_type {
  140. _boolean_type, _integer_type, _enumerated_type, _real_type,
  141. _bitstring_type, _octetstring_type, _null_type, _sequence_type,
  142. _sequence_of_type, _set_type, _set_of_type, _choice_type,
  143. _charstring_type, _object_identifier_type, _time_type, _any_type,
  144. _opentype
  145. } _Context_Type;
  146. typedef struct _context_id {
  147. char *_element_name;
  148. char *_element_type;
  149. _Context_Type _type;
  150. } _Context_Id;
  151. typedef struct _context_element {
  152. struct _context_element *_parent;
  153. _Context_Id *_id;
  154. long _occurrence;/* For SET OF or SEQUENCE OF */
  155. } _Context_Element;
  156. typedef enum _context_state {
  157. _encoding_tag, _encoding_length, _encoding_data,
  158. _decoding_tag, _decoding_length, _decoding_data
  159. } _Context_State;
  160. typedef struct _context_anchor {
  161. _Context_Element *_last;
  162. int _pdu_number;
  163. _Context_Id *_pdu_id;
  164. _Context_State _state;
  165. } _Context_Anchor;
  166. typedef char _Per_Inverted_Index[128];
  167. extern _Context_Anchor _oss_context_anchor;
  168. /* The error routines */
  169. #ifndef _OSSNOANSI
  170. extern void DLL_ENTRY _oss_enc_error(struct ossGlobal *g, _Bool _jump,
  171. enum _err_index _error_code, long _data);
  172. #else
  173. extern void _oss_enc_error();
  174. #endif /* _OSSNOANSI */
  175. #define _oss_dec_error _oss_enc_error
  176. #ifndef _OSSNOANSI
  177. /* Encode Routines */
  178. extern long DLL_ENTRY _oss_encd_length(struct ossGlobal *g, _std_parms_def,
  179. unsigned long _data);
  180. extern void DLL_ENTRY _oss_enci_length(struct ossGlobal *g, _std_parms_def,
  181. unsigned long _data);
  182. extern long DLL_ENTRY _oss_encd_tag(struct ossGlobal *g, _std_parms_def,
  183. unsigned short _data, _Bool _constructed);
  184. extern void DLL_ENTRY _oss_enci_tag(struct ossGlobal *g, _std_parms_def,
  185. unsigned short _data, _Bool _constructed);
  186. extern long DLL_ENTRY _oss_encd_bool(struct ossGlobal *g, _std_parms_def,
  187. ossBoolean _data);
  188. extern void DLL_ENTRY _oss_enci_bool(struct ossGlobal *g, _std_parms_def,
  189. ossBoolean _data);
  190. extern long DLL_ENTRY _oss_encd_int(struct ossGlobal *g, _std_parms_def,
  191. LONG_LONG _data);
  192. extern void DLL_ENTRY _oss_enci_int(struct ossGlobal *g, _std_parms_def,
  193. LONG_LONG _data);
  194. extern long DLL_ENTRY _oss_encd_uint(struct ossGlobal *g, _std_parms_def,
  195. ULONG_LONG _data);
  196. extern void DLL_ENTRY _oss_enci_uint(struct ossGlobal *g, _std_parms_def,
  197. ULONG_LONG _data);
  198. extern long DLL_ENTRY _oss_encd_huge_int(struct ossGlobal *g, _std_parms_def,
  199. void *_data);
  200. extern long DLL_ENTRY _oss_encd_uhuge_int(struct ossGlobal *g, _std_parms_def,
  201. void *_data);
  202. extern long DLL_ENTRY _oss_encd_real(struct ossGlobal *g, _std_parms_def,
  203. double _data);
  204. extern long DLL_ENTRY _oss_encd_creal(struct ossGlobal *g, _std_parms_def,
  205. char *_data);
  206. extern long DLL_ENTRY _oss_encd_mreal(struct ossGlobal *g, _std_parms_def,
  207. MixedReal *_data);
  208. extern void DLL_ENTRY _oss_enci_real(struct ossGlobal *g, _std_parms_def,
  209. double _data);
  210. extern void DLL_ENTRY _oss_enci_creal(struct ossGlobal *g, _std_parms_def,
  211. char *_data);
  212. extern void DLL_ENTRY _oss_enci_mreal(struct ossGlobal *g, _std_parms_def,
  213. MixedReal *_data);
  214. extern long DLL_ENTRY _oss_encd_alobjid(struct ossGlobal *g, _std_parms_def,
  215. void *_data, short _array_size);
  216. extern long DLL_ENTRY _oss_encd_asobjid(struct ossGlobal *g, _std_parms_def,
  217. void *_data, short _array_size);
  218. extern long DLL_ENTRY _oss_encd_aiobjid(struct ossGlobal *g, _std_parms_def,
  219. void *_data, short _array_size);
  220. extern void DLL_ENTRY _oss_enci_alobjid(struct ossGlobal *g, _std_parms_def,
  221. void *_data, short _array_size);
  222. extern void DLL_ENTRY _oss_enci_asobjid(struct ossGlobal *g, _std_parms_def,
  223. void *_data, short _array_size);
  224. extern void DLL_ENTRY _oss_enci_aiobjid(struct ossGlobal *g, _std_parms_def,
  225. void *_data, short _array_size);
  226. extern long DLL_ENTRY _oss_encd_llobjid(struct ossGlobal *g, _std_parms_def,
  227. void *_data, long _size_c);
  228. extern long DLL_ENTRY _oss_encd_lsobjid(struct ossGlobal *g, _std_parms_def,
  229. void *_data, long _size_c);
  230. extern long DLL_ENTRY _oss_encd_liobjid(struct ossGlobal *g, _std_parms_def,
  231. void *_data, long _size_c);
  232. extern void DLL_ENTRY _oss_enci_llobjid(struct ossGlobal *g, _std_parms_def,
  233. void *_data, long _size_c);
  234. extern void DLL_ENTRY _oss_enci_lsobjid(struct ossGlobal *g, _std_parms_def,
  235. void *_data, long _size_c);
  236. extern void DLL_ENTRY _oss_enci_liobjid(struct ossGlobal *g, _std_parms_def,
  237. void *_data, long _size_c);
  238. extern long DLL_ENTRY _oss_encd_ulobjid(struct ossGlobal *g, _std_parms_def,
  239. void *_data, long _size_c);
  240. extern long DLL_ENTRY _oss_encd_usobjid(struct ossGlobal *g, _std_parms_def,
  241. void *_data, long _size_c);
  242. extern long DLL_ENTRY _oss_encd_uiobjid(struct ossGlobal *g, _std_parms_def,
  243. void *_data, long _size_c);
  244. extern void DLL_ENTRY _oss_enci_ulobjid(struct ossGlobal *g, _std_parms_def,
  245. void *_data, long _size_c);
  246. extern void DLL_ENTRY _oss_enci_usobjid(struct ossGlobal *g, _std_parms_def,
  247. void *_data, long _size_c);
  248. extern void DLL_ENTRY _oss_enci_uiobjid(struct ossGlobal *g, _std_parms_def,
  249. void *_data, long _size_c);
  250. extern long DLL_ENTRY _oss_encd_pbit(struct ossGlobal *g, _std_parms_def,
  251. void *_data, long _bit_count);
  252. extern void DLL_ENTRY _oss_enci_pbit(struct ossGlobal *g, _std_parms_def,
  253. void *_data, long _bit_count);
  254. extern long DLL_ENTRY _oss_encd_ubit(struct ossGlobal *g, _std_parms_def,
  255. void *_data, char _lengthsize, long _size_c);
  256. extern void DLL_ENTRY _oss_enci_ubit(struct ossGlobal *g, _std_parms_def,
  257. void *_data, char _lengthsize, long _size_c);
  258. extern long DLL_ENTRY _oss_encd_vbit(struct ossGlobal *g, _std_parms_def,
  259. void *_data, long _array_size,
  260. char _lengthsize);
  261. extern void DLL_ENTRY _oss_enci_vbit(struct ossGlobal *g, _std_parms_def,
  262. void *_data, long _array_size,
  263. char _lengthsize);
  264. extern long DLL_ENTRY _oss_encd_nstr(struct ossGlobal *g, _std_parms_def,
  265. char *_data, long _size_c);
  266. extern void DLL_ENTRY _oss_enci_nstr(struct ossGlobal *g, _std_parms_def,
  267. char *_data, long _size_c);
  268. extern long DLL_ENTRY _oss_encd_pstr(struct ossGlobal *g, _std_parms_def,
  269. char *_data, long _byte_count);
  270. extern void DLL_ENTRY _oss_enci_pstr(struct ossGlobal *g, _std_parms_def,
  271. char *_data, long _byte_count);
  272. extern long DLL_ENTRY _oss_encd_ustr(struct ossGlobal *g, _std_parms_def,
  273. void *_data, char _lengthsize, long _size_c);
  274. extern void DLL_ENTRY _oss_enci_ustr(struct ossGlobal *g, _std_parms_def,
  275. void *_data, char _lengthsize, long _size_c);
  276. extern long DLL_ENTRY _oss_encd_vstr(struct ossGlobal *g, _std_parms_def,
  277. void *_data, char _lengthsize, long _size_c);
  278. extern void DLL_ENTRY _oss_enci_vstr(struct ossGlobal *g, _std_parms_def,
  279. void *_data, char _lengthsize, long _size_c);
  280. extern long DLL_ENTRY _oss_encd_uoct(struct ossGlobal *g, _std_parms_def,
  281. void *_data, char _lengthsize, long _size_c);
  282. extern void DLL_ENTRY _oss_enci_uoct(struct ossGlobal *g, _std_parms_def,
  283. void *_data, char _lengthsize, long _size_c);
  284. extern long DLL_ENTRY _oss_encd_voct(struct ossGlobal *g, _std_parms_def,
  285. void *_data, char _lengthsize, long _size_c);
  286. extern void DLL_ENTRY _oss_enci_voct(struct ossGlobal *g, _std_parms_def,
  287. void *_data, char _lengthsize, long _size_c);
  288. extern long DLL_ENTRY _oss_encd_gtime(struct ossGlobal *g, _std_parms_def,
  289. GeneralizedTime*_data);
  290. extern void DLL_ENTRY _oss_enci_gtime(struct ossGlobal *g, _std_parms_def,
  291. GeneralizedTime *_data);
  292. extern long DLL_ENTRY _oss_encd_utime(struct ossGlobal *g, _std_parms_def,
  293. UTCTime *_data);
  294. extern void DLL_ENTRY _oss_enci_utime(struct ossGlobal *g, _std_parms_def,
  295. UTCTime *_data);
  296. extern long DLL_ENTRY _oss_encd_uany(struct ossGlobal *g, _std_parms_def,
  297. void *_data);
  298. extern void DLL_ENTRY _oss_enci_uany(struct ossGlobal *g, _std_parms_def,
  299. void *_data);
  300. extern long DLL_ENTRY _oss_encd_opentype(struct ossGlobal *g, _std_parms_def,
  301. void *_data);
  302. extern void DLL_ENTRY _oss_enci_opentype(struct ossGlobal *g, _std_parms_def,
  303. void *_data);
  304. extern long DLL_ENTRY _oss_encd_bmpstr(struct ossGlobal *g, _std_parms_def,
  305. void *data, char lengthsize,
  306. long size_c);
  307. extern long DLL_ENTRY _oss_enci_bmpstr(struct ossGlobal *g, _std_parms_def,
  308. void *data, char lengthsize,
  309. long size_c);
  310. extern long DLL_ENTRY _oss_encd_unistr(struct ossGlobal *g, _std_parms_def,
  311. void *data, char lengthsize,
  312. long size_c);
  313. extern long DLL_ENTRY _oss_enci_unistr(struct ossGlobal *g, _std_parms_def,
  314. void *data, char lengthsize,
  315. long size_c);
  316. extern long DLL_ENTRY _oss_encd_eobjid(struct ossGlobal *g, _std_parms_def,
  317. void *data, long size_c);
  318. extern long DLL_ENTRY _oss_encd_dubit(struct ossGlobal *g, _std_parms_def,
  319. void *data, char lengthsize, long size_c, _Bool named_bits);
  320. extern long DLL_ENTRY _oss_encd_dvbit(struct ossGlobal *g, _std_parms_def,
  321. void *data, long array_size,
  322. char lengthsize, _Bool named_bits);
  323. /* Decode Routines */
  324. /* these return values */
  325. extern void DLL_ENTRY _oss_dec_tag(struct ossGlobal *g, _sdstd_parms_def,
  326. unsigned short *tag, _Bool *con);
  327. extern long DLL_ENTRY _oss_dec_length(struct ossGlobal *g, _sdstd_parms_def);
  328. extern ossBoolean DLL_ENTRY _oss_dec_bool(struct ossGlobal *g, _dstd_parms_def);
  329. extern LONG_LONG DLL_ENTRY _oss_dec_llint(struct ossGlobal *g, _dstd_parms_def);
  330. extern long DLL_ENTRY _oss_dec_lint(struct ossGlobal *g, _dstd_parms_def);
  331. extern int DLL_ENTRY _oss_dec_iint(struct ossGlobal *g, _dstd_parms_def);
  332. extern short DLL_ENTRY _oss_dec_sint(struct ossGlobal *g, _dstd_parms_def);
  333. extern void DLL_ENTRY _oss_dec_hint(struct ossGlobal *g, _dstd_parms_def,
  334. _Bool userbuf, void *data);
  335. extern ULONG_LONG DLL_ENTRY _oss_dec_ullint(struct ossGlobal *g, _dstd_parms_def);
  336. extern unsigned long DLL_ENTRY _oss_dec_ulint(struct ossGlobal *g, _dstd_parms_def);
  337. extern unsigned int DLL_ENTRY _oss_dec_uiint(struct ossGlobal *g, _dstd_parms_def);
  338. extern unsigned short DLL_ENTRY _oss_dec_usint(struct ossGlobal *g, _dstd_parms_def);
  339. /* The code for this one is so huge that it would be criminal to
  340. * repeat it three times. Caller should cast the returned value
  341. * to what she wants.
  342. */
  343. extern void DLL_ENTRY _oss_dec_real(struct ossGlobal *g, _dstd_parms_def,
  344. double *data);
  345. extern void DLL_ENTRY _oss_dec_freal(struct ossGlobal *g, _dstd_parms_def,
  346. float *data);
  347. extern void DLL_ENTRY _oss_dec_creal(struct ossGlobal *g, _dstd_parms_def,
  348. _Bool _userbuf, char **_data);
  349. extern void DLL_ENTRY _oss_dec_mreal(struct ossGlobal *g, _dstd_parms_def,
  350. _Bool _userbuf, MixedReal *_data);
  351. /* Two versions of these functions. If the type has the pointer
  352. * directive, then its size is not fixed--the function will allocate
  353. * the memory. Otherwise the caller allocates the memory. (Actually,
  354. * the type will probably be enclosed in another type, and therefore
  355. * the memory has already been allocated.)
  356. */
  357. extern void DLL_ENTRY _oss_dec_alobjid_ptr(struct ossGlobal *g, _dstd_parms_def,
  358. _Bool _userbuf, void **_data,
  359. short _array_size);
  360. extern void DLL_ENTRY _oss_dec_alobjid(struct ossGlobal *g, _dstd_parms_def,
  361. void *_data, short _array_size);
  362. extern void DLL_ENTRY _oss_dec_aiobjid_ptr(struct ossGlobal *g, _dstd_parms_def,
  363. _Bool _userbuf, void **_data,
  364. short _array_size);
  365. extern void DLL_ENTRY _oss_dec_aiobjid(struct ossGlobal *g, _dstd_parms_def,
  366. void *_data, short _array_size);
  367. extern void DLL_ENTRY _oss_dec_asobjid_ptr(struct ossGlobal *g, _dstd_parms_def,
  368. _Bool _userbuf, void **_data,
  369. short _array_size);
  370. extern void DLL_ENTRY _oss_dec_asobjid(struct ossGlobal *g, _dstd_parms_def,
  371. void *_data, short _array_size);
  372. /* These allocate all their own memory. */
  373. extern void DLL_ENTRY _oss_dec_llobjid(struct ossGlobal *g, _dstd_parms_def,
  374. _Bool _userbuf, void **_data, long _size_c);
  375. extern void DLL_ENTRY _oss_dec_liobjid(struct ossGlobal *g, _dstd_parms_def,
  376. _Bool _userbuf, void **_data, long _size_c);
  377. extern void DLL_ENTRY _oss_dec_lsobjid(struct ossGlobal *g, _dstd_parms_def,
  378. _Bool _userbuf, void **_data, long _size_c);
  379. /* These are passed the structure containing the count, but allocate
  380. * space for the data itself. */
  381. extern void DLL_ENTRY _oss_dec_ulobjid(struct ossGlobal *g, _dstd_parms_def,
  382. _Bool _userbuf, void *_data, short _size_c);
  383. extern void DLL_ENTRY _oss_dec_uiobjid(struct ossGlobal *g, _dstd_parms_def,
  384. _Bool _userbuf, void *_data, short _size_c);
  385. extern void DLL_ENTRY _oss_dec_usobjid(struct ossGlobal *g, _dstd_parms_def,
  386. _Bool _userbuf, void *_data, short _size_c);
  387. /* Caller allocates memory for this one. Call for both e_pad & e_big_pad. */
  388. extern void DLL_ENTRY _oss_dec_pbit(struct ossGlobal *g, _dstd_parms_def,
  389. void *_data, unsigned long _bit_count,
  390. _Bool _cons, _Bool _named_bits);
  391. /* See comment before dec_ulobjid. */
  392. extern void DLL_ENTRY _oss_dec_ubit(struct ossGlobal *g, _dstd_parms_def,
  393. _Bool _userbuf, void *_data,
  394. char _lengthsize, long _size_c, _Bool _cons);
  395. /* Two versions of this one too. */
  396. extern void DLL_ENTRY _oss_dec_vbit_ptr(struct ossGlobal *g, _dstd_parms_def,
  397. _Bool _userbuf, void **_data,
  398. long _array_size, char _lengthsize,
  399. _Bool _cons);
  400. extern void DLL_ENTRY _oss_dec_vbit(struct ossGlobal *g, _dstd_parms_def,
  401. void *_data, long _array_size,
  402. char _lengthsize, _Bool _cons);
  403. extern void DLL_ENTRY _oss_dec_nstr_ptr(struct ossGlobal *g, _dstd_parms_def,
  404. _Bool _userbuf, char **_data, long _size_c,
  405. _Bool _cons);
  406. extern void DLL_ENTRY _oss_dec_nstr(struct ossGlobal *g, _dstd_parms_def,
  407. char *_data, long _size_c, _Bool _cons);
  408. extern void DLL_ENTRY _oss_dec_pstr(struct ossGlobal *g, _dstd_parms_def,
  409. char *_data, long _byte_count, _Bool _cons);
  410. extern void DLL_ENTRY _oss_dec_ustr(struct ossGlobal *g, _dstd_parms_def,
  411. _Bool _userbuf, void *_data,
  412. char _lengthsize, long _size_c, _Bool _cons);
  413. extern void DLL_ENTRY _oss_dec_vstr_ptr(struct ossGlobal *g, _dstd_parms_def,
  414. _Bool _userbuf, void **_data,
  415. char _lengthsize, long _size_c, _Bool _cons);
  416. extern void DLL_ENTRY _oss_dec_vstr(struct ossGlobal *g, _dstd_parms_def,
  417. void *_data, char _lengthsize, long _array_size,
  418. _Bool _cons);
  419. extern void DLL_ENTRY _oss_dec_uoct(struct ossGlobal *g, _dstd_parms_def,
  420. _Bool _userbuf, void *_data,
  421. char _lengthsize, long _size_c, _Bool _cons);
  422. extern void DLL_ENTRY _oss_dec_voct_ptr(struct ossGlobal *g, _dstd_parms_def,
  423. _Bool _userbuf, void **_data,
  424. char _lengthsize, long _size_c, _Bool _cons);
  425. extern void DLL_ENTRY _oss_dec_voct(struct ossGlobal *g, _dstd_parms_def,
  426. void *_data, char _lengthsize, long _array_size,
  427. _Bool _cons);
  428. extern void DLL_ENTRY _oss_dec_gtime(struct ossGlobal *g, _dstd_parms_def,
  429. GeneralizedTime *_data);
  430. extern void DLL_ENTRY _oss_dec_utime(struct ossGlobal *g, _dstd_parms_def,
  431. UTCTime *_data);
  432. extern void DLL_ENTRY _oss_dec_uany(struct ossGlobal *g, _dstd_parms_def,
  433. _Bool _userbuf, void *_data);
  434. extern void DLL_ENTRY _oss_dec_opentype(struct ossGlobal *g, _dstd_parms_def,
  435. _Bool _userbuf, void *_data);
  436. extern void DLL_ENTRY _oss_dec_bmpstr(struct ossGlobal *g, _dstd_parms_def,
  437. _Bool userbuf, void *data,
  438. char lengthsize, long size_c, _Bool cons);
  439. extern void DLL_ENTRY _oss_dec_unistr(struct ossGlobal *g, _dstd_parms_def,
  440. _Bool userbuf, void *data,
  441. char lengthsize, long size_c, _Bool cons);
  442. extern void DLL_ENTRY _oss_dec_eobjid(struct ossGlobal *g, _dstd_parms_def,
  443. _Bool userbuf, void *data,
  444. long size_c);
  445. /* Other functions */
  446. /* called to count the items for set of or sequence of. */
  447. extern long DLL_ENTRY _oss_count_setof_items(struct ossGlobal *g, _dstd_parms_def);
  448. /* called to skip past items for the EXTENSIBLE directive */
  449. extern void _oss_skip_past_item(struct ossGlobal *g, _dstd_parms_def);
  450. extern void DLL_ENTRY _oss_beginBlock(struct ossGlobal *g, long count,
  451. char **pos, long *max_len);
  452. extern void DLL_ENTRY _oss_nextItem(struct ossGlobal *g, long *max_len);
  453. extern void DLL_ENTRY _oss_endBlock(struct ossGlobal *g, char ** pos, long *max_len,
  454. unsigned char ct);
  455. /* called to perform limited check for default value */
  456. extern _Bool DLL_ENTRY _oss_not_dflt(struct ossGlobal *g, void *data, void *dflt,
  457. long totalsize, long max_length, int kind);
  458. #else
  459. /* Encode Routines */
  460. extern long _oss_encd_length();
  461. extern void _oss_enci_length();
  462. extern long _oss_encd_tag();
  463. extern void _oss_enci_tag();
  464. extern long _oss_encd_bool();
  465. extern void _oss_enci_bool();
  466. extern long _oss_encd_int();
  467. extern void _oss_enci_int();
  468. extern long _oss_encd_uint();
  469. extern void _oss_enci_uint();
  470. extern void _oss_encd_huge_int();
  471. extern void _oss_encd_uhuge_int();
  472. extern long _oss_encd_real();
  473. extern void _oss_enci_real();
  474. extern long _oss_encd_alobjid();
  475. extern long _oss_encd_asobjid();
  476. extern long _oss_encd_aiobjid();
  477. extern void _oss_enci_alobjid();
  478. extern void _oss_enci_asobjid();
  479. extern void _oss_enci_aiobjid();
  480. extern long _oss_encd_llobjid();
  481. extern long _oss_encd_lsobjid();
  482. extern long _oss_encd_liobjid();
  483. extern void _oss_enci_llobjid();
  484. extern void _oss_enci_lsobjid();
  485. extern void _oss_enci_liobjid();
  486. extern long _oss_encd_ulobjid();
  487. extern long _oss_encd_usobjid();
  488. extern long _oss_encd_uiobjid();
  489. extern void _oss_enci_ulobjid();
  490. extern void _oss_enci_usobjid();
  491. extern void _oss_enci_uiobjid();
  492. extern long _oss_encd_eobjid();
  493. extern long _oss_encd_pbit();
  494. extern void _oss_enci_pbit();
  495. extern long _oss_encd_ubit();
  496. extern void _oss_enci_ubit();
  497. extern long _oss_encd_vbit();
  498. extern void _oss_enci_vbit();
  499. extern long _oss_encd_nstr();
  500. extern void _oss_enci_nstr();
  501. extern long _oss_encd_pstr();
  502. extern void _oss_enci_pstr();
  503. extern long _oss_encd_ustr();
  504. extern void _oss_enci_ustr();
  505. extern long _oss_encd_vstr();
  506. extern void _oss_enci_vstr();
  507. extern long _oss_encd_uoct();
  508. extern void _oss_enci_uoct();
  509. extern long _oss_encd_voct();
  510. extern void _oss_enci_voct();
  511. extern long _oss_encd_gtime();
  512. extern void _oss_enci_gtime();
  513. extern long _oss_encd_utime();
  514. extern void _oss_enci_utime();
  515. extern long _oss_encd_uany();
  516. extern void _oss_enci_uany();
  517. extern long _oss_encd_opentype();
  518. extern void _oss_enci_opentype();
  519. extern long _oss_encd_bmpstr();
  520. extern long _oss_enci_bmpstr();
  521. extern long _oss_encd_unistr();
  522. extern long _oss_enci_unistr();
  523. /* Decode Routines */
  524. /* these return values */
  525. extern void _oss_dec_tag();
  526. extern long _oss_dec_length();
  527. extern ossBoolean _oss_dec_bool();
  528. extern long _oss_dec_lint();
  529. extern int _oss_dec_iint();
  530. extern short _oss_dec_sint();
  531. extern void _oss_dec_hint();
  532. extern unsigned long _oss_dec_ulint();
  533. extern unsigned int _oss_dec_uiint();
  534. extern unsigned short _oss_dec_usint();
  535. /* The code for this one is so huge that it would be criminal to
  536. * repeat it three times. Caller should cast the returned value
  537. * to what she wants.
  538. */
  539. extern double _oss_dec_real();
  540. /* Two versions of these functions. If the type has the pointer
  541. * directive, then its size is not fixed--the function will allocate
  542. * the memory. Otherwise the caller allocates the memory. (Actually,
  543. * the type will probably be enclosed in another type, and therefore
  544. * the memory has already been allocated.)
  545. */
  546. extern void _oss_dec_alobjid_ptr();
  547. extern void _oss_dec_alobjid();
  548. extern void _oss_dec_aiobjid_ptr();
  549. extern void _oss_dec_aiobjid();
  550. extern void _oss_dec_asobjid_ptr();
  551. extern void _oss_dec_asobjid();
  552. /* These allocate all their own memory. */
  553. extern void _oss_dec_llobjid();
  554. extern void _oss_dec_liobjid();
  555. extern void _oss_dec_lsobjid();
  556. /* These are passed the structure containing the count, but allocate
  557. * space for the data itself. */
  558. extern void _oss_dec_ulobjid();
  559. extern void _oss_dec_uiobjid();
  560. extern void _oss_dec_usobjid();
  561. /* Caller allocates memory for this one. Call for both e_pad & e_big_pad. */
  562. extern void _oss_dec_pbit();
  563. /* See comment before dec_ulobjid. */
  564. extern void _oss_dec_ubit();
  565. /* Two versions of this one too. */
  566. extern void _oss_dec_vbit_ptr();
  567. extern void _oss_dec_vbit();
  568. extern void _oss_dec_nstr_ptr();
  569. extern void _oss_dec_nstr();
  570. extern void _oss_dec_pstr();
  571. extern void _oss_dec_ustr();
  572. extern void _oss_dec_vstr_ptr();
  573. extern void _oss_dec_vstr();
  574. extern void _oss_dec_uoct();
  575. extern void _oss_dec_voct_ptr();
  576. extern void _oss_dec_voct();
  577. extern void _oss_dec_gtime();
  578. extern void _oss_dec_utime();
  579. extern void _oss_dec_uany();
  580. extern void _oss_dec_opentype();
  581. extern void _oss_dec_bmpstr();
  582. extern void _oss_dec_unistr();
  583. extern void _oss_dec_eobjid();
  584. /* Other functions */
  585. /* called to count the items for set of or sequence of. */
  586. extern long _oss_count_setof_items();
  587. /* called to skip past items for the EXTENSIBLE directive */
  588. extern void _oss_skip_past_item();
  589. /* called to perform limited check for default value */
  590. extern _Bool _oss_not_dflt();
  591. #endif /* _OSSNOANSI */
  592. typedef struct _EncDecGlobals {
  593. jmp_buf *_oss_err_env;
  594. #ifndef _OSSNOANSI
  595. void (*_old_sigsegv)(int);
  596. void (*_old_sigbus)(int);
  597. #else
  598. void (*_old_sigsegv)();
  599. void (*_old_sigbus)();
  600. #endif
  601. int _oss_asn1err;
  602. char *_oss_err_msg;
  603. _Bool _buffer_provided;
  604. _Bool _tag_decoded;
  605. _Bool _restrain_mode;
  606. long _restrain_size;
  607. _Context_Anchor _oss_context_anchor;
  608. char *_oss_outbufpos;
  609. long _oss_outbuflen;
  610. _mem_array _oss_mem;
  611. _mem_array *_oss_mem_tail;
  612. _mem_array *_oss_temp_tail;
  613. _mem_array _oss_temp_mem;
  614. long _oss_mem_alloc;
  615. long _oss_out_alloc;
  616. unsigned int relax_ber: 1;
  617. unsigned int der: 1;
  618. unsigned char man[sizeof(double)];
  619. #if defined(_WINDOWS) || defined(_DLL) || defined(OS2_DLL)
  620. void (DLL_ENTRY_FPTR *_System _oss_enc_error)(struct ossGlobal *g,
  621. _Bool _jump, enum _err_index _error_code, long _data);
  622. #endif /* _WINDOWS || _DLL || OS2_DLL */
  623. _Bool _aligned;
  624. int _bitpos;
  625. struct ossGlobal *_prev;
  626. char *_oss_inbufpos;
  627. long _oss_inbuflen;
  628. void *_prevbuf;
  629. long encoding_length;
  630. void *_blockptr;
  631. struct ossGlobal *_next;
  632. FILE *asn1outSaved;
  633. int (*asn1prntSaved)(FILE *stream, const char *format, ...);
  634. } _EncDecGlobals;
  635. #ifdef __cplusplus
  636. }
  637. #endif
  638. #if defined(_MSC_VER) && (defined(_WIN32) || defined(WIN32))
  639. #pragma pack(pop, ossPacking)
  640. #elif defined(_MSC_VER) && (defined(_WINDOWS) || defined(_MSDOS))
  641. #pragma pack()
  642. #elif defined(__BORLANDC__) && (defined(__WIN32__) || defined(__MSDOS__))
  643. #pragma option -a.
  644. #elif defined(__IBMC__)
  645. #pragma pack()
  646. #elif defined(__WATCOMC__)
  647. #pragma pack(pop)
  648. #endif /* _MSC_VER && _WIN32 */
  649. #ifdef macintosh
  650. #pragma options align=reset
  651. #endif
  652. /*
  653. * The following macros must be #defined if you compile the ASN.1
  654. * compiler generated files (.c files) and link-edit with the import
  655. * library ossapit.lib, i.e the OSS DLLs ossapit.dll, apit.dll,
  656. * and toedber.dll/toedper.dll are used. The following must not
  657. * be #defined if you link-edit with the static library toedcode.lib.
  658. */
  659. #if defined(_DLL) || defined(OS2_DLL) ||\
  660. (defined(_WINDOWS) && !defined(_WIN32))
  661. #define _oss_count_setof_items (*_g->ft.berTbl->_oss_count_setof_itemsp)
  662. #define _oss_dec_aiobjid (*_g->ft.berTbl->_oss_dec_aiobjidp)
  663. #define _oss_dec_aiobjid_ptr (*_g->ft.berTbl->_oss_dec_aiobjid_ptrp)
  664. #define _oss_dec_alobjid (*_g->ft.berTbl->_oss_dec_alobjidp)
  665. #define _oss_dec_alobjid_ptr (*_g->ft.berTbl->_oss_dec_alobjid_ptrp)
  666. #define _oss_dec_asobjid (*_g->ft.berTbl->_oss_dec_asobjidp)
  667. #define _oss_dec_asobjid_ptr (*_g->ft.berTbl->_oss_dec_asobjid_ptrp)
  668. #define _oss_dec_bool (*_g->ft.berTbl->_oss_dec_boolp)
  669. #define _oss_dec_creal (*_g->ft.berTbl->_oss_dec_crealp)
  670. #define _oss_dec_freal (*_g->ft.berTbl->_oss_dec_frealp)
  671. #define _oss_dec_getmem (*_g->ft.apiTbl->_oss_dec_getmemp)
  672. #define _oss_dec_gtime (*_g->ft.berTbl->_oss_dec_gtimep)
  673. #define _oss_dec_hint (*_g->ft.berTbl->_oss_dec_hintp)
  674. #define _oss_dec_iint (*_g->ft.berTbl->_oss_dec_iintp)
  675. #define _oss_dec_length (*_g->ft.berTbl->_oss_dec_lengthp)
  676. #define _oss_dec_lint (*_g->ft.berTbl->_oss_dec_lintp)
  677. #define _oss_dec_liobjid (*_g->ft.berTbl->_oss_dec_liobjidp)
  678. #define _oss_dec_llint (*_g->ft.berTbl->_oss_dec_llintp)
  679. #define _oss_dec_llobjid (*_g->ft.berTbl->_oss_dec_llobjidp)
  680. #define _oss_dec_lsobjid (*_g->ft.berTbl->_oss_dec_lsobjidp)
  681. #define _oss_dec_mreal (*_g->ft.berTbl->_oss_dec_mrealp)
  682. #define _oss_dec_nstr (*_g->ft.berTbl->_oss_dec_nstrp)
  683. #define _oss_dec_nstr_ptr (*_g->ft.berTbl->_oss_dec_nstr_ptrp)
  684. #define _oss_dec_opentype (*_g->ft.berTbl->_oss_dec_opentypep)
  685. #define _oss_dec_pbit (*_g->ft.berTbl->_oss_dec_pbitp)
  686. #define _oss_dec_pstr (*_g->ft.berTbl->_oss_dec_pstrp)
  687. #define _oss_dec_real (*_g->ft.berTbl->_oss_dec_realp)
  688. #define _oss_dec_sint (*_g->ft.berTbl->_oss_dec_sintp)
  689. #define _oss_dec_tag (*_g->ft.berTbl->_oss_dec_tagp)
  690. #define _oss_dec_uany (*_g->ft.berTbl->_oss_dec_uanyp)
  691. #define _oss_dec_ubit (*_g->ft.berTbl->_oss_dec_ubitp)
  692. #define _oss_dec_uiint (*_g->ft.berTbl->_oss_dec_uiintp)
  693. #define _oss_dec_uiobjid (*_g->ft.berTbl->_oss_dec_uiobjidp)
  694. #define _oss_dec_ulint (*_g->ft.berTbl->_oss_dec_ulintp)
  695. #define _oss_dec_ullint (*_g->ft.berTbl->_oss_dec_ullintp)
  696. #define _oss_dec_ulobjid (*_g->ft.berTbl->_oss_dec_ulobjidp)
  697. #define _oss_dec_uoct (*_g->ft.berTbl->_oss_dec_uoctp)
  698. #define _oss_dec_usint (*_g->ft.berTbl->_oss_dec_usintp)
  699. #define _oss_dec_usobjid (*_g->ft.berTbl->_oss_dec_usobjidp)
  700. #define _oss_dec_ustr (*_g->ft.berTbl->_oss_dec_ustrp)
  701. #define _oss_dec_utime (*_g->ft.berTbl->_oss_dec_utimep)
  702. #define _oss_dec_vbit (*_g->ft.berTbl->_oss_dec_vbitp)
  703. #define _oss_dec_vbit_ptr (*_g->ft.berTbl->_oss_dec_vbit_ptrp)
  704. #define _oss_dec_voct (*_g->ft.berTbl->_oss_dec_voctp)
  705. #define _oss_dec_voct_ptr (*_g->ft.berTbl->_oss_dec_voct_ptrp)
  706. #define _oss_dec_vstr (*_g->ft.berTbl->_oss_dec_vstrp)
  707. #define _oss_dec_vstr_ptr (*_g->ft.berTbl->_oss_dec_vstr_ptrp)
  708. #define _oss_enc_error (*_g->ft.berTbl->_oss_enc_errorp)
  709. #define _oss_enc_pop (*_g->ft.apiTbl->_oss_enc_popp)
  710. #define _oss_enc_push (*_g->ft.apiTbl->_oss_enc_pushp)
  711. #define _oss_encd_aiobjid (*_g->ft.berTbl->_oss_encd_aiobjidp)
  712. #define _oss_encd_alobjid (*_g->ft.berTbl->_oss_encd_alobjidp)
  713. #define _oss_encd_asobjid (*_g->ft.berTbl->_oss_encd_asobjidp)
  714. #define _oss_encd_bool (*_g->ft.berTbl->_oss_encd_boolp)
  715. #define _oss_encd_creal (*_g->ft.berTbl->_oss_encd_crealp)
  716. #define _oss_encd_gtime (*_g->ft.berTbl->_oss_encd_gtimep)
  717. #define _oss_encd_huge_int (*_g->ft.berTbl->_oss_encd_huge_intp)
  718. #define _oss_encd_uhuge_int (*_g->ft.berTbl->_oss_encd_uhuge_intp)
  719. #define _oss_encd_int (*_g->ft.berTbl->_oss_encd_intp)
  720. #define _oss_encd_length (*_g->ft.berTbl->_oss_encd_lengthp)
  721. #define _oss_encd_liobjid (*_g->ft.berTbl->_oss_encd_liobjidp)
  722. #define _oss_encd_llobjid (*_g->ft.berTbl->_oss_encd_llobjidp)
  723. #define _oss_encd_lsobjid (*_g->ft.berTbl->_oss_encd_lsobjidp)
  724. #define _oss_encd_mreal (*_g->ft.berTbl->_oss_encd_mrealp)
  725. #define _oss_encd_nstr (*_g->ft.berTbl->_oss_encd_nstrp)
  726. #define _oss_encd_opentype (*_g->ft.berTbl->_oss_encd_opentypep)
  727. #define _oss_encd_pbit (*_g->ft.berTbl->_oss_encd_pbitp)
  728. #define _oss_encd_pstr (*_g->ft.berTbl->_oss_encd_pstrp)
  729. #define _oss_encd_real (*_g->ft.berTbl->_oss_encd_realp)
  730. #define _oss_encd_tag (*_g->ft.berTbl->_oss_encd_tagp)
  731. #define _oss_encd_uany (*_g->ft.berTbl->_oss_encd_uanyp)
  732. #define _oss_encd_ubit (*_g->ft.berTbl->_oss_encd_ubitp)
  733. #define _oss_encd_uint (*_g->ft.berTbl->_oss_encd_uintp)
  734. #define _oss_encd_uiobjid (*_g->ft.berTbl->_oss_encd_uiobjidp)
  735. #define _oss_encd_ulobjid (*_g->ft.berTbl->_oss_encd_ulobjidp)
  736. #define _oss_encd_uoct (*_g->ft.berTbl->_oss_encd_uoctp)
  737. #define _oss_encd_usobjid (*_g->ft.berTbl->_oss_encd_usobjidp)
  738. #define _oss_encd_ustr (*_g->ft.berTbl->_oss_encd_ustrp)
  739. #define _oss_encd_utime (*_g->ft.berTbl->_oss_encd_utimep)
  740. #define _oss_encd_vbit (*_g->ft.berTbl->_oss_encd_vbitp)
  741. #define _oss_encd_voct (*_g->ft.berTbl->_oss_encd_voctp)
  742. #define _oss_encd_vstr (*_g->ft.berTbl->_oss_encd_vstrp)
  743. #define _oss_enci_aiobjid (*_g->ft.berTbl->_oss_enci_aiobjidp)
  744. #define _oss_enci_alobjid (*_g->ft.berTbl->_oss_enci_alobjidp)
  745. #define _oss_enci_asobjid (*_g->ft.berTbl->_oss_enci_asobjidp)
  746. #define _oss_enci_bool (*_g->ft.berTbl->_oss_enci_boolp)
  747. #define _oss_enci_creal (*_g->ft.berTbl->_oss_enci_crealp)
  748. #define _oss_enci_gtime (*_g->ft.berTbl->_oss_enci_gtimep)
  749. #define _oss_enci_int (*_g->ft.berTbl->_oss_enci_intp)
  750. #define _oss_enci_length (*_g->ft.berTbl->_oss_enci_lengthp)
  751. #define _oss_enci_liobjid (*_g->ft.berTbl->_oss_enci_liobjidp)
  752. #define _oss_enci_llobjid (*_g->ft.berTbl->_oss_enci_llobjidp)
  753. #define _oss_enci_lsobjid (*_g->ft.berTbl->_oss_enci_lsobjidp)
  754. #define _oss_enci_mreal (*_g->ft.berTbl->_oss_enci_mrealp)
  755. #define _oss_enci_nstr (*_g->ft.berTbl->_oss_enci_nstrp)
  756. #define _oss_enci_opentype (*_g->ft.berTbl->_oss_enci_opentypep)
  757. #define _oss_enci_pbit (*_g->ft.berTbl->_oss_enci_pbitp)
  758. #define _oss_enci_pstr (*_g->ft.berTbl->_oss_enci_pstrp)
  759. #define _oss_enci_real (*_g->ft.berTbl->_oss_enci_realp)
  760. #define _oss_enci_tag (*_g->ft.berTbl->_oss_enci_tagp)
  761. #define _oss_enci_uany (*_g->ft.berTbl->_oss_enci_uanyp)
  762. #define _oss_enci_ubit (*_g->ft.berTbl->_oss_enci_ubitp)
  763. #define _oss_enci_uint (*_g->ft.berTbl->_oss_enci_uintp)
  764. #define _oss_enci_uiobjid (*_g->ft.berTbl->_oss_enci_uiobjidp)
  765. #define _oss_enci_ulobjid (*_g->ft.berTbl->_oss_enci_ulobjidp)
  766. #define _oss_enci_uoct (*_g->ft.berTbl->_oss_enci_uoctp)
  767. #define _oss_enci_usobjid (*_g->ft.berTbl->_oss_enci_usobjidp)
  768. #define _oss_enci_ustr (*_g->ft.berTbl->_oss_enci_ustrp)
  769. #define _oss_enci_utime (*_g->ft.berTbl->_oss_enci_utimep)
  770. #define _oss_enci_vbit (*_g->ft.berTbl->_oss_enci_vbitp)
  771. #define _oss_enci_voct (*_g->ft.berTbl->_oss_enci_voctp)
  772. #define _oss_enci_vstr (*_g->ft.berTbl->_oss_enci_vstrp)
  773. #define _oss_free_creal (*_g->ft.berTbl->_oss_free_crealp)
  774. #define _oss_releaseMem (*_g->ft.apiTbl->_oss_releaseMemp)
  775. #define _oss_set_outmem_d (*_g->ft.apiTbl->_oss_set_outmem_dp)
  776. #define _oss_encd_eobjid (*_g->ft.berTbl->_oss_encd_eobjidp)
  777. #define _oss_dec_eobjid (*_g->ft.berTbl->_oss_dec_eobjidp)
  778. #define _oss_encd_dubit (*_g->ft.berTbl->_oss_encd_dubitp)
  779. #define _oss_encd_dvbit (*_g->ft.berTbl->_oss_encd_dvbitp)
  780. #define _oss_not_dflt (*_g->ft.berTbl->_oss_not_dfltp)
  781. #define _oss_beginBlock (*_g->ft.apiTbl->_oss_beginBlockp)
  782. #define _oss_nextItem (*_g->ft.apiTbl->_oss_nextItemp)
  783. #define _oss_endBlock (*_g->ft.apiTbl->_oss_endBlockp)
  784. #endif /* _DLL || OS2_DLL || (_WINDOWS && !_WIN32) */
  785. #endif /* ossber_hdr_file */