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.

545 lines
24 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: @(#)ossper.h 5.6 97/06/08
  10. *
  11. * function: Define the interfaces to the routines in the OSS PER
  12. * time-optimized encoder and decoder.
  13. *
  14. */
  15. #ifndef ossper_hdr_file
  16. #define ossper_hdr_file
  17. #if _MSC_VER > 1000
  18. #pragma once
  19. #endif
  20. #include <limits.h>
  21. #include "asn1hdr.h"
  22. #define Aligned 1
  23. #define Unaligned 0
  24. #if defined(_MSC_VER) && (defined(_WIN32) || defined(WIN32))
  25. #pragma pack(push, ossPacking, 4)
  26. #elif defined(_MSC_VER) && (defined(_WINDOWS) || defined(_MSDOS))
  27. #pragma pack(1)
  28. #elif defined(__BORLANDC__) && defined(__MSDOS__)
  29. #ifdef _BC31
  30. #pragma option -a-
  31. #else
  32. #pragma option -a1
  33. #endif /* _BC31 */
  34. #elif defined(__BORLANDC__) && defined(__WIN32__)
  35. #pragma option -a4
  36. #elif defined(__IBMC__)
  37. #pragma pack(4)
  38. #elif defined(__WATCOMC__) && defined(__NT__)
  39. #pragma pack(push, 4)
  40. #elif defined(__WATCOMC__) && (defined(__WINDOWS__) || defined(__DOS__))
  41. #pragma pack(push, 1)
  42. #endif /* _MSC_VER && _WIN32 */
  43. #ifdef macintosh
  44. #pragma options align=mac68k
  45. #endif
  46. struct _enum_data {
  47. int num; /* number of enumerations */
  48. long *enums; /* pointer to sorted array of enumerations */
  49. };
  50. struct _char_data {
  51. int num; /* number of characters in PermittedAlphabet */
  52. void *pa; /* pointer to PermittedAlphabet char string */
  53. void *ia; /* pointer to inverted indices string */
  54. };
  55. #if defined(_MSC_VER) && (defined(_WIN32) || defined(WIN32))
  56. #pragma pack(pop, ossPacking)
  57. #elif defined(_MSC_VER) && (defined(_WINDOWS) || defined(_MSDOS))
  58. #pragma pack()
  59. #elif defined(__BORLANDC__) && (defined(__WIN32__) || defined(__MSDOS__))
  60. #pragma option -a.
  61. #elif defined(__IBMC__)
  62. #pragma pack()
  63. #elif defined(__WATCOMC__)
  64. #pragma pack(pop)
  65. #endif /* _MSC_VER && _WIN32 */
  66. #ifdef macintosh
  67. #pragma options align=reset
  68. #endif
  69. #ifdef __cplusplus
  70. extern "C" {
  71. #endif
  72. extern void DLL_ENTRY _oss_append(struct ossGlobal *g, unsigned char *field, unsigned long length,
  73. int align);
  74. extern void DLL_ENTRY _oss_penc_unconstr_int(struct ossGlobal *g,
  75. LONG_LONG value);
  76. extern void DLL_ENTRY _oss_penc_semicon_int(struct ossGlobal *g,
  77. LONG_LONG value, LONG_LONG lower_bound);
  78. extern void DLL_ENTRY _oss_penc_semicon_uint(struct ossGlobal *g,
  79. ULONG_LONG value, ULONG_LONG lower_bound);
  80. extern void DLL_ENTRY _oss_penc_nonneg_int(struct ossGlobal *g,
  81. ULONG_LONG value, ULONG_LONG range);
  82. extern void DLL_ENTRY _oss_penc_indeflen_int(struct ossGlobal *g,
  83. ULONG_LONG value, ULONG_LONG range);
  84. extern void DLL_ENTRY _oss_penc_small_int(struct ossGlobal *g, ULONG_LONG value);
  85. extern void DLL_ENTRY _oss_penc_enum(struct ossGlobal *g, long data,
  86. struct _enum_data *root,
  87. struct _enum_data *extension);
  88. extern void DLL_ENTRY _oss_penc_uenum(struct ossGlobal *g, unsigned long data,
  89. struct _enum_data *root,
  90. struct _enum_data *extension);
  91. extern void DLL_ENTRY _oss_penc_real(struct ossGlobal *g, double value);
  92. extern void DLL_ENTRY _oss_penc_creal(struct ossGlobal *g, char *value);
  93. extern void DLL_ENTRY _oss_penc_mreal(struct ossGlobal *g, MixedReal value);
  94. extern void DLL_ENTRY _oss_penc_constr_bpbit(struct ossGlobal *g, void *value,
  95. ULONG_LONG lb, ULONG_LONG ub, _Bool NamedBits,
  96. _Bool Ext);
  97. extern void DLL_ENTRY _oss_penc_constr_pbit(struct ossGlobal *g, ULONG_LONG value,
  98. ULONG_LONG size, ULONG_LONG lb, ULONG_LONG ub, _Bool NamedBits,
  99. _Bool Ext);
  100. extern void DLL_ENTRY _oss_penc_constr_bit(struct ossGlobal *g, unsigned char *value,
  101. ULONG_LONG length, ULONG_LONG lb, ULONG_LONG ub, _Bool NamedBits,
  102. _Bool Ext);
  103. extern void DLL_ENTRY _oss_penc_unconstr_bit(struct ossGlobal *g, unsigned char *value,
  104. ULONG_LONG length, _Bool NamedBits);
  105. extern void DLL_ENTRY _oss_penc_unconstr_pbit(struct ossGlobal *g, ULONG_LONG value,
  106. ULONG_LONG length, ULONG_LONG size, _Bool NamedBits);
  107. extern unsigned long DLL_ENTRY _oss_penc_length(struct ossGlobal *g, ULONG_LONG length,
  108. ULONG_LONG lb, ULONG_LONG ub, _Bool ext);
  109. extern unsigned long DLL_ENTRY _oss_pdec_small_len(struct ossGlobal *g);
  110. extern void DLL_ENTRY _oss_penc_small_len(struct ossGlobal *g,
  111. ULONG_LONG length);
  112. extern void DLL_ENTRY _oss_penc_unconstr_oct(struct ossGlobal *g, unsigned char *value,
  113. ULONG_LONG length);
  114. extern void DLL_ENTRY _oss_penc_constr_oct(struct ossGlobal *g, unsigned char *value,
  115. ULONG_LONG length, ULONG_LONG lb, ULONG_LONG ub);
  116. extern struct ossGlobal *DLL_ENTRY _oss_push_global(struct ossGlobal *g);
  117. extern struct ossGlobal *DLL_ENTRY _oss_pop_global(struct ossGlobal *g);
  118. extern void DLL_ENTRY _oss_penc_objids(struct ossGlobal *g, unsigned short *value,
  119. unsigned long length);
  120. extern void DLL_ENTRY _oss_penc_objidi(struct ossGlobal *g, unsigned int *value,
  121. unsigned long length);
  122. extern void DLL_ENTRY _oss_penc_objidl(struct ossGlobal *g, unsigned long *value,
  123. unsigned long length);
  124. extern void DLL_ENTRY _oss_penc_link_objids(struct ossGlobal *g, void *value);
  125. extern void DLL_ENTRY _oss_penc_link_objidi(struct ossGlobal *g, void *value);
  126. extern void DLL_ENTRY _oss_penc_link_objidl(struct ossGlobal *g, void *value);
  127. extern void DLL_ENTRY _oss_penc_opentype(struct ossGlobal *g, void *value);
  128. extern void DLL_ENTRY _oss_penc_nkmstr(struct ossGlobal *g, char *value, ULONG_LONG length);
  129. extern void DLL_ENTRY _oss_penc_kmstr(struct ossGlobal *g, char *value, ULONG_LONG length,
  130. ULONG_LONG lb, ULONG_LONG ub, int bits, long index,
  131. _Bool ext);
  132. extern void DLL_ENTRY _oss_penc_bmpstr(struct ossGlobal *g, unsigned short *value,
  133. ULONG_LONG length, ULONG_LONG lb, ULONG_LONG ub, int bits, long index,
  134. _Bool ext);
  135. #if INT_MAX == 2147483647
  136. extern void DLL_ENTRY _oss_penc_unistr(struct ossGlobal *g, int *value,
  137. ULONG_LONG length, ULONG_LONG lb, ULONG_LONG ub, int bits, long index,
  138. _Bool ext);
  139. #else
  140. extern void DLL_ENTRY _oss_penc_unistr(struct ossGlobal *g, long *value,
  141. ULONG_LONG length, ULONG_LONG lb, ULONG_LONG ub, int bits, long index,
  142. _Bool ext);
  143. #endif
  144. extern void DLL_ENTRY _oss_penc_gtime(struct ossGlobal *g, GeneralizedTime *time);
  145. extern void DLL_ENTRY _oss_penc_utime(struct ossGlobal *g, UTCTime *time);
  146. extern void DLL_ENTRY _oss_penc_uany(struct ossGlobal *g, void *data );
  147. extern void DLL_ENTRY _oss_penc_unconstr_huge(struct ossGlobal *g, void *data );
  148. extern void DLL_ENTRY _oss_penc_semicon_huge(struct ossGlobal *g,
  149. void *data, LONG_LONG lb );
  150. extern void DLL_ENTRY _oss_penc_eobjid(struct ossGlobal *g, void *data,
  151. long size_c);
  152. /* decoding functions */
  153. extern unsigned char DLL_ENTRY _oss_get_bit(struct ossGlobal *g, int align);
  154. extern void DLL_ENTRY _oss_get_bits(struct ossGlobal *g, unsigned char *field,
  155. unsigned long length, int align);
  156. extern unsigned char DLL_ENTRY _oss_get_octet(struct ossGlobal *g, int align);
  157. extern LONG_LONG DLL_ENTRY _oss_pdec_unconstr_int(struct ossGlobal *g);
  158. extern LONG_LONG DLL_ENTRY _oss_pdec_semicon_int(struct ossGlobal *g,
  159. LONG_LONG lower_bound);
  160. extern ULONG_LONG DLL_ENTRY _oss_pdec_semicon_uint(struct ossGlobal *g,
  161. ULONG_LONG lower_bound);
  162. extern ULONG_LONG DLL_ENTRY _oss_pdec_nonneg_int(struct ossGlobal *g,
  163. ULONG_LONG range);
  164. extern ULONG_LONG DLL_ENTRY _oss_pdec_indeflen_int(struct ossGlobal *g,
  165. ULONG_LONG range);
  166. extern ULONG_LONG DLL_ENTRY _oss_pdec_small_int(struct ossGlobal *g);
  167. extern long DLL_ENTRY _oss_pdec_enum(struct ossGlobal *g,
  168. struct _enum_data *root,
  169. struct _enum_data *extension);
  170. extern unsigned long DLL_ENTRY _oss_pdec_uenum(struct ossGlobal *g,
  171. struct _enum_data *root,
  172. struct _enum_data *extension);
  173. extern double DLL_ENTRY _oss_pdec_binreal(struct ossGlobal *g, unsigned char s, long len);
  174. extern void DLL_ENTRY _oss_pdec_chrreal(struct ossGlobal *g, unsigned char s, long len,
  175. double *num_out, unsigned char *str_out);
  176. extern float DLL_ENTRY _oss_pdec_freal(struct ossGlobal *g);
  177. extern double DLL_ENTRY _oss_pdec_real(struct ossGlobal *g);
  178. extern char * DLL_ENTRY _oss_pdec_creal(struct ossGlobal *g);
  179. extern MixedReal DLL_ENTRY _oss_pdec_mreal(struct ossGlobal *g);
  180. extern void DLL_ENTRY _oss_pdec_length(struct ossGlobal *g, unsigned long *length,
  181. ULONG_LONG lb, ULONG_LONG ub, _Bool *last);
  182. extern void DLL_ENTRY _oss_pdec_unconstr_ubit(struct ossGlobal *g, void *length,
  183. unsigned char **value, int lengthsize);
  184. extern void DLL_ENTRY _oss_pdec_unconstr_vbit_ptr(struct ossGlobal *g, void **ptr,
  185. int lengthsize);
  186. extern void DLL_ENTRY _oss_pdec_unconstr_vbit(struct ossGlobal *g, void *length,
  187. unsigned char *value, int lengthsize, ULONG_LONG datasize);
  188. extern void DLL_ENTRY _oss_pdec_unconstr_pbit(struct ossGlobal *g, void *value,
  189. int size);
  190. extern void DLL_ENTRY _oss_pdec_unconstr_bpbit(struct ossGlobal *g, unsigned char *value,
  191. long size);
  192. extern void DLL_ENTRY _oss_pdec_constr_ubit(struct ossGlobal *g, void *length,
  193. unsigned char **value, int lengthsize,
  194. ULONG_LONG lb, ULONG_LONG ub);
  195. extern void DLL_ENTRY _oss_pdec_constr_vbit(struct ossGlobal *g, void *length,
  196. unsigned char *value, int lengthsize,
  197. ULONG_LONG lb, ULONG_LONG ub);
  198. extern void DLL_ENTRY _oss_pdec_constr_vbit_ptr(struct ossGlobal *g, void **ptr,
  199. int lengthsize, ULONG_LONG lb, ULONG_LONG ub);
  200. extern void DLL_ENTRY _oss_pdec_constr_pbit(struct ossGlobal *g, void *value,
  201. int size, ULONG_LONG lb, ULONG_LONG ub);
  202. extern void DLL_ENTRY _oss_pdec_constr_bpbit(struct ossGlobal *g, unsigned char *value,
  203. int size, ULONG_LONG lb, ULONG_LONG ub);
  204. extern void DLL_ENTRY _oss_pdec_unconstr_uoct(struct ossGlobal *g, void *length,
  205. unsigned char **value, int lengthsize);
  206. extern void DLL_ENTRY _oss_pdec_unconstr_voct_ptr(struct ossGlobal *g, void **ptr,
  207. int lengthsize);
  208. extern void DLL_ENTRY _oss_pdec_constr_voct_ptr(struct ossGlobal *g, void **ptr,
  209. int lengthsize, ULONG_LONG lb, ULONG_LONG ub);
  210. extern void DLL_ENTRY _oss_pdec_constr_uoct(struct ossGlobal *g, void *length,
  211. unsigned char **value, int lengthsize, ULONG_LONG lb, ULONG_LONG ub);
  212. extern void DLL_ENTRY _oss_pdec_constr_voct(struct ossGlobal *g, void *length,
  213. unsigned char *value, int lengthsize, ULONG_LONG lb, ULONG_LONG ub);
  214. extern void DLL_ENTRY _oss_pdec_unconstr_voct(struct ossGlobal *g, void *length,
  215. unsigned char *value, int lengthsize, ULONG_LONG ub);
  216. extern struct ossGlobal * DLL_ENTRY _oss_pdec_push(struct ossGlobal *g);
  217. extern struct ossGlobal * DLL_ENTRY _oss_pdec_pop(struct ossGlobal *g);
  218. extern unsigned long DLL_ENTRY _oss_pdec_eap(struct ossGlobal *g, unsigned char **ext);
  219. extern void DLL_ENTRY _oss_pdec_eas(struct ossGlobal *g, unsigned char *ext,
  220. unsigned long count, unsigned long ea_num);
  221. extern void DLL_ENTRY _oss_pdec_lsof(struct ossGlobal *g, unsigned long *count,
  222. ULONG_LONG lb, ULONG_LONG ub, unsigned char ext,
  223. _Bool *last);
  224. extern void DLL_ENTRY _oss_pdec_usof(struct ossGlobal *g, unsigned long *count,
  225. unsigned char **value, int lengthsize, long itemsize,
  226. ULONG_LONG lb, ULONG_LONG ub, unsigned char ext,
  227. _Bool *last);
  228. extern void DLL_ENTRY _oss_pdec_asof(struct ossGlobal *g, unsigned long *count,
  229. int lengthsize,
  230. ULONG_LONG lb, ULONG_LONG ub, unsigned char ext,
  231. _Bool *last);
  232. extern void DLL_ENTRY _oss_pdec_asof_ptr(struct ossGlobal *g, void **ptr,
  233. int lengthsize, long itemsize, long prefixsize,
  234. _Bool *last);
  235. extern void DLL_ENTRY _oss_pdec_aobjids(struct ossGlobal *g, unsigned short *value,
  236. unsigned short *count, unsigned short array_size);
  237. extern void DLL_ENTRY _oss_pdec_aobjidi(struct ossGlobal *g, unsigned int *value,
  238. unsigned short *count, unsigned short array_size);
  239. extern void DLL_ENTRY _oss_pdec_aobjidl(struct ossGlobal *g, unsigned long *value,
  240. unsigned short *count, unsigned short array_size);
  241. extern void DLL_ENTRY _oss_pdec_aobjids_ptr(struct ossGlobal *g, void **ptr);
  242. extern void DLL_ENTRY _oss_pdec_aobjidi_ptr(struct ossGlobal *g, void **ptr);
  243. extern void DLL_ENTRY _oss_pdec_aobjidl_ptr(struct ossGlobal *g, void **ptr);
  244. extern void DLL_ENTRY _oss_pdec_uobjids(struct ossGlobal *g, unsigned short **value,
  245. unsigned short *count);
  246. extern void DLL_ENTRY _oss_pdec_uobjidi(struct ossGlobal *g, unsigned int **value,
  247. unsigned short *count);
  248. extern void DLL_ENTRY _oss_pdec_uobjidl(struct ossGlobal *g, unsigned long **value,
  249. unsigned short *count);
  250. extern void DLL_ENTRY _oss_pdec_link_objids(struct ossGlobal *g, void **ptr);
  251. extern void DLL_ENTRY _oss_pdec_link_objidi(struct ossGlobal *g, void **ptr);
  252. extern void DLL_ENTRY _oss_pdec_link_objidl(struct ossGlobal *g, void **ptr);
  253. extern void DLL_ENTRY _oss_pdec_ntp_kmstr(struct ossGlobal *g, char **ptr,
  254. ULONG_LONG lb, ULONG_LONG ub, int bits, long index,
  255. _Bool ext);
  256. extern void DLL_ENTRY _oss_pdec_nt_kmstr(struct ossGlobal *g, void *ptr,
  257. ULONG_LONG lb, ULONG_LONG ub, int bits, long index,
  258. _Bool ext);
  259. extern void DLL_ENTRY _oss_pdec_vap_kmstr(struct ossGlobal *g, void **ptr, int lengthsize,
  260. ULONG_LONG lb, ULONG_LONG ub, int bits, long index,
  261. _Bool ext);
  262. extern void DLL_ENTRY _oss_pdec_va_kmstr(struct ossGlobal *g, void *length, char *value,
  263. int lengthsize,
  264. ULONG_LONG lb, ULONG_LONG ub, int bits, long index,
  265. _Bool ext);
  266. extern void DLL_ENTRY _oss_pdec_ub_kmstr(struct ossGlobal *g, void *length, char **ptr,
  267. int lengthsize,
  268. ULONG_LONG lb, ULONG_LONG ub, int bits, long index,
  269. _Bool ext);
  270. extern void DLL_ENTRY _oss_pdec_bmpstr(struct ossGlobal *g, void *length, unsigned short **ptr,
  271. int lengthsize,
  272. ULONG_LONG lb, ULONG_LONG ub, int bits, long index,
  273. _Bool ext);
  274. #if INT_MAX == 2147483647
  275. extern void DLL_ENTRY _oss_pdec_unistr(struct ossGlobal *g, void *length, int **ptr,
  276. int lengthsize,
  277. ULONG_LONG lb, ULONG_LONG ub, int bits, long index,
  278. _Bool ext);
  279. #else
  280. extern void DLL_ENTRY _oss_pdec_unistr(struct ossGlobal *g, void *length, long **ptr,
  281. int lengthsize,
  282. ULONG_LONG lb, ULONG_LONG ub, int bits, long index,
  283. _Bool ext);
  284. #endif
  285. extern void DLL_ENTRY _oss_pdec_ntp_nkmstr(struct ossGlobal *g, char **ptr);
  286. extern void DLL_ENTRY _oss_pdec_nt_nkmstr(struct ossGlobal *g, char *value, unsigned long ub);
  287. extern void DLL_ENTRY _oss_pdec_vap_nkmstr(struct ossGlobal *g, void **ptr, int lengthsize);
  288. extern void DLL_ENTRY _oss_pdec_va_nkmstr(struct ossGlobal *g, void *length, char *value,
  289. int lengthsize, unsigned long ub);
  290. extern void DLL_ENTRY _oss_pdec_ub_nkmstr(struct ossGlobal *g, void *length, char **ptr,
  291. int lengthsize);
  292. extern void DLL_ENTRY _oss_pdec_pad_kmstr(struct ossGlobal *g, void *ptr,
  293. ULONG_LONG lb, ULONG_LONG ub, int bits, long index,
  294. _Bool ext);
  295. extern void DLL_ENTRY _oss_pdec_pad_kmstr_ptr(struct ossGlobal *g, char **ptr,
  296. ULONG_LONG lb, ULONG_LONG ub, int bits, long index,
  297. _Bool ext);
  298. extern void DLL_ENTRY _oss_pdec_opentype(struct ossGlobal *g, void *data );
  299. extern void DLL_ENTRY _oss_pdec_uany(struct ossGlobal *g, void *data );
  300. extern void DLL_ENTRY _oss_pdec_gtime(struct ossGlobal *g, GeneralizedTime *data);
  301. extern void DLL_ENTRY _oss_pdec_utime(struct ossGlobal *g, UTCTime *data);
  302. extern struct _char_data *_oss_get_char_data(struct ossGlobal *g, int index);
  303. extern void DLL_ENTRY _oss_pdec_unconstr_huge(struct ossGlobal *g, void *data );
  304. extern void DLL_ENTRY _oss_pdec_semicon_huge(struct ossGlobal *g,
  305. void *data, LONG_LONG lb );
  306. extern void DLL_ENTRY _oss_pdec_eobjid(struct ossGlobal *g, void *data,
  307. long size_c);
  308. extern void DLL_ENTRY _oss_pdec_sot(struct ossGlobal *g);
  309. #ifdef __cplusplus
  310. }
  311. #endif /* __cplusplus */
  312. /*
  313. * The following macros must be #defined if you compile the ASN.1
  314. * compiler generated files (.c files) and link-edit with the import
  315. * library ossapit.lib, i.e the OSS DLLs ossapit.dll, apit.dll,
  316. * and toedber.dll/toedper.dll are used. The following must not
  317. * be #defined if you link-edit with the static library toedcode.lib.
  318. */
  319. #if defined(_DLL) || defined(OS2_DLL) ||\
  320. (defined(_WINDOWS) && !defined(_WIN32))
  321. #define _oss_penc_unconstr_int (*_g->ft.perTbl->_oss_penc_unconstr_intp)
  322. #define _oss_pdec_unconstr_int (*_g->ft.perTbl->_oss_pdec_unconstr_intp)
  323. #define _oss_penc_kmstr (*_g->ft.perTbl->_oss_penc_kmstrp)
  324. #define _oss_pdec_ub_kmstr (*_g->ft.perTbl->_oss_pdec_ub_kmstrp)
  325. #define _oss_pdec_ntp_kmstr (*_g->ft.perTbl->_oss_pdec_ntp_kmstrp)
  326. #define _oss_append (*_g->ft.perTbl->_oss_appendp)
  327. #define _oss_penc_unconstr_bit (*_g->ft.perTbl->_oss_penc_unconstr_bitp)
  328. #define _oss_penc_constr_bit (*_g->ft.perTbl->_oss_penc_constr_bitp)
  329. #define _oss_penc_unconstr_oct (*_g->ft.perTbl->_oss_penc_unconstr_octp)
  330. #define _oss_penc_constr_oct (*_g->ft.perTbl->_oss_penc_constr_octp)
  331. #define _oss_penc_link_objids (*_g->ft.perTbl->_oss_penc_link_objidsp)
  332. #define _oss_penc_objids (*_g->ft.perTbl->_oss_penc_objidsp)
  333. #define _oss_penc_link_objidl (*_g->ft.perTbl->_oss_penc_link_objidlp)
  334. #define _oss_penc_objidl (*_g->ft.perTbl->_oss_penc_objidlp)
  335. #define _oss_penc_link_objidi (*_g->ft.perTbl->_oss_penc_link_objidip)
  336. #define _oss_penc_objidi (*_g->ft.perTbl->_oss_penc_objidip)
  337. #define _oss_penc_nkmstr (*_g->ft.perTbl->_oss_penc_nkmstrp)
  338. #define _oss_penc_opentype (*_g->ft.perTbl->_oss_penc_opentypep)
  339. #define _oss_penc_nonneg_int (*_g->ft.perTbl->_oss_penc_nonneg_intp)
  340. #define _oss_penc_real (*_g->ft.perTbl->_oss_penc_realp)
  341. #define _oss_penc_uenum (*_g->ft.perTbl->_oss_penc_uenump)
  342. #define _oss_penc_length (*_g->ft.perTbl->_oss_penc_lengthp)
  343. #define _oss_penc_gtime (*_g->ft.perTbl->_oss_penc_gtimep)
  344. #define _oss_penc_utime (*_g->ft.perTbl->_oss_penc_utimep)
  345. #define _oss_get_bit (*_g->ft.perTbl->_oss_get_bitp)
  346. #define _oss_pdec_unconstr_ubit (*_g->ft.perTbl->_oss_pdec_unconstr_ubitp)
  347. #define _oss_pdec_constr_ubit (*_g->ft.perTbl->_oss_pdec_constr_ubitp)
  348. #define _oss_pdec_constr_pbit (*_g->ft.perTbl->_oss_pdec_constr_pbitp)
  349. #define _oss_pdec_constr_bpbit (*_g->ft.perTbl->_oss_pdec_constr_bpbitp)
  350. #define _oss_pdec_unconstr_vbit_ptr (*_g->ft.perTbl->_oss_pdec_unconstr_vbit_ptrp)
  351. #define _oss_pdec_unconstr_vbit (*_g->ft.perTbl->_oss_pdec_unconstr_vbitp)
  352. #define _oss_pdec_unconstr_uoct (*_g->ft.perTbl->_oss_pdec_unconstr_uoctp)
  353. #define _oss_pdec_constr_voct (*_g->ft.perTbl->_oss_pdec_constr_voctp)
  354. #define _oss_pdec_constr_voct_ptr (*_g->ft.perTbl->_oss_pdec_constr_voct_ptrp)
  355. #define _oss_pdec_unconstr_voct_ptr (*_g->ft.perTbl->_oss_pdec_unconstr_voct_ptrp)
  356. #define _oss_pdec_constr_uoct (*_g->ft.perTbl->_oss_pdec_constr_uoctp)
  357. #define _oss_pdec_constr_vbit (*_g->ft.perTbl->_oss_pdec_constr_vbitp)
  358. #define _oss_pdec_constr_vbit_ptr (*_g->ft.perTbl->_oss_pdec_constr_vbit_ptrp)
  359. #define _oss_pdec_link_objids (*_g->ft.perTbl->_oss_pdec_link_objidsp)
  360. #define _oss_pdec_link_objidl (*_g->ft.perTbl->_oss_pdec_link_objidlp)
  361. #define _oss_pdec_link_objidi (*_g->ft.perTbl->_oss_pdec_link_objidip)
  362. #define _oss_pdec_uobjids (*_g->ft.perTbl->_oss_pdec_uobjidsp)
  363. #define _oss_pdec_uobjidl (*_g->ft.perTbl->_oss_pdec_uobjidlp)
  364. #define _oss_pdec_uobjidi (*_g->ft.perTbl->_oss_pdec_uobjidip)
  365. #define _oss_pdec_aobjids (*_g->ft.perTbl->_oss_pdec_aobjidsp)
  366. #define _oss_pdec_aobjidl (*_g->ft.perTbl->_oss_pdec_aobjidlp)
  367. #define _oss_pdec_aobjidi (*_g->ft.perTbl->_oss_pdec_aobjidip)
  368. #define _oss_pdec_aobjids_ptr (*_g->ft.perTbl->_oss_pdec_aobjids_ptrp)
  369. #define _oss_pdec_aobjidl_ptr (*_g->ft.perTbl->_oss_pdec_aobjidl_ptrp)
  370. #define _oss_pdec_aobjidi_ptr (*_g->ft.perTbl->_oss_pdec_aobjidi_ptrp)
  371. #define _oss_pdec_ntp_nkmstr (*_g->ft.perTbl->_oss_pdec_ntp_nkmstrp)
  372. #define _oss_pdec_nt_nkmstr (*_g->ft.perTbl->_oss_pdec_nt_nkmstrp)
  373. #define _oss_pdec_opentype (*_g->ft.perTbl->_oss_pdec_opentypep)
  374. #define _oss_pdec_nonneg_int (*_g->ft.perTbl->_oss_pdec_nonneg_intp)
  375. #define _oss_get_bits (*_g->ft.perTbl->_oss_get_bitsp)
  376. #define _oss_pdec_freal (*_g->ft.perTbl->_oss_pdec_frealp)
  377. #define _oss_pdec_real (*_g->ft.perTbl->_oss_pdec_realp)
  378. #define _oss_pdec_uenum (*_g->ft.perTbl->_oss_pdec_uenump)
  379. #define _oss_pdec_asof (*_g->ft.perTbl->_oss_pdec_asofp)
  380. #define _oss_pdec_usof (*_g->ft.perTbl->_oss_pdec_usofp)
  381. #define _oss_pdec_lsof (*_g->ft.perTbl->_oss_pdec_lsofp)
  382. #define _oss_pdec_utime (*_g->ft.perTbl->_oss_pdec_utimep)
  383. #define _oss_pdec_gtime (*_g->ft.perTbl->_oss_pdec_gtimep)
  384. #define _oss_pdec_asof_ptr (*_g->ft.perTbl->_oss_pdec_asof_ptrp)
  385. #define _oss_pdec_nt_kmstr (*_g->ft.perTbl->_oss_pdec_nt_kmstrp)
  386. #define _oss_pdec_va_kmstr (*_g->ft.perTbl->_oss_pdec_va_kmstrp)
  387. #define _oss_pdec_vap_kmstr (*_g->ft.perTbl->_oss_pdec_vap_kmstrp)
  388. #define _oss_pdec_pad_kmstr (*_g->ft.perTbl->_oss_pdec_pad_kmstrp)
  389. #define _oss_pdec_pad_kmstr_ptr (*_g->ft.perTbl->_oss_pdec_pad_kmstr_ptrp)
  390. #define _oss_pdec_binreal (*_g->ft.perTbl->_oss_pdec_binrealp)
  391. #define _oss_pdec_eap (*_g->ft.perTbl->_oss_pdec_eapp)
  392. #define _oss_pdec_eas (*_g->ft.perTbl->_oss_pdec_easp)
  393. #define _oss_pdec_chrreal (*_g->ft.perTbl->_oss_pdec_chrrealp)
  394. #define _oss_pdec_enum (*_g->ft.perTbl->_oss_pdec_enump)
  395. #define _oss_pdec_indeflen_int (*_g->ft.perTbl->_oss_pdec_indeflen_intp)
  396. #define _oss_penc_indeflen_int (*_g->ft.perTbl->_oss_penc_indeflen_intp)
  397. #define _oss_pdec_bmpstr (*_g->ft.perTbl->_oss_pdec_bmpstrp)
  398. #define _oss_pdec_creal (*_g->ft.perTbl->_oss_pdec_crealp)
  399. #define _oss_pdec_mreal (*_g->ft.perTbl->_oss_pdec_mrealp)
  400. #define _oss_penc_mreal (*_g->ft.perTbl->_oss_penc_mrealp)
  401. #define _oss_pdec_length (*_g->ft.perTbl->_oss_pdec_lengthp)
  402. #define _oss_pdec_pop (*_g->ft.perTbl->_oss_pdec_popp)
  403. #define _oss_pdec_push (*_g->ft.perTbl->_oss_pdec_pushp)
  404. #define _oss_pdec_uany (*_g->ft.perTbl->_oss_pdec_uanyp)
  405. #define _oss_penc_uany (*_g->ft.perTbl->_oss_penc_uanyp)
  406. #define _oss_pdec_unistr (*_g->ft.perTbl->_oss_pdec_unistrp)
  407. #define _oss_penc_unistr (*_g->ft.perTbl->_oss_penc_unistrp)
  408. #define _oss_pdec_semicon_int (*_g->ft.perTbl->_oss_pdec_semicon_intp)
  409. #define _oss_penc_semicon_int (*_g->ft.perTbl->_oss_penc_semicon_intp)
  410. #define _oss_pdec_semicon_uint (*_g->ft.perTbl->_oss_pdec_semicon_uintp)
  411. #define _oss_penc_semicon_uint (*_g->ft.perTbl->_oss_penc_semicon_uintp)
  412. #define _oss_pdec_small_int (*_g->ft.perTbl->_oss_pdec_small_intp)
  413. #define _oss_penc_small_int (*_g->ft.perTbl->_oss_penc_small_intp)
  414. #define _oss_pdec_small_len (*_g->ft.perTbl->_oss_pdec_small_lenp)
  415. #define _oss_penc_small_len (*_g->ft.perTbl->_oss_penc_small_lenp)
  416. #define _oss_pdec_subid (*_g->ft.perTbl->_oss_pdec_subidp)
  417. #define _oss_penc_subid (*_g->ft.perTbl->_oss_penc_subidp)
  418. #define _oss_pdec_ub_nkmstr (*_g->ft.perTbl->_oss_pdec_ub_nkmstrp)
  419. #define _oss_pdec_unconstr_bpbit (*_g->ft.perTbl->_oss_pdec_unconstr_bpbitp)
  420. #define _oss_pdec_unconstr_pbit (*_g->ft.perTbl->_oss_pdec_unconstr_pbitp)
  421. #define _oss_penc_unconstr_pbit (*_g->ft.perTbl->_oss_penc_unconstr_pbitp)
  422. #define _oss_pdec_unconstr_huge (*_g->ft.perTbl->_oss_pdec_unconstr_hugep)
  423. #define _oss_penc_unconstr_huge (*_g->ft.perTbl->_oss_penc_unconstr_hugep)
  424. #define _oss_pdec_vap_nkmstr (*_g->ft.perTbl->_oss_pdec_vap_nkmstrp)
  425. #define _oss_pdec_va_nkmstr (*_g->ft.perTbl->_oss_pdec_va_nkmstrp)
  426. #define _oss_penc_constr_bpbit (*_g->ft.perTbl->_oss_penc_constr_bpbitp)
  427. #define _oss_penc_constr_pbit (*_g->ft.perTbl->_oss_penc_constr_pbitp)
  428. #define _oss_penc_creal (*_g->ft.perTbl->_oss_penc_crealp)
  429. #define _oss_penc_enum (*_g->ft.perTbl->_oss_penc_enump)
  430. #define _oss_pop_global (*_g->ft.perTbl->_oss_pop_globalp)
  431. #define _oss_push_global (*_g->ft.perTbl->_oss_push_globalp)
  432. #define _oss_get_octet (*_g->ft.perTbl->_oss_get_octetp)
  433. #define _oss_penc_eobjid (*_g->ft.perTbl->_oss_penc_eobjidp)
  434. #define _oss_pdec_eobjid (*_g->ft.perTbl->_oss_pdec_eobjidp)
  435. #define _oss_penc_semicon_huge (*_g->ft.perTbl->_oss_penc_semicon_hugep)
  436. #define _oss_pdec_semicon_huge (*_g->ft.perTbl->_oss_pdec_semicon_hugep)
  437. #define _oss_pdec_sot (*_g->ft.perTbl->_oss_pdec_sot)
  438. #undef _oss_enc_error
  439. #undef _oss_free_creal
  440. #define _oss_enc_error (*_g->ft.perTbl->_oss_enc_errorp)
  441. #define _oss_free_creal (*_g->ft.perTbl->_oss_free_crealp)
  442. #endif /* _DLL || OS2_DLL || (_WINDOWS && !_WIN32) */
  443. #endif /* ossper_hdr_file */