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.

780 lines
46 KiB

  1. /*
  2. * Copyright (C) 1993-1999 Open Systems Solutions, Inc. All rights reserved.
  3. *
  4. * THIS FILE IS PROPRIETARY MATERIAL OF OPEN SYSTEMS SOLUTIONS, INC.
  5. * AND MAY ONLY BE USED BY DIRECT LICENSEES OF OPEN SYSTEMS SOLUTIONS, INC.
  6. * THIS FILE MAY NOT BE DISTRIBUTED.
  7. *
  8. * FILE: @(#)ossdll.h 5.57.1.1 97/06/08
  9. */
  10. #ifndef OSSDLL_H
  11. #define OSSDLL_H
  12. #if _MSC_VER > 1000
  13. #pragma once
  14. #endif
  15. #ifdef __cplusplus
  16. extern "C" {
  17. #endif
  18. #if defined(_MSC_VER) && (defined(_WIN32) || defined(WIN32))
  19. #pragma pack(push, ossPacking, 4)
  20. #elif defined(_MSC_VER) && (defined(_WINDOWS) || defined(_MSDOS))
  21. #pragma pack(1)
  22. #elif defined(__BORLANDC__) && defined(__MSDOS__)
  23. #ifdef _BC31
  24. #pragma option -a-
  25. #else
  26. #pragma option -a1
  27. #endif /* _BC31 */
  28. #elif defined(__BORLANDC__) && defined(__WIN32__)
  29. #pragma option -a4
  30. #elif defined(__IBMC__)
  31. #pragma pack(4)
  32. #elif defined(__WATCOMC__) && defined(__NT__)
  33. #pragma pack(push, 4)
  34. #elif defined(__WATCOMC__) && (defined(__WINDOWS__) || defined(__DOS__))
  35. #pragma pack(push, 1)
  36. #endif /* _MSC_VER && _WIN32 */
  37. #if defined(_WINDOWS) || defined(_WIN32) || defined(WIN32) || \
  38. defined(__WIN32__) || defined(__OS2__) || defined(NETWARE_DLL)
  39. #include <stdio.h>
  40. #include <limits.h>
  41. #include <stdarg.h>
  42. #if !defined(__OS2__) && !defined(NETWARE_DLL) && !defined(_NTSDK)
  43. #include <windows.h>
  44. #endif /* !__OS2__ && !NETWARE_DLL && !_NTSDK */
  45. #include "asn1hdr.h"
  46. #ifndef DLL_ENTRY
  47. #if defined(_WIN32) || defined(WIN32) || defined(__WIN32__)
  48. #ifdef __BORLANDC__
  49. #define PUBLIC
  50. #define DLL_ENTRY __stdcall __export
  51. #define DLL_ENTRY_FDEF __stdcall __export
  52. #define DLL_ENTRY_FPTR __stdcall __export
  53. #elif defined(__IBMC__)
  54. #define PUBLIC
  55. #define DLL_ENTRY WINAPI
  56. #define DLL_ENTRY_FDEF WINAPI __export
  57. #define DLL_ENTRY_FPTR WINAPI
  58. #elif defined(__WATCOMC__)
  59. #define PUBLIC
  60. #define DLL_ENTRY WINAPI __export
  61. #define DLL_ENTRY_FDEF WINAPI __export
  62. #define DLL_ENTRY_FPTR WINAPI __export
  63. #elif defined(_NTSDK)
  64. typedef void * HINSTANCE;
  65. typedef void * HWND;
  66. typedef char BOOL;
  67. typedef long LONG;
  68. #define PUBLIC __declspec(dllexport)
  69. #define DLL_ENTRY
  70. #define DLL_ENTRY_FDEF
  71. #define DLL_ENTRY_FPTR
  72. #else
  73. #define PUBLIC
  74. #define DLL_ENTRY WINAPI
  75. #define DLL_ENTRY_FDEF WINAPI
  76. #define DLL_ENTRY_FPTR WINAPI
  77. #endif /* __BORLANDC__ */
  78. #define _System
  79. #elif defined(_WINDOWS)
  80. #define PUBLIC
  81. #ifdef DPMI_DLL
  82. #define DLL_ENTRY FAR PASCAL __export
  83. #define DLL_ENTRY_FDEF FAR PASCAL __export
  84. #define DLL_ENTRY_FPTR FAR PASCAL __export
  85. #else
  86. #define DLL_ENTRY far pascal _export
  87. #define DLL_ENTRY_FDEF far pascal _export
  88. #define DLL_ENTRY_FPTR far pascal _export
  89. #endif /* DPMI_DLL */
  90. #define _System
  91. #elif defined(__OS2__)
  92. #define PUBLIC
  93. #define DLL_ENTRY _System
  94. #define DLL_ENTRY_FDEF _Export _System
  95. #define DLL_ENTRY_FPTR
  96. #define HWND int
  97. #define LONG long
  98. #define BOOL char
  99. #define DWORD unsigned long
  100. #define HINSTANCE unsigned long
  101. #elif defined(NETWARE_DLL)
  102. #define PUBLIC
  103. #define DLL_ENTRY
  104. #define DLL_ENTRY_FDEF
  105. #define DLL_ENTRY_FPTR
  106. #define _Export
  107. #undef _System
  108. #define _System
  109. #define LONG unsigned long
  110. #define HWND int
  111. #define DWORD LONG
  112. #define BOOL char
  113. #define HINSTANCE LONG
  114. #endif /* _WIN32 || WIN32 || __WIN32__ */
  115. #endif /* DLL_ENTRY */
  116. #define BUFFERSIZE 1024
  117. /*
  118. * NUMBER_OF_LINES_IN_BLOCK is the number of
  119. * 4-byte offsets in a block of memory allocated
  120. * at a time. Each offset corresponds to a line
  121. * of a text file to be displayed in a window.
  122. */
  123. #define NUMBER_OF_LINES_IN_BLOCK 200
  124. typedef struct memblock {
  125. struct memblock *prev;
  126. struct memblock *next;
  127. LONG *fileOffset;
  128. short *lineLength;
  129. short blockNumber;
  130. } MEMBLOCK;
  131. #ifdef __alpha
  132. #define ossArg LONG_LONG
  133. #else
  134. #define ossArg int
  135. #endif /* __alpha */
  136. typedef struct memManagerTbl {
  137. int (DLL_ENTRY_FPTR *_System ossMinitp)(void *);
  138. unsigned char *(DLL_ENTRY_FPTR *_System dopenInp)(void *,
  139. void **, unsigned long *);
  140. unsigned long (DLL_ENTRY_FPTR *_System dclosInp)(void *,
  141. void **, size_t);
  142. unsigned char *(DLL_ENTRY_FPTR *_System dswapInp)(void *,
  143. void **, size_t *);
  144. void (DLL_ENTRY_FPTR *_System dopenOutp)(void *, void *,
  145. unsigned long, unsigned long);
  146. unsigned char *(DLL_ENTRY_FPTR *_System dxferObjp)(void *,
  147. void **inn, void **out,
  148. size_t *, unsigned long *);
  149. unsigned long (DLL_ENTRY_FPTR *_System dclosOutp)(void *, void **);
  150. void *(DLL_ENTRY_FPTR *_System dallcOutp)(void *, size_t,
  151. char root);
  152. void (DLL_ENTRY_FPTR *_System openWorkp)(void *);
  153. void (DLL_ENTRY_FPTR *_System pushHndlp)(void *, void *);
  154. unsigned char *(DLL_ENTRY_FPTR *_System popHndlp)(void *,
  155. void **, size_t);
  156. void (DLL_ENTRY_FPTR *_System closWorkp)(void *);
  157. void *(DLL_ENTRY_FPTR *_System allcWorkp)(void *, size_t);
  158. unsigned char *(DLL_ENTRY_FPTR *_System lockMemp)(void *, void *);
  159. void (DLL_ENTRY_FPTR *_System unlokMemp)(void *, void *,
  160. char);
  161. void (DLL_ENTRY_FPTR *_System ossFreerp)(void *, void *);
  162. int (DLL_ENTRY_FPTR *_System freePDUp)(void *, int,
  163. void *, void *);
  164. void (DLL_ENTRY_FPTR *_System drcovObjp)(void *, int,
  165. void *, void *);
  166. unsigned char *(DLL_ENTRY_FPTR *_System eopenInp)(void *, void *,
  167. size_t);
  168. unsigned char *(DLL_ENTRY_FPTR *_System eswapInp)(void *, void *,
  169. void *, size_t);
  170. void (DLL_ENTRY_FPTR *_System eclosInp)(void *, void *);
  171. unsigned char *(DLL_ENTRY_FPTR *_System eopenOutp)(void *, void **,
  172. size_t *, char);
  173. unsigned char *(DLL_ENTRY_FPTR *_System eswapOutp)(void *, void **,
  174. size_t, size_t *);
  175. unsigned char *(DLL_ENTRY_FPTR *_System exferObjp)(void *, void **,
  176. void **, unsigned long *, unsigned long);
  177. unsigned long (DLL_ENTRY_FPTR *_System eclosOutp)(void *, void **,
  178. size_t, char);
  179. void (DLL_ENTRY_FPTR *_System ercovObjp)(void *);
  180. unsigned char *(DLL_ENTRY_FPTR *_System asideBeginp)(void *,
  181. void **, size_t, size_t *);
  182. unsigned char *(DLL_ENTRY_FPTR *_System asideSwapp)(void *,
  183. void **, size_t, size_t *);
  184. void *(DLL_ENTRY_FPTR *_System asideEndp)(void *,
  185. void *, size_t);
  186. unsigned char *(DLL_ENTRY_FPTR *_System setDumpp)(void *, void **,
  187. void *, size_t *);
  188. void (DLL_ENTRY_FPTR *_System ossSetSortp)(void *, void *,
  189. unsigned char);
  190. void (DLL_ENTRY_FPTR *_System freeBUFp)(void *, void *);
  191. unsigned char (DLL_ENTRY_FPTR *_System egetBytep)(void *, void *,
  192. unsigned long);
  193. void *(DLL_ENTRY_FPTR *_System _ossMarkObjp)(void *,
  194. int, void *);
  195. void *(DLL_ENTRY_FPTR *_System _ossUnmarkObjp)(void *,
  196. void *);
  197. void *(DLL_ENTRY_FPTR *_System _ossGetObjp)(void *,
  198. void *);
  199. void *(DLL_ENTRY_FPTR *_System _ossTestObjp)(void *,
  200. void *);
  201. void (DLL_ENTRY_FPTR *_System _ossFreeObjectStackp)(void *);
  202. void (DLL_ENTRY_FPTR *_System ossMtermp)(void *);
  203. void (DLL_ENTRY_FPTR *_System _ossSetTimeoutp)(void *, long);
  204. int memMgrType;
  205. } MemManagerTbl;
  206. #define osswinit ossWinit
  207. #ifndef __IBMC__
  208. PUBLIC int DLL_ENTRY ossOpenTraceWindow(struct ossGlobal *);
  209. void *getStartAddress(struct ossGlobal *, char *);
  210. void *DLL_ENTRY ossGetHeader(void);
  211. PUBLIC HINSTANCE DLL_ENTRY ossLoadDll(struct ossGlobal *, char *);
  212. PUBLIC int DLL_ENTRY ossFreeDll(struct ossGlobal *, char *);
  213. int ossWriteWindow(struct ossGlobal *, HWND);
  214. PUBLIC int DLL_ENTRY ossPrintWin(struct ossGlobal *, const char *,
  215. ossArg, ossArg, ossArg, ossArg, ossArg, ossArg,
  216. ossArg, ossArg, ossArg, ossArg);
  217. PUBLIC int DLL_ENTRY ossReadLine(struct ossGlobal *, HWND, FILE *,
  218. char *, MEMBLOCK *, LONG);
  219. PUBLIC void DLL_ENTRY ossFreeList(struct ossGlobal *);
  220. PUBLIC void DLL_ENTRY ossSaveTraceInfo(struct ossGlobal *, HWND, char *);
  221. PUBLIC void DLL_ENTRY ossWterm(struct ossGlobal *);
  222. PUBLIC HINSTANCE DLL_ENTRY ossLoadMemoryManager(struct ossGlobal *, int, char *);
  223. PUBLIC int DLL_ENTRY ossWinit(struct ossGlobal *, void *, char *, HWND);
  224. int DLL_ENTRY oss_test(struct ossGlobal *);
  225. int ossGeneric(struct ossGlobal *, HWND);
  226. extern const int ossEncoderDecoderType;
  227. /*
  228. * The following two functions are used by the memory manager &
  229. * tracing routine DLL as low level memory allocator and freer
  230. * replacing the default--which is malloc() and free()--in the
  231. * sample tests. See ossgnrc.c for more information.
  232. */
  233. extern void *DLL_ENTRY getmem(size_t);
  234. extern void DLL_ENTRY rlsmem(void *);
  235. extern HINSTANCE hInst;
  236. #endif /* !__IBMC__ */
  237. #endif /* _WINDOWS ||_WIN32 || WIN32 || __WIN32__ || __OS2__ || NETWARE_DLL */
  238. #if defined(_WINDOWS) || defined(_WIN32) || \
  239. defined(__OS2__) || defined(NETWARE_DLL)
  240. #if defined(_WINDOWS) || defined(_DLL) || \
  241. defined(OS2_DLL) || defined(NETWARE_DLL)
  242. #define OSS_PLUS_INFINITY "PLUS_INFINITY"
  243. #define OSS_MINUS_INFINITY "MINUS_INFINITY"
  244. #define ossNaN "NOT_A_NUMBER"
  245. #endif /* _WINDOWS || _DLL || OS2_DLL || NETWARE_DLL */
  246. typedef struct cstrainTbl {
  247. int (DLL_ENTRY_FPTR *_System ossConstrainp)(void *, int, void *, void *);
  248. } CstrainTbl;
  249. typedef struct berTbl {
  250. int (DLL_ENTRY_FPTR *_System ossBerEncodep)(void *, int, void *,
  251. char **, long *, void *, unsigned, char *);
  252. int (DLL_ENTRY_FPTR *_System ossBerDecodep)(void *, int *, char **,
  253. long *, void **, long *, void *, unsigned, char *);
  254. #ifdef SOED
  255. int (DLL_ENTRY_FPTR *_System berEncodeOpenTypep)(void *, int,
  256. void *, void **, long *, void *, unsigned);
  257. int (DLL_ENTRY_FPTR *_System berDecodeOpenTypep)(void *, int *, void **,
  258. long *, void **, long *, void *, unsigned);
  259. void (DLL_ENTRY_FPTR *_System enc_errorp)(void *, int, void *);
  260. void (DLL_ENTRY_FPTR *_System dec_errorp)(void *, int, void *);
  261. long (DLL_ENTRY_FPTR *_System writetobufferp)(void *, unsigned char c);
  262. long (DLL_ENTRY_FPTR *_System write_intp)(void *, char length, LONG_LONG);
  263. long (DLL_ENTRY_FPTR *_System write_valuep)(void *, unsigned long,
  264. unsigned char *, char);
  265. int (DLL_ENTRY_FPTR *_System numbitsp)(long);
  266. void (DLL_ENTRY_FPTR *_System fpeHandlerp)(int);
  267. void *(DLL_ENTRY_FPTR *_System new_perm_pointed_top)(void *, void *,
  268. size_t, size_t);
  269. void (DLL_ENTRY_FPTR *_System release_work_spacep)(void *, void *, size_t);
  270. void *(DLL_ENTRY_FPTR *_System copy_from_work_spacep)(void *, size_t,
  271. size_t suffix, void *, size_t, char);
  272. unsigned char (DLL_ENTRY_FPTR *_System get_bytep)(void *);
  273. void (DLL_ENTRY_FPTR *_System set_intp)(void *, unsigned char *,
  274. unsigned int, LONG_LONG value, int);
  275. void *(DLL_ENTRY_FPTR *_System reserve_work_spacep)(void *, size_t, size_t *);
  276. long (DLL_ENTRY_FPTR *_System encode_lengthp)(void *, long);
  277. void (DLL_ENTRY_FPTR *_System debug_realp)(void *, char, unsigned char *, int, long);
  278. void (DLL_ENTRY_FPTR *_System debug_strp)(void *, unsigned char *, size_t);
  279. #else
  280. #define _dstd_parms_defx char **, long *, long
  281. #define _sdstd_parms_defx char **, long *
  282. #define _std_parms_defx char **, long *, char
  283. LONG_LONG (DLL_ENTRY_FPTR *_System _oss_dec_llintp) (void *, _dstd_parms_defx);
  284. ULONG_LONG (DLL_ENTRY_FPTR *_System _oss_dec_ullintp) (void *, _dstd_parms_defx);
  285. char (DLL_ENTRY_FPTR *_System _oss_dec_boolp) (void *, _dstd_parms_defx);
  286. int (DLL_ENTRY_FPTR *_System _oss_dec_iintp) (void *, _dstd_parms_defx);
  287. long (DLL_ENTRY_FPTR *_System _oss_count_setof_itemsp) (void *, _dstd_parms_defx);
  288. long (DLL_ENTRY_FPTR *_System _oss_dec_lengthp) (void *, _sdstd_parms_defx);
  289. long (DLL_ENTRY_FPTR *_System _oss_dec_lintp) (void *, _dstd_parms_defx);
  290. long (DLL_ENTRY_FPTR *_System _oss_encd_aiobjidp) (void *, _std_parms_defx, void *, short);
  291. long (DLL_ENTRY_FPTR *_System _oss_encd_alobjidp) (void *, _std_parms_defx, void *, short);
  292. long (DLL_ENTRY_FPTR *_System _oss_encd_asobjidp) (void *, _std_parms_defx, void *, short);
  293. long (DLL_ENTRY_FPTR *_System _oss_encd_boolp) (void *, _std_parms_defx, char);
  294. long (DLL_ENTRY_FPTR *_System _oss_encd_crealp) (void *, _std_parms_defx, char *);
  295. long (DLL_ENTRY_FPTR *_System _oss_encd_gtimep) (void *, _std_parms_defx, void *);
  296. long (DLL_ENTRY_FPTR *_System _oss_encd_huge_intp) (void *, _std_parms_defx, void *);
  297. long (DLL_ENTRY_FPTR *_System _oss_encd_uhuge_intp) (void *, _std_parms_defx, void *);
  298. long (DLL_ENTRY_FPTR *_System _oss_encd_intp) (void *, _std_parms_defx, LONG_LONG _data);
  299. long (DLL_ENTRY_FPTR *_System _oss_encd_lengthp) (void *, _std_parms_defx, unsigned long);
  300. long (DLL_ENTRY_FPTR *_System _oss_encd_liobjidp) (void *, _std_parms_defx, void *, long);
  301. long (DLL_ENTRY_FPTR *_System _oss_encd_llobjidp) (void *, _std_parms_defx, void *, long);
  302. long (DLL_ENTRY_FPTR *_System _oss_encd_lsobjidp) (void *, _std_parms_defx, void *, long);
  303. long (DLL_ENTRY_FPTR *_System _oss_encd_mrealp) (void *, _std_parms_defx, void *);
  304. long (DLL_ENTRY_FPTR *_System _oss_encd_nstrp) (void *, _std_parms_defx, char *, long);
  305. long (DLL_ENTRY_FPTR *_System _oss_encd_opentypep) (void *, _std_parms_defx, void *);
  306. long (DLL_ENTRY_FPTR *_System _oss_encd_pbitp) (void *, _std_parms_defx, void *, long);
  307. long (DLL_ENTRY_FPTR *_System _oss_encd_pstrp) (void *, _std_parms_defx, char *, long);
  308. long (DLL_ENTRY_FPTR *_System _oss_encd_realp) (void *, _std_parms_defx, double);
  309. long (DLL_ENTRY_FPTR *_System _oss_encd_tagp) (void *, _std_parms_defx, unsigned short, char);
  310. long (DLL_ENTRY_FPTR *_System _oss_encd_uanyp) (void *, _std_parms_defx, void *);
  311. long (DLL_ENTRY_FPTR *_System _oss_encd_ubitp) (void *, _std_parms_defx, void *, char, long);
  312. long (DLL_ENTRY_FPTR *_System _oss_encd_uintp) (void *, _std_parms_defx, ULONG_LONG);
  313. long (DLL_ENTRY_FPTR *_System _oss_encd_uiobjidp) (void *, _std_parms_defx, void *, long);
  314. long (DLL_ENTRY_FPTR *_System _oss_encd_ulobjidp) (void *, _std_parms_defx, void *, long);
  315. long (DLL_ENTRY_FPTR *_System _oss_encd_uoctp) (void *, _std_parms_defx, void *, char, long);
  316. long (DLL_ENTRY_FPTR *_System _oss_encd_usobjidp) (void *, _std_parms_defx, void *, long);
  317. long (DLL_ENTRY_FPTR *_System _oss_encd_ustrp) (void *, _std_parms_defx, void *, char, long);
  318. long (DLL_ENTRY_FPTR *_System _oss_encd_utimep) (void *, _std_parms_defx, void *);
  319. long (DLL_ENTRY_FPTR *_System _oss_encd_vbitp) (void *, _std_parms_defx, void *, long, char);
  320. long (DLL_ENTRY_FPTR *_System _oss_encd_voctp) (void *, _std_parms_defx, void *, char, long);
  321. long (DLL_ENTRY_FPTR *_System _oss_encd_vstrp) (void *, _std_parms_defx, void *, char, long);
  322. short (DLL_ENTRY_FPTR *_System _oss_dec_sintp) (void *, _dstd_parms_defx);
  323. unsigned int (DLL_ENTRY_FPTR *_System _oss_dec_uiintp) (void *, _dstd_parms_defx);
  324. unsigned long (DLL_ENTRY_FPTR *_System _oss_dec_ulintp) (void *, _dstd_parms_defx);
  325. unsigned short (DLL_ENTRY_FPTR *_System _oss_dec_usintp)(void *, _dstd_parms_defx);
  326. void (DLL_ENTRY_FPTR *_System _oss_dec_aiobjid_ptrp) (void *, _dstd_parms_defx, char, void **, short);
  327. void (DLL_ENTRY_FPTR *_System _oss_dec_aiobjidp) (void *, _dstd_parms_defx, void *, short);
  328. void (DLL_ENTRY_FPTR *_System _oss_dec_alobjid_ptrp) (void *, _dstd_parms_defx, char, void **, short);
  329. void (DLL_ENTRY_FPTR *_System _oss_dec_alobjidp) (void *, _dstd_parms_defx, void *, short);
  330. void (DLL_ENTRY_FPTR *_System _oss_dec_asobjid_ptrp) (void *, _dstd_parms_defx, char, void **, short);
  331. void (DLL_ENTRY_FPTR *_System _oss_dec_asobjidp) (void *, _dstd_parms_defx, void *, short);
  332. void (DLL_ENTRY_FPTR *_System _oss_dec_crealp) (void *, _dstd_parms_defx, char, char **);
  333. void (DLL_ENTRY_FPTR *_System _oss_dec_frealp) (void *, _dstd_parms_defx, float *);
  334. void (DLL_ENTRY_FPTR *_System _oss_dec_gtimep) (void *, _dstd_parms_defx, void *);
  335. void (DLL_ENTRY_FPTR *_System _oss_dec_hintp) (void *, _dstd_parms_defx, char, void *);
  336. void (DLL_ENTRY_FPTR *_System _oss_dec_liobjidp) (void *, _dstd_parms_defx, char, void **, long);
  337. void (DLL_ENTRY_FPTR *_System _oss_dec_llobjidp) (void *, _dstd_parms_defx, char, void **, long);
  338. void (DLL_ENTRY_FPTR *_System _oss_dec_lsobjidp) (void *, _dstd_parms_defx, char, void **, long);
  339. void (DLL_ENTRY_FPTR *_System _oss_dec_mrealp) (void *, _dstd_parms_defx, char, void *);
  340. void (DLL_ENTRY_FPTR *_System _oss_dec_nstr_ptrp) (void *, _dstd_parms_defx, char, char **, long, char);
  341. void (DLL_ENTRY_FPTR *_System _oss_dec_nstrp) (void *, _dstd_parms_defx, char *, long, char);
  342. void (DLL_ENTRY_FPTR *_System _oss_dec_opentypep) (void *, _dstd_parms_defx, char, void *);
  343. void (DLL_ENTRY_FPTR *_System _oss_dec_pbitp) (void *, _dstd_parms_defx, void *, unsigned long, char, char);
  344. void (DLL_ENTRY_FPTR *_System _oss_dec_pstrp) (void *, _dstd_parms_defx, char *, long, char);
  345. void (DLL_ENTRY_FPTR *_System _oss_dec_realp) (void *, _dstd_parms_defx, double *);
  346. void (DLL_ENTRY_FPTR *_System _oss_dec_tagp) (void *, _sdstd_parms_defx, unsigned short *, char *);
  347. void (DLL_ENTRY_FPTR *_System _oss_dec_uanyp) (void *, _dstd_parms_defx, char, void *);
  348. void (DLL_ENTRY_FPTR *_System _oss_dec_ubitp) (void *, _dstd_parms_defx, char, void *, char, long, char);
  349. void (DLL_ENTRY_FPTR *_System _oss_dec_uiobjidp) (void *, _dstd_parms_defx, char, void *, short);
  350. void (DLL_ENTRY_FPTR *_System _oss_dec_ulobjidp) (void *, _dstd_parms_defx, char, void *, short);
  351. void (DLL_ENTRY_FPTR *_System _oss_dec_uoctp) (void *, _dstd_parms_defx, char, void *, char, long, char);
  352. void (DLL_ENTRY_FPTR *_System _oss_dec_usobjidp) (void *, _dstd_parms_defx, char, void *, short);
  353. void (DLL_ENTRY_FPTR *_System _oss_dec_ustrp) (void *, _dstd_parms_defx, char, void *, char, long, char);
  354. void (DLL_ENTRY_FPTR *_System _oss_dec_utimep) (void *, _dstd_parms_defx, void *);
  355. void (DLL_ENTRY_FPTR *_System _oss_dec_vbit_ptrp) (void *, _dstd_parms_defx, char, void **, long, char, char);
  356. void (DLL_ENTRY_FPTR *_System _oss_dec_vbitp) (void *, _dstd_parms_defx, void *, long, char, char);
  357. void (DLL_ENTRY_FPTR *_System _oss_dec_voct_ptrp) (void *, _dstd_parms_defx, char, void **, char, long, char);
  358. void (DLL_ENTRY_FPTR *_System _oss_dec_voctp) (void *, _dstd_parms_defx, void *, char, long, char);
  359. void (DLL_ENTRY_FPTR *_System _oss_dec_vstr_ptrp) (void *, _dstd_parms_defx, char, void **, char, long, char);
  360. void (DLL_ENTRY_FPTR *_System _oss_dec_vstrp) (void *, _dstd_parms_defx, void *, char, long, char);
  361. void (DLL_ENTRY_FPTR *_System _oss_enc_errorp) (void *, char, int, long);
  362. void (DLL_ENTRY_FPTR *_System _oss_enci_aiobjidp) (void *, _std_parms_defx, void *, short);
  363. void (DLL_ENTRY_FPTR *_System _oss_enci_alobjidp) (void *, _std_parms_defx, void *, short);
  364. void (DLL_ENTRY_FPTR *_System _oss_enci_asobjidp) (void *, _std_parms_defx, void *, short);
  365. void (DLL_ENTRY_FPTR *_System _oss_enci_boolp) (void *, _std_parms_defx, char);
  366. void (DLL_ENTRY_FPTR *_System _oss_enci_crealp) (void *, _std_parms_defx, char *);
  367. void (DLL_ENTRY_FPTR *_System _oss_enci_gtimep) (void *, _std_parms_defx, void *);
  368. void (DLL_ENTRY_FPTR *_System _oss_enci_intp) (void *, _std_parms_defx, LONG_LONG);
  369. void (DLL_ENTRY_FPTR *_System _oss_enci_lengthp) (void *, _std_parms_defx, unsigned long);
  370. void (DLL_ENTRY_FPTR *_System _oss_enci_liobjidp) (void *, _std_parms_defx, void *, long);
  371. void (DLL_ENTRY_FPTR *_System _oss_enci_llobjidp) (void *, _std_parms_defx, void *, long);
  372. void (DLL_ENTRY_FPTR *_System _oss_enci_lsobjidp) (void *, _std_parms_defx, void *, long);
  373. void (DLL_ENTRY_FPTR *_System _oss_enci_mrealp) (void *, _std_parms_defx, void *);
  374. void (DLL_ENTRY_FPTR *_System _oss_enci_nstrp) (void *, _std_parms_defx, char *, long);
  375. void (DLL_ENTRY_FPTR *_System _oss_enci_opentypep) (void *, _std_parms_defx, void *);
  376. void (DLL_ENTRY_FPTR *_System _oss_enci_pbitp) (void *, _std_parms_defx, void *, long);
  377. void (DLL_ENTRY_FPTR *_System _oss_enci_pstrp) (void *, _std_parms_defx, char *, long);
  378. void (DLL_ENTRY_FPTR *_System _oss_enci_realp) (void *, _std_parms_defx, double);
  379. void (DLL_ENTRY_FPTR *_System _oss_enci_tagp) (void *, _std_parms_defx, unsigned short, char);
  380. void (DLL_ENTRY_FPTR *_System _oss_enci_uanyp) (void *, _std_parms_defx, void *);
  381. void (DLL_ENTRY_FPTR *_System _oss_enci_ubitp) (void *, _std_parms_defx, void *, char, long);
  382. void (DLL_ENTRY_FPTR *_System _oss_enci_uintp) (void *, _std_parms_defx, ULONG_LONG);
  383. void (DLL_ENTRY_FPTR *_System _oss_enci_uiobjidp) (void *, _std_parms_defx, void *, long);
  384. void (DLL_ENTRY_FPTR *_System _oss_enci_ulobjidp) (void *, _std_parms_defx, void *, long);
  385. void (DLL_ENTRY_FPTR *_System _oss_enci_uoctp) (void *, _std_parms_defx, void *, char, long);
  386. void (DLL_ENTRY_FPTR *_System _oss_enci_usobjidp) (void *, _std_parms_defx, void *, long);
  387. void (DLL_ENTRY_FPTR *_System _oss_enci_ustrp) (void *, _std_parms_defx, void *, char, long);
  388. void (DLL_ENTRY_FPTR *_System _oss_enci_utimep) (void *, _std_parms_defx, void *);
  389. void (DLL_ENTRY_FPTR *_System _oss_enci_vbitp) (void *, _std_parms_defx, void *, long, char);
  390. void (DLL_ENTRY_FPTR *_System _oss_enci_voctp) (void *, _std_parms_defx, void *, char, long);
  391. void (DLL_ENTRY_FPTR *_System _oss_enci_vstrp) (void *, _std_parms_defx, void *, char, long);
  392. void (DLL_ENTRY_FPTR *_System _oss_free_crealp) (void *, char *);
  393. long (DLL_ENTRY_FPTR *_System _oss_encd_eobjidp) (void *, _std_parms_defx, void *, long);
  394. void (DLL_ENTRY_FPTR *_System _oss_dec_eobjidp) (void *, _dstd_parms_defx, char, void *, long);
  395. long (DLL_ENTRY_FPTR *_System _oss_write_bytes_dp) (void *, _std_parms_defx, unsigned char *, long);
  396. char (DLL_ENTRY_FPTR *_System _oss_not_dfltp) (void *, void *, void *, long, long, int);
  397. long (DLL_ENTRY_FPTR *_System _oss_encd_dubitp) (void *, _std_parms_defx, void *, char, long, char);
  398. long (DLL_ENTRY_FPTR *_System _oss_encd_dvbitp) (void *, _std_parms_defx, void *, long, char, char);
  399. #endif /* SOED */
  400. } BERTbl;
  401. typedef struct perTbl {
  402. int (DLL_ENTRY_FPTR *_System ossPerEncodep)(void *, int, void *, char **, long *, void *, unsigned, char *);
  403. int (DLL_ENTRY_FPTR *_System ossPerDecodep)(void *, int *, char **, long *, void **, long *, void *, unsigned, char *);
  404. #ifdef SOED
  405. int (DLL_ENTRY_FPTR *_System perEncodeOpenTypep)(void *, int,
  406. void *, void **, long *, void *, unsigned);
  407. int (DLL_ENTRY_FPTR *_System perDecodeOpenTypep)(void *, int *, void **,
  408. long *, void **, long *, void *, unsigned);
  409. void (DLL_ENTRY_FPTR *_System encode_PDUp)(void *, void *);
  410. void (DLL_ENTRY_FPTR *_System decode_PDUp)(void *, void *);
  411. void (DLL_ENTRY_FPTR *_System den_errorp)(void *, int, void *);
  412. void (DLL_ENTRY_FPTR *_System encode_lengthp)(void *, long, LONG_LONG, LONG_LONG);
  413. void (DLL_ENTRY_FPTR *_System debug_realp)(void *, char, unsigned char *, int, long);
  414. void (DLL_ENTRY_FPTR *_System debug_strp)(void *, unsigned char *, size_t);
  415. void (DLL_ENTRY_FPTR *_System append_to_field_listp)(void *, unsigned char *, LONG_LONG, int);
  416. int (DLL_ENTRY_FPTR *_System numbitsp)(long);
  417. void (DLL_ENTRY_FPTR *_System decode_lengthp)(void *, unsigned long *, unsigned long, unsigned long, unsigned short *);
  418. unsigned char (DLL_ENTRY_FPTR *_System get_octetp)(void *, unsigned short, char);
  419. void (DLL_ENTRY_FPTR *_System set_intp)(void *, unsigned char *, unsigned int, LONG_LONG, int);
  420. void (DLL_ENTRY_FPTR *_System set_uintp)(void *, unsigned char *, unsigned int, ULONG_LONG, int);
  421. LONG_LONG (DLL_ENTRY_FPTR *_System twos_comp_intp)(unsigned char *, int);
  422. void (DLL_ENTRY_FPTR *_System get_octetsp)(void *, unsigned char *, LONG_LONG, unsigned short, char);
  423. void (DLL_ENTRY_FPTR *_System encode_normally_small_numberp)(void *, ULONG_LONG, char);
  424. void (DLL_ENTRY_FPTR *_System decode_normally_small_numberp)(void *, LONG_LONG *, char);
  425. void (DLL_ENTRY_FPTR *_System add_fieldp)(void *, char *, int, int);
  426. void (DLL_ENTRY_FPTR *_System output_linep)(void *);
  427. unsigned char (DLL_ENTRY_FPTR *_System get_bitp)(void *, unsigned short, char);
  428. unsigned char *(DLL_ENTRY_FPTR *_System dswapOutp)(void *, void *, void **, size_t, char, char);
  429. void (DLL_ENTRY_FPTR *_System debug_objidp)(void *, unsigned char *, int, int, int);
  430. #else
  431. void (DLL_ENTRY_FPTR *_System _oss_penc_unconstr_intp)(void *, LONG_LONG);
  432. void (DLL_ENTRY_FPTR *_System _oss_penc_kmstrp) (void *, char *, ULONG_LONG, ULONG_LONG, ULONG_LONG, int, long, char);
  433. LONG_LONG (DLL_ENTRY_FPTR *_System _oss_pdec_unconstr_intp)(void *);
  434. void (DLL_ENTRY_FPTR *_System _oss_pdec_ub_kmstrp) (void *, void *, char **, int, ULONG_LONG, ULONG_LONG, int, long, char);
  435. void (DLL_ENTRY_FPTR *_System _oss_pdec_ntp_kmstrp) (void *, char **, ULONG_LONG, ULONG_LONG, int, long, char);
  436. void (DLL_ENTRY_FPTR *_System _oss_appendp) (void *, unsigned char *, unsigned long, int);
  437. void (DLL_ENTRY_FPTR *_System _oss_penc_unconstr_bitp)(void *, unsigned char *, ULONG_LONG, char);
  438. void (DLL_ENTRY_FPTR *_System _oss_penc_constr_bitp) (void *, unsigned char *, ULONG_LONG, ULONG_LONG, ULONG_LONG, char, char);
  439. void (DLL_ENTRY_FPTR *_System _oss_penc_unconstr_octp)(void *, unsigned char *, ULONG_LONG);
  440. void (DLL_ENTRY_FPTR *_System _oss_penc_constr_octp) (void *, unsigned char *, ULONG_LONG, ULONG_LONG, ULONG_LONG);
  441. void (DLL_ENTRY_FPTR *_System _oss_penc_link_objidsp) (void *, void *);
  442. void (DLL_ENTRY_FPTR *_System _oss_penc_objidsp) (void *, unsigned short *, unsigned long);
  443. void (DLL_ENTRY_FPTR *_System _oss_penc_link_objidlp) (void *, void *);
  444. void (DLL_ENTRY_FPTR *_System _oss_penc_objidlp) (void *, unsigned long *, unsigned long);
  445. void (DLL_ENTRY_FPTR *_System _oss_penc_link_objidip) (void *, void *);
  446. void (DLL_ENTRY_FPTR *_System _oss_penc_objidip) (void *, unsigned int *, unsigned long);
  447. void (DLL_ENTRY_FPTR *_System _oss_penc_nkmstrp) (void *, char *, ULONG_LONG);
  448. void (DLL_ENTRY_FPTR *_System _oss_penc_opentypep) (void *, void *);
  449. void (DLL_ENTRY_FPTR *_System _oss_penc_nonneg_intp) (void *, ULONG_LONG, ULONG_LONG);
  450. void (DLL_ENTRY_FPTR *_System _oss_penc_realp) (void *, double);
  451. void (DLL_ENTRY_FPTR *_System _oss_penc_uenump) (void *, unsigned long, void *, void *);
  452. unsigned long (DLL_ENTRY_FPTR *_System _oss_penc_lengthp)(void *, ULONG_LONG, ULONG_LONG, ULONG_LONG, char);
  453. void (DLL_ENTRY_FPTR *_System _oss_penc_gtimep) (void *, void *);
  454. void (DLL_ENTRY_FPTR *_System _oss_penc_utimep) (void *, void *);
  455. unsigned char (DLL_ENTRY_FPTR *_System _oss_get_bitp) (void *, int);
  456. void (DLL_ENTRY_FPTR *_System _oss_pdec_unconstr_ubitp)(void *, void *, unsigned char **, int);
  457. void (DLL_ENTRY_FPTR *_System _oss_pdec_constr_ubitp) (void *, void *, unsigned char **, int, ULONG_LONG, ULONG_LONG);
  458. void (DLL_ENTRY_FPTR *_System _oss_pdec_unconstr_vbit_ptrp)(void *, void **, int);
  459. void (DLL_ENTRY_FPTR *_System _oss_pdec_unconstr_vbitp)(void *, void *, unsigned char *, int, ULONG_LONG);
  460. void (DLL_ENTRY_FPTR *_System _oss_pdec_constr_voctp) (void *, void *, unsigned char *, int, ULONG_LONG, ULONG_LONG);
  461. void (DLL_ENTRY_FPTR *_System _oss_pdec_unconstr_uoctp)(void *, void *, unsigned char **, int);
  462. void (DLL_ENTRY_FPTR *_System _oss_pdec_unconstr_voct_ptrp)(void *, void **, int);
  463. void (DLL_ENTRY_FPTR *_System _oss_pdec_constr_uoctp) (void *, void *, unsigned char **value, int, ULONG_LONG, ULONG_LONG);
  464. void (DLL_ENTRY_FPTR *_System _oss_pdec_constr_vbitp) (void *, void *, unsigned char *, int, ULONG_LONG, ULONG_LONG);
  465. void (DLL_ENTRY_FPTR *_System _oss_pdec_link_objidsp) (void *, void **);
  466. void (DLL_ENTRY_FPTR *_System _oss_pdec_link_objidip) (void *, void **);
  467. void (DLL_ENTRY_FPTR *_System _oss_pdec_link_objidlp) (void *, void **);
  468. void (DLL_ENTRY_FPTR *_System _oss_pdec_uobjidsp) (void *, unsigned short **, unsigned short *);
  469. void (DLL_ENTRY_FPTR *_System _oss_pdec_uobjidip) (void *, unsigned int **, unsigned short *);
  470. void (DLL_ENTRY_FPTR *_System _oss_pdec_uobjidlp) (void *, unsigned long **, unsigned short *);
  471. void (DLL_ENTRY_FPTR *_System _oss_pdec_aobjidsp) (void *, unsigned short *, unsigned short *, unsigned short);
  472. void (DLL_ENTRY_FPTR *_System _oss_pdec_aobjidip) (void *, unsigned int *, unsigned short *, unsigned short);
  473. void (DLL_ENTRY_FPTR *_System _oss_pdec_aobjidlp) (void *, unsigned long *, unsigned short *, unsigned short);
  474. void (DLL_ENTRY_FPTR *_System _oss_pdec_aobjids_ptrp) (void *, void **);
  475. void (DLL_ENTRY_FPTR *_System _oss_pdec_aobjidi_ptrp) (void *, void **);
  476. void (DLL_ENTRY_FPTR *_System _oss_pdec_aobjidl_ptrp) (void *, void **);
  477. void (DLL_ENTRY_FPTR *_System _oss_pdec_ntp_nkmstrp) (void *, char **);
  478. void (DLL_ENTRY_FPTR *_System _oss_pdec_opentypep) (void *, void *);
  479. ULONG_LONG (DLL_ENTRY_FPTR *_System _oss_pdec_nonneg_intp)(void *, ULONG_LONG);
  480. void (DLL_ENTRY_FPTR *_System _oss_get_bitsp) (void *, unsigned char *, unsigned long, int);
  481. float (DLL_ENTRY_FPTR *_System _oss_pdec_frealp) (void *);
  482. double (DLL_ENTRY_FPTR *_System _oss_pdec_realp) (void *);
  483. unsigned long (DLL_ENTRY_FPTR *_System _oss_pdec_uenump)(void *, void *, void *);
  484. void (DLL_ENTRY_FPTR *_System _oss_pdec_lsofp) (void *, unsigned long *, ULONG_LONG, ULONG_LONG, unsigned char, char *);
  485. void (DLL_ENTRY_FPTR *_System _oss_pdec_usofp) (void *, unsigned long *, unsigned char **, int, long, ULONG_LONG, ULONG_LONG, unsigned char, char *);
  486. void (DLL_ENTRY_FPTR *_System _oss_pdec_asofp) (void *, unsigned long *, int, ULONG_LONG, ULONG_LONG, unsigned char, char *);
  487. void (DLL_ENTRY_FPTR *_System _oss_pdec_gtimep) (void *, void *);
  488. void (DLL_ENTRY_FPTR *_System _oss_pdec_utimep) (void *, void *);
  489. void (DLL_ENTRY_FPTR *_System _oss_pdec_asof_ptrp) (void *, void **, int, long, long, char *);
  490. void (DLL_ENTRY_FPTR *_System _oss_pdec_nt_kmstrp) (void *, void *, ULONG_LONG, ULONG_LONG, int, long, char);
  491. void (DLL_ENTRY_FPTR *_System _oss_pdec_va_kmstrp) (void *, void *, char *, int, ULONG_LONG, ULONG_LONG, int, long, char);
  492. void (DLL_ENTRY_FPTR *_System _oss_pdec_vap_kmstrp) (void *, void **, int, ULONG_LONG, ULONG_LONG, int, long, char);
  493. void (DLL_ENTRY_FPTR *_System _oss_pdec_pad_kmstrp) (void *, void *, ULONG_LONG, ULONG_LONG, int, long, char);
  494. void (DLL_ENTRY_FPTR *_System _oss_enc_errorp) (void *, char, int, long);
  495. double (DLL_ENTRY_FPTR *_System _oss_pdec_binrealp) (void *, unsigned char, long);
  496. void (DLL_ENTRY_FPTR *_System _oss_pdec_constr_bpbitp)(void *, unsigned char *, int, ULONG_LONG, ULONG_LONG);
  497. void (DLL_ENTRY_FPTR *_System _oss_pdec_constr_pbitp) (void *, void *, int, ULONG_LONG, ULONG_LONG);
  498. void (DLL_ENTRY_FPTR *_System _oss_pdec_constr_vbit_ptrp)(void *, void **, int, ULONG_LONG, ULONG_LONG);
  499. void (DLL_ENTRY_FPTR *_System _oss_pdec_constr_voct_ptrp)(void *, void **, int, ULONG_LONG, ULONG_LONG);
  500. unsigned long (DLL_ENTRY_FPTR *_System _oss_pdec_eapp)(void *, unsigned char **);
  501. void (DLL_ENTRY_FPTR *_System _oss_pdec_easp) (void *, unsigned char *, unsigned long, unsigned long);
  502. void (DLL_ENTRY_FPTR *_System _oss_pdec_chrrealp) (void *, unsigned char, long, double *, unsigned char *);
  503. long (DLL_ENTRY_FPTR *_System _oss_pdec_enump) (void *, void *, void *);
  504. ULONG_LONG (DLL_ENTRY_FPTR *_System _oss_pdec_indeflen_intp)(void *, ULONG_LONG);
  505. void (DLL_ENTRY_FPTR *_System _oss_pdec_nt_nkmstrp) (void *, char *, unsigned long);
  506. void (DLL_ENTRY_FPTR *_System _oss_pdec_bmpstrp) (void *, void *, unsigned short **, int, ULONG_LONG, ULONG_LONG, int, long, char);
  507. char *(DLL_ENTRY_FPTR *_System _oss_pdec_crealp) (void *);
  508. void (DLL_ENTRY_FPTR *_System _oss_pdec_pad_kmstr_ptrp)(void *, char **, ULONG_LONG, ULONG_LONG, int, long, char);
  509. void (DLL_ENTRY_FPTR *_System _oss_pdec_lengthp) (void *, unsigned long *, ULONG_LONG, ULONG_LONG, char *);
  510. MixedReal (DLL_ENTRY_FPTR *_System _oss_pdec_mrealp) (void *);
  511. void *(DLL_ENTRY_FPTR *_System _oss_pdec_popp) (void *);
  512. void *(DLL_ENTRY_FPTR *_System _oss_pdec_pushp) (void *);
  513. void (DLL_ENTRY_FPTR *_System _oss_pdec_uanyp) (void *, void *);
  514. #if INT_MAX == 2147483647
  515. void (DLL_ENTRY_FPTR *_System _oss_pdec_unistrp) (void *, void *, int **, int, ULONG_LONG, ULONG_LONG, int, long, char);
  516. void (DLL_ENTRY_FPTR *_System _oss_penc_unistrp) (void *, int *, ULONG_LONG, ULONG_LONG, ULONG_LONG, int, long, char);
  517. #else
  518. void (DLL_ENTRY_FPTR *_System _oss_pdec_unistrp) (void *, void *, long **, int, ULONG_LONG, ULONG_LONG, int, long, char);
  519. void (DLL_ENTRY_FPTR *_System _oss_penc_unistrp) (void *, long *, ULONG_LONG, ULONG_LONG, ULONG_LONG, int, long, char);
  520. #endif
  521. LONG_LONG (DLL_ENTRY_FPTR *_System _oss_pdec_semicon_intp)(void *, LONG_LONG);
  522. ULONG_LONG (DLL_ENTRY_FPTR *_System _oss_pdec_semicon_uintp)(void *, ULONG_LONG);
  523. ULONG_LONG (DLL_ENTRY_FPTR *_System _oss_pdec_small_intp)(void *);
  524. unsigned long (DLL_ENTRY_FPTR *_System _oss_pdec_small_lenp)(void *);
  525. long (DLL_ENTRY_FPTR *_System _oss_pdec_subidp) (void *, long, long, long *, long *);
  526. void (DLL_ENTRY_FPTR *_System _oss_pdec_ub_nkmstrp) (void *, void *, char **, int);
  527. void (DLL_ENTRY_FPTR *_System _oss_pdec_unconstr_bpbitp)(void *, unsigned char *, long);
  528. void (DLL_ENTRY_FPTR *_System _oss_pdec_unconstr_pbitp)(void *, void *, int);
  529. void (DLL_ENTRY_FPTR *_System _oss_pdec_unconstr_hugep)(void *, void *);
  530. void (DLL_ENTRY_FPTR *_System _oss_pdec_vap_nkmstrp) (void *, void **, int);
  531. void (DLL_ENTRY_FPTR *_System _oss_pdec_va_nkmstrp) (void *, void *, char *, int, unsigned long);
  532. void (DLL_ENTRY_FPTR *_System _oss_penc_constr_bpbitp) (void *, void *, ULONG_LONG, ULONG_LONG, char, char);
  533. void (DLL_ENTRY_FPTR *_System _oss_penc_constr_pbitp) (void *, ULONG_LONG, ULONG_LONG, ULONG_LONG, ULONG_LONG, char, char);
  534. void (DLL_ENTRY_FPTR *_System _oss_penc_crealp) (void *, char *);
  535. void (DLL_ENTRY_FPTR *_System _oss_penc_enump) (void *, long, void *, void *);
  536. void (DLL_ENTRY_FPTR *_System _oss_penc_indeflen_intp) (void *, ULONG_LONG, ULONG_LONG);
  537. void (DLL_ENTRY_FPTR *_System _oss_penc_mrealp) (void *, MixedReal);
  538. void *(DLL_ENTRY_FPTR *_System _oss_pop_globalp) (void *);
  539. void *(DLL_ENTRY_FPTR *_System _oss_push_globalp) (void *);
  540. void (DLL_ENTRY_FPTR *_System _oss_penc_semicon_intp) (void *, LONG_LONG, LONG_LONG);
  541. void (DLL_ENTRY_FPTR *_System _oss_penc_semicon_uintp) (void *, ULONG_LONG, ULONG_LONG);
  542. void (DLL_ENTRY_FPTR *_System _oss_penc_small_intp) (void *, ULONG_LONG);
  543. void (DLL_ENTRY_FPTR *_System _oss_penc_small_lenp) (void *, ULONG_LONG);
  544. void (DLL_ENTRY_FPTR *_System _oss_penc_subidp) (void *, int, unsigned long, unsigned long *);
  545. void (DLL_ENTRY_FPTR *_System _oss_penc_uanyp) (void *, void *);
  546. void (DLL_ENTRY_FPTR *_System _oss_penc_unconstr_hugep)(void *, void *);
  547. void (DLL_ENTRY_FPTR *_System _oss_penc_unconstr_pbitp)(void *, ULONG_LONG, ULONG_LONG, ULONG_LONG, char);
  548. void (DLL_ENTRY_FPTR *_System _oss_penc_semicon_hugep) (void *, void *, LONG_LONG);
  549. void (DLL_ENTRY_FPTR *_System _oss_pdec_semicon_hugep) (void *, void *, LONG_LONG);
  550. unsigned char (DLL_ENTRY_FPTR *_System _oss_get_octetp)(void *, int);
  551. void (DLL_ENTRY_FPTR *_System _oss_penc_eobjidp) (void *, void *, long);
  552. void (DLL_ENTRY_FPTR *_System _oss_pdec_eobjidp) (void *, void *, long);
  553. void (DLL_ENTRY_FPTR *_System _oss_free_crealp) (void *, char *);
  554. void (DLL_ENTRY_FPTR *_System _oss_pdec_sotp) (void *);
  555. #endif /* SOED */
  556. } PERTbl;
  557. typedef struct apiTbl {
  558. int (DLL_ENTRY_FPTR *_System ossSetEncodingRulesp)(void *, int);
  559. int (DLL_ENTRY_FPTR *_System ossGetEncodingRulesp)(void *);
  560. int (DLL_ENTRY_FPTR *_System ossSetRuntimeVersionp)(void *, int);
  561. int (DLL_ENTRY_FPTR *_System ossGetRuntimeVersionp)(void *);
  562. int (DLL_ENTRY_FPTR *_System ossSetCompatibilityFlagsp)(void *, unsigned long);
  563. unsigned long (DLL_ENTRY_FPTR *_System ossGetCompatibilityFlagsp)(void *);
  564. int (DLL_ENTRY_FPTR *_System encodep)(void *, int, void *, char **,
  565. long *, void *, unsigned, char *);
  566. int (DLL_ENTRY_FPTR *_System decodep)(void *, int *, char **, long *,
  567. void **, long *, void *, unsigned, char *);
  568. int (DLL_ENTRY_FPTR *_System ossSetDecodingLengthp)(void *, long);
  569. long (DLL_ENTRY_FPTR *_System ossGetDecodingLengthp)(void *);
  570. int (DLL_ENTRY_FPTR *_System ossSetEncodingFlagsp)(void *, unsigned long);
  571. int (DLL_ENTRY_FPTR *_System ossSetFlagsp)(void *, unsigned long);
  572. unsigned long (DLL_ENTRY_FPTR *_System ossGetEncodingFlagsp)(void *);
  573. int (DLL_ENTRY_FPTR *_System ossSetDecodingFlagsp)(void *, unsigned long);
  574. unsigned long (DLL_ENTRY_FPTR *_System ossGetDecodingFlagsp)(void *);
  575. char *(DLL_ENTRY_FPTR *_System ossGetErrMsgp)(void *world);
  576. void (DLL_ENTRY_FPTR *_System ossPrintHexp)(void *, char *, long);
  577. int (DLL_ENTRY_FPTR *_System ossEncodep)(void *, int, void *, void *);
  578. int (DLL_ENTRY_FPTR *_System ossDecodep)(void *, int *, void *, void **);
  579. int (DLL_ENTRY_FPTR *_System ossPrintPDUp)(void *, int, void *);
  580. int (DLL_ENTRY_FPTR *_System ossFreePDUp)(void *, int, void *);
  581. void (DLL_ENTRY_FPTR *_System ossFreeBufp)(void *, void *);
  582. int (DLL_ENTRY_FPTR *ossPrintWinp)(void *, const char *,
  583. ossArg, ossArg, ossArg, ossArg, ossArg,
  584. ossArg, ossArg, ossArg, ossArg, ossArg);
  585. int (DLL_ENTRY_FPTR *_System ossReadLinep)(void *, HWND, FILE *,
  586. char *, MEMBLOCK *, LONG);
  587. void (DLL_ENTRY_FPTR *_System ossFreeListp)(void *);
  588. void (DLL_ENTRY_FPTR *_System ossSaveTraceInfop)(void *, HWND, char *);
  589. void (DLL_ENTRY_FPTR *_System osstracep)(void *, void *p, size_t);
  590. int (DLL_ENTRY_FPTR *_System ossOpenTraceWindowp)(void *);
  591. int (DLL_ENTRY_FPTR *_System ossOpenTraceFilep)(void *, char *);
  592. int (DLL_ENTRY_FPTR *_System ossCloseTraceFilep)(void *);
  593. long (DLL_ENTRY_FPTR *_System ossDetermineEncodingLengthp)(void *,
  594. int, void *);
  595. int (DLL_ENTRY_FPTR *_System ossCallerIsDecoderp)(void *);
  596. void *(DLL_ENTRY_FPTR *_System ossMarkObjp)(void *, int, void *);
  597. void *(DLL_ENTRY_FPTR *_System ossUnmarkObjp)(void *, void *);
  598. void *(DLL_ENTRY_FPTR *_System ossGetObjp)(void *, void *);
  599. void *(DLL_ENTRY_FPTR *_System ossTestObjp)(void *, void *);
  600. void (DLL_ENTRY_FPTR *_System ossFreeObjectStackp)(void *);
  601. void (DLL_ENTRY_FPTR *_System ossSetTimeoutp)(void *, long);
  602. #ifndef SOED
  603. void (DLL_ENTRY_FPTR *_System ossMinitp)(void *);
  604. void *(DLL_ENTRY_FPTR *_System _oss_dec_getmemp)(void *, long, char);
  605. void *(DLL_ENTRY_FPTR *_System _oss_enc_getmemp)(void *, char);
  606. void *(DLL_ENTRY_FPTR *_System _oss_enc_popp)(void *);
  607. void (DLL_ENTRY_FPTR *_System _oss_enc_pushp)(void *, void *);
  608. void (DLL_ENTRY_FPTR *_System _oss_releaseMemp)(void *, void *);
  609. void (DLL_ENTRY_FPTR *_System _oss_freeMemp)(void *, void *);
  610. void (DLL_ENTRY_FPTR *_System _oss_freeGlobalsp)(void *);
  611. void (DLL_ENTRY_FPTR *_System _oss_freeDerBlocksp)(void *);
  612. void (DLL_ENTRY_FPTR *_System _oss_set_outmem_ip)(void *, long,
  613. long *, char **);
  614. void (DLL_ENTRY_FPTR *_System _oss_set_outmem_dp)(void *, long,
  615. long *, char **);
  616. void (DLL_ENTRY_FPTR *_System _oss_set_outmem_pp)(void *, long *, char **);
  617. void (DLL_ENTRY_FPTR *_System _oss_set_outmem_pbp)(void *, long *, char **, unsigned);
  618. void (DLL_ENTRY_FPTR *_System _oss_beginBlockp)(void *, long, char **, long *);
  619. void (DLL_ENTRY_FPTR *_System _oss_nextItemp)(void *, long *);
  620. void (DLL_ENTRY_FPTR *_System _oss_endBlockp)(void *, char **, long *, unsigned char);
  621. #endif /* !SOED */
  622. int api;
  623. } ApiTbl;
  624. typedef struct cpyvalTbl {
  625. int (DLL_ENTRY_FPTR *_System ossCpyValuep)(void *, int, void *, void **);
  626. } CpyValTbl;
  627. typedef struct cmpvalTbl {
  628. int (DLL_ENTRY_FPTR *_System ossCmpValuep)(void *, int, void *, void *);
  629. } CmpValTbl;
  630. typedef struct berrealTbl {
  631. long (DLL_ENTRY_FPTR *_System ossBerEncodeRealp)(void *, void *,
  632. unsigned char *);
  633. long (DLL_ENTRY_FPTR *_System ossBerDecodeRealp)(void *, void *,
  634. long, char);
  635. void (DLL_ENTRY_FPTR *_System ossPrintRealp)(void *, void *,
  636. unsigned char *);
  637. } BerRealTbl;
  638. typedef struct perrealTbl {
  639. void (DLL_ENTRY_FPTR *_System ossPerEncodeRealp)(void *, void *);
  640. void (DLL_ENTRY_FPTR *_System ossPerDecodeRealp)(void *, void *);
  641. void (DLL_ENTRY_FPTR *_System ossPrintRealp)(void *, void *,
  642. unsigned char *);
  643. } PerRealTbl;
  644. typedef struct perpdvTbl {
  645. void (DLL_ENTRY_FPTR *_System ossPerEncodePDVp)(void *, void *);
  646. void (DLL_ENTRY_FPTR *_System ossPerDecodePDVp)(void *, void *);
  647. } PerPDVTbl;
  648. typedef struct berpdvTbl {
  649. void (DLL_ENTRY_FPTR *_System ossBerEncodePDVp)(void *, void *);
  650. void (DLL_ENTRY_FPTR *_System ossBerDecodePDVp)(void *, void *);
  651. } BerPDVTbl;
  652. typedef struct oidTbl {
  653. int (DLL_ENTRY_FPTR *_System ossEncodedOidToAsnValp)(void *,
  654. const void *, void *);
  655. int (DLL_ENTRY_FPTR *_System ossEncodedOidToDotValp)(void *,
  656. const void *, void *);
  657. int (DLL_ENTRY_FPTR *_System ossAsnValToEncodedOidp)(void *,
  658. const char *, void *);
  659. int (DLL_ENTRY_FPTR *_System ossDotValToEncodedOidp)(void *,
  660. const char *, void *);
  661. } OidTbl;
  662. /*
  663. * The structure "WinParm" is used to store DLL-related information.
  664. */
  665. typedef struct functionTables {
  666. HWND hWnd; /* Handle of the window */
  667. LONG index; /* Current index into the file pointer array;
  668. * it indicates the number of lines written */
  669. MEMBLOCK *memBlock; /* Pointer to a current node of a memory
  670. * handling linked list of MEMBLOCKs */
  671. MEMBLOCK *startBlock; /* Pointer to the first node of a memory
  672. * handling linked list of MEMBLOCKs */
  673. short length; /* Length of a line that is written only
  674. * in part and no '\n' symbol was reached yet */
  675. short blockNumber; /* Current MEMBLOCK number */
  676. FILE *tmpfp; /* Temporary output file with tracing info */
  677. char tmpfn[16]; /* Temporary output file name */
  678. BOOL endSwitch; /* Indicates if a '\n' symbol was reached or
  679. * not when writing a tracing info file to
  680. * a window */
  681. BOOL conSwitch; /* If FALSE, the output goes to a console,
  682. * otherwise to a window */
  683. BOOL ossEncoderDecoderType; /* SOED vs. TOED */
  684. BOOL cstrainNeeded; /* If TRUE, constraint checking is needed */
  685. CstrainTbl *cstrainTbl; /* Constraint checker DLL function table */
  686. BERTbl *berTbl; /* BER & DER DLL function table */
  687. PERTbl *perTbl; /* PER DLL function table */
  688. ApiTbl *apiTbl; /* Spartan/basic API DLL function table */
  689. CpyValTbl *cpyvalTbl; /* Value copier DLL function table */
  690. CmpValTbl *cmpvalTbl; /* Value comparator DLL function table */
  691. BerRealTbl *berrealTbl; /* BER/DER encoder/decoder real DLL function
  692. * table */
  693. BerPDVTbl *berpdvTbl; /* PER encoder/decoder EMBEDDED PDV DLL
  694. * function table */
  695. PerRealTbl *perrealTbl; /* PER encoder/decoder real DLL function table */
  696. PerPDVTbl *perpdvTbl; /* BER encoder/decoder EMBEDDED PDV DLL
  697. * function table */
  698. OidTbl *oidTbl; /* OBJECT IDENTIFIER converter DLL
  699. * function table */
  700. HINSTANCE hBerDLL; /* Handle of BER/DER encoder/decoder DLL */
  701. HINSTANCE hPerDLL; /* Handle of PER DLL */
  702. HINSTANCE hCtlDLL; /* Handle of control table/code file DLL */
  703. HINSTANCE hMemDLL; /* Handle of memory manager DLL */
  704. HINSTANCE hCstrainDLL; /* Handle of constraint checker DLL */
  705. HINSTANCE hApiDLL; /* Handle of Spartan/basic API DLL */
  706. HINSTANCE hCpyvalDLL; /* Handle of value copier DLL */
  707. HINSTANCE hCmpvalDLL; /* Handle of value comparator DLL */
  708. HINSTANCE hBerrealDLL; /* Handle of BER/DER encoder/decoder real DLL */
  709. HINSTANCE hBerpdvDLL; /* Handle of BER encoder/decoder EMBEDDED PDV
  710. * DLL */
  711. HINSTANCE hPerrealDLL; /* Handle of PER encoder/decoder real DLL */
  712. HINSTANCE hPerpdvDLL; /* Handle of PER encoder/decoder EMBEDDED PDV
  713. * DLL */
  714. HINSTANCE hOidDLL; /* Handle of OBJID converter DLL */
  715. MemManagerTbl *memMgrTbl; /* Memory manager DLL function table */
  716. void *reserved[10]; /* Reserved for possible future use */
  717. } FunctionTables;
  718. #if defined(_WINDOWS) && !defined(_WIN32) && !defined(WIN32)
  719. #define GWL_USERDATA 0
  720. #endif /* _WINDOWS && !_WIN32 && !WIN32 */
  721. extern void *ctl_tbl;
  722. #elif !defined(DLL_ENTRY)
  723. #include <stdarg.h>
  724. #if defined(_WIN32) || defined(WIN32)
  725. #include <windows.h>
  726. #define DLL_ENTRY WINAPI
  727. #define DLL_ENTRY_FDEF WINAPI
  728. #define DLL_ENTRY_FPTR WINAPI
  729. #else
  730. #define DLL_ENTRY
  731. #define DLL_ENTRY_FDEF
  732. #define DLL_ENTRY_FPTR
  733. #define PUBLIC
  734. #endif /* _WIN32 || WIN32 */
  735. #undef _System
  736. #define _System
  737. #endif /* _WINDOWS || _WIN32 || __OS2__ || NETWARE_DLL */
  738. #if defined(_MSC_VER) && (defined(_WIN32) || defined(WIN32))
  739. #pragma pack(pop, ossPacking)
  740. #elif defined(_MSC_VER) && (defined(_WINDOWS) || defined(_MSDOS))
  741. #pragma pack()
  742. #elif defined(__BORLANDC__) && (defined(__WIN32__) || defined(__MSDOS__))
  743. #pragma option -a.
  744. #elif defined(__IBMC__)
  745. #pragma pack()
  746. #elif defined(__WATCOMC__)
  747. #pragma pack(pop)
  748. #endif /* _MSC_VER && _WIN32 */
  749. #ifdef __cplusplus
  750. }
  751. #endif /* __cplusplus */
  752. #endif /* OSSDLL_H */