home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Professional / OS2PRO194.ISO / os2 / prgramer / pascal2c / iodecl.h < prev    next >
C/C++ Source or Header  |  1992-08-03  |  6KB  |  267 lines

  1. /* Header for module IODECLARATIONS, generated by p2c */
  2. #ifndef IODECLARATIONS_H
  3. #define IODECLARATIONS_H
  4.  
  5.  
  6.  
  7. #ifndef SYSGLOBALS_H
  8. #include <sysgloba.h>
  9. #endif
  10.  
  11.  
  12.  
  13. #ifdef IODECLARATIONS_G
  14. # define vextern
  15. #else
  16. # define vextern extern
  17. #endif
  18.  
  19.  
  20.  
  21. #define P_iominisc      0
  22. #define P_iomaxisc      31
  23. #define P_minrealisc    7
  24. #define P_maxrealisc    31
  25.  
  26. #define io_line_feed    '\n'
  27. #define io_carriage_rtn '\015'
  28.  
  29. #define P_ioescapecode  (-26)
  30. #define ioe_no_error    0
  31. #define ioe_no_card     1
  32. #define ioe_not_hpib    2
  33. #define ioe_not_act     3
  34. #define ioe_not_dvc     4
  35. #define ioe_no_space    5
  36. #define ioe_no_data     6
  37. #define ioe_bad_tfr     7
  38. #define ioe_isc_busy    8
  39. #define ioe_buf_busy    9
  40. #define ioe_bad_cnt     10
  41. #define ioe_bad_tmo     11
  42. #define ioe_no_driver   12
  43. #define ioe_no_dma      13
  44. #define ioe_no_word     14
  45. #define ioe_not_talk    15
  46. #define ioe_not_lstn    16
  47. #define ioe_timeout     17
  48. #define ioe_not_sctl    18
  49. #define ioe_rds_wtc     19
  50. #define ioe_bad_sct     20
  51. #define ioe_crd_dwn     21
  52. #define ioe_eod_seen    22
  53. #define ioe_misc        23
  54. #define ioe_sr_toomany  304
  55. #define ioe_dc_fail     306
  56. #define ioe_dc_usart    313
  57. #define ioe_dc_ovfl     314
  58. #define ioe_dc_clk      315
  59. #define ioe_dc_cts      316
  60. #define ioe_dc_car      317
  61. #define ioe_dc_act      318
  62. #define ioe_dc_conn     319
  63. #define ioe_dc_conf     325
  64. #define ioe_dc_reg      326
  65. #define ioe_dc_rval     327
  66. #define ioe_sr_fail     353
  67. #define no_isc          255
  68.  
  69. #define gtl_message     '\001'
  70. #define sdc_message     '\004'
  71. #define ppc_message     '\005'
  72. #define get_message     '\b'
  73. #define tct_message     '\t'
  74. #define llo_message     '\021'
  75. #define dcl_message     '\024'
  76. #define ppu_message     '\025'
  77. #define spe_message     '\030'
  78. #define spd_message     '\031'
  79. #define unl_message     '?'
  80. #define unt_message     '_'
  81. #define ppe_message     '`'
  82. #define ppd_message     'p'
  83.  
  84. #define talk_constant   64
  85. #define listen_constant 32
  86. #define no_card         0
  87. #define other_card      1
  88. #define system_card     2
  89. #define hpib_card       3
  90. #define gpio_card       4
  91. #define serial_card     5
  92. #define graphics_card   6
  93. #define srm_card        7
  94. #define bubble_card     8
  95. #define eprom_prgmr     9
  96. #define hp98628_dsndl   (-7)
  97. #define P_hp98629       (-6)
  98. #define hp_datacomm     (-5)
  99. #define P_hp98620       (-4)
  100. #define internal_kbd    (-3)
  101. #define internal_crt    (-2)
  102. #define internal_hpib   (-1)
  103. #define no_id           0
  104. #define P_hp98624       1
  105. #define P_hp98626       2
  106. #define P_hp98622       3
  107. #define P_hp98623       4
  108. #define P_hp98625       8
  109. #define hp98628_async   20
  110. #define P_hpGATOR       25
  111. #define P_hp98253       27
  112. #define P_hp98627       28
  113. #define P_hp98259       30
  114. #define P_hp98644       66
  115.  
  116.  
  117.  
  118. typedef enum {
  119.     ren_line, ifc_line, srq_line, eoi_line, nrfd_line, ndac_line, dav_line,
  120.     atn_line
  121. } type_hpib_line;
  122.  
  123. typedef enum {
  124.     no_parity, odd_parity, even_parity, zero_parity, one_parity
  125. } type_parity;
  126.  
  127. typedef enum {
  128.     rts_line, cts_line, dcd_line, dsr_line, drs_line, ri_line, dtr_line
  129. } type_serial_line;
  130.  
  131. typedef struct drv_table_type {
  132.     _PROCEDURE iod_init;
  133.     _PROCEDURE iod_isr;
  134.     _PROCEDURE iod_rdb;
  135.     _PROCEDURE iod_wtb;
  136.     _PROCEDURE iod_rdw;
  137.     _PROCEDURE iod_wtw;
  138.     _PROCEDURE iod_rds;
  139.     _PROCEDURE iod_wtc;
  140.     _PROCEDURE iod_end;
  141.     _PROCEDURE iod_tfr;
  142.     _PROCEDURE iod_send;
  143.     _PROCEDURE iod_ppoll;
  144.     _PROCEDURE iod_set, iod_clr;
  145.     _PROCEDURE iod_test;
  146. } drv_table_type;
  147.  
  148. typedef union io_funny_proc {
  149.     _PROCEDURE real_proc;
  150.     struct {
  151.     Anyptr *dummy_pr, *dummy_sl;
  152.     } U0;
  153. } io_funny_proc;
  154.  
  155. typedef struct io_temp_type {
  156.     isrib myisrib;
  157.     io_funny_proc user_isr;
  158.     Anyptr *user_parm, *card_addr, *in_bufptr, *out_bufptr;
  159.     Char eirbyte;
  160.     uchar my_isc;
  161.     long timeout;
  162.     short addressed;
  163.     Char drv_misc[32];
  164. } io_temp_type;
  165.  
  166. typedef struct io_temp_type2 {
  167.     isrib myisrib;
  168.     io_funny_proc user_isr;
  169.     Anyptr *user_parm, *card_addr, *in_bufptr, *out_bufptr;
  170.     Char eirbyte;
  171.     uchar my_isc;
  172.     long timeout;
  173.     short addressed;
  174.     Char drv_misc[128];
  175. } io_temp_type2;
  176.  
  177. typedef struct io_temp_type3 {
  178.     isrib myisrib;
  179.     io_funny_proc user_isr;
  180.     Anyptr *user_parm, *card_addr, *in_bufptr, *out_bufptr;
  181.     Char eirbyte;
  182.     uchar my_isc;
  183.     long timeout;
  184.     short addressed;
  185.     Char drv_misc[160];
  186. } io_temp_type3;
  187.  
  188. typedef struct io_temp_type4 {
  189.     isrib myisrib;
  190.     io_funny_proc user_isr;
  191.     Anyptr *user_parm, *card_addr, *in_bufptr, *out_bufptr;
  192.     Char eirbyte;
  193.     uchar my_isc;
  194.     long timeout;
  195.     short addressed;
  196.     Char drv_misc[164];
  197. } io_temp_type4;
  198.  
  199. typedef struct isc_table_type {
  200.     drv_table_type *io_drv_ptr;
  201.     io_temp_type *io_tmp_ptr;
  202.     short card_type;
  203.     long user_time;
  204.     short card_id;
  205.     Anyptr *card_ptr;
  206. } isc_table_type;
  207.  
  208. typedef enum {
  209.     dummy_tfr_1, serial_DMA, serial_FHS, serial_FASTEST, dummy_tfr_2,
  210.     overlap_INTR, overlap_DMA, overlap_FHS, overlap_FASTEST, P_OVERLAP
  211. } user_tfr_type;
  212.  
  213. typedef enum {
  214.     no_tfr, INTR_tfr, DMA_tfr, BURST_tfr, FHS_tfr
  215. } actual_tfr_type;
  216.  
  217. typedef enum {
  218.     to_memory, from_memory
  219. } dir_of_tfr;
  220.  
  221. typedef Char buf_type[];
  222.  
  223. typedef struct buf_info_type {
  224.     io_temp_type *drv_tmp_ptr;
  225.     uchar active_isc;
  226.     actual_tfr_type act_tfr;
  227.     user_tfr_type usr_tfr;
  228.     boolean b_w_mode, end_mode;
  229.     dir_of_tfr direction;
  230.     short term_char;
  231.     long term_count;
  232.     Char *buf_ptr;
  233.     long buf_size;
  234.     Anyptr *buf_empty, *buf_fill;
  235.     io_funny_proc eot_proc;
  236.     Anyptr *eot_parm;
  237.     boolean dma_priority;
  238. } buf_info_type;
  239.  
  240.  
  241.  
  242. vextern io_funny_proc dma_ch_0;
  243. vextern uchar dma_isc_0;
  244. vextern io_funny_proc dma_ch_1;
  245. vextern uchar dma_isc_1;
  246. vextern isrib dma_isrib0, dma_isrib1;
  247. vextern boolean dma_here;
  248. vextern Char io_work_char;
  249. vextern long ioe_result, ioe_isc;
  250. vextern isc_table_type isc_table[P_iomaxisc - P_iominisc + 1];
  251. vextern Char io_revid[97];
  252. vextern _PROCEDURE io_error_link;
  253.  
  254.  
  255.  
  256. extern Void io_escape PP((long my_code, long select_code));
  257. extern uchar io_find_isc PP((Anyptr *iod_temp));
  258.  
  259.  
  260.  
  261. #undef vextern
  262.  
  263. #endif /*IODECLARATIONS_H*/
  264.  
  265. /* End. */
  266.  
  267.