home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 15 / 15.iso / s / s038 / 10.ddi / 017.LIF / CQDATAL.H < prev    next >
Encoding:
C/C++ Source or Header  |  1992-07-02  |  6.3 KB  |  221 lines

  1. /*
  2.  * cqdatalink.h
  3.  *
  4.  * iRMX-NET/iNA 960/iTP4 Datalink Layer CQ_COMM_RB Request Block Interface
  5.  */
  6.  
  7. #ifndef _cqdatalink_
  8. #define _cqdatalink_
  9.  
  10. #ifndef _cqcommon_
  11. #include "cqcommon.h"
  12. #endif
  13.  
  14. /*
  15.  * Datalink Layer Opcodes
  16.  */
  17.  
  18. /* EDL Commands */
  19.  
  20. #define CONNECT    (unsigned char)0x82
  21. #define DISCONNECT (unsigned char)0x83
  22. #define TRANSMIT   (unsigned char)0x84
  23. #define POST_RPD   (unsigned char)0x85
  24. #define CONFIGURE  (unsigned char)0x88
  25. #define IA_SETUP   (unsigned char)0x89
  26. #define MC_ADD     (unsigned char)0x87
  27. #define MC_REMOVE  (unsigned char)0x8A
  28. #define ENTER_RING (unsigned char)0x8B
  29. #define EXIT_RING  (unsigned char)0x8C
  30.  
  31. /* RAWEDL Commands */
  32.  
  33. #define RAW_POST_RECEIVE (unsigned char)0x7F
  34. #define RAW_TRANSMIT     (unsigned char)0x7E
  35. #define FLUSH            (unsigned char)0x81
  36. #define READ_CLOCK       (unsigned char)0x80
  37.  
  38. /*
  39.  * Datalink Layer Response Codes
  40.  */
  41.  
  42. #ifndef OK_RESPONSE
  43. #define OK_RESPONSE        (unsigned short)0x01
  44. #endif
  45. #define OK_EOP_RESPONSE    (unsigned short)0x03
  46. #define E_ERROR            (unsigned short)0x00
  47. #define E_CONFIG_COUNT     (unsigned short)0x02
  48. #define E_INSUFF_RCV_BUF   (unsigned short)0x04
  49. #define E_TX_SIZE_EXCEEDED (unsigned short)0x06
  50. #define E_OPCODE           (unsigned short)0x08
  51. #define E_LSAP_NOT_EXIST   (unsigned short)0x0A
  52. #define E_SUBSYSTEM        (unsigned short)0x0C
  53. #define E_ADDR_COUNT       (unsigned short)0x0E
  54. #define E_NOT_OK           (unsigned short)0x10
  55. #define E_MC_NOT_EXIST     (unsigned short)0x12
  56. #define E_BUFFER_COUNT     (unsigned short)0x14
  57. #define E_NO_RESOURCES     (unsigned short)0x16
  58. #define E_ZERO_LSAP        (unsigned short)0x18
  59.  
  60. /*
  61.  *  Datalink Layer RB Structures.
  62.  */
  63.  
  64. #pragma noalign (connect_rb)
  65. typedef struct connect_rb {
  66.        RB_COMMON         header;
  67.        unsigned char     lsap_sel;
  68.        unsigned char     reserved;
  69.        unsigned char     port;
  70. } CONNECT_RB;
  71.  
  72. #pragma noalign (disconnect_rb)
  73. typedef struct disconnect_rb {
  74.        RB_COMMON         header;
  75.        unsigned char     lsap_sel;
  76.        unsigned char     reserved;
  77. } DISCONNECT_RB;
  78.  
  79. #pragma noalign (transmit_rb)
  80. typedef struct transmit_rb {
  81.        RB_COMMON         header;
  82.        unsigned short    reserved;
  83.        unsigned short    buf_count;
  84.        unsigned short    byte_count[4];
  85.        unsigned long     buf_loc[4];
  86.        unsigned long     dest_addr_ptr;
  87. } TRANSMIT_RB;
  88.  
  89. #pragma noalign (first_transmit_buffer)
  90. typedef struct first_transmit_buffer {
  91.        unsigned char     destination_lsap_selector;
  92.        unsigned char     source_lsap_selector;
  93.        unsigned char     iso_cmd;
  94.        unsigned char     data[1];
  95. } FIRST_TRANSMIT_BUFFER;
  96.  
  97. #pragma noalign (next_transmit_buffer)
  98. typedef struct next_transmit_buffer {
  99.        unsigned char     data[1];
  100. } NEXT_TRANSMIT_BUFFER;
  101.  
  102. #pragma noalign (post_rpd_rb)
  103. typedef struct post_rpd_rb {
  104.        RB_COMMON         header;
  105.        unsigned char     lsap_selector;
  106.        unsigned char     reserved;
  107.        unsigned short    buf_count;
  108.        unsigned short    return_count;
  109.        unsigned short    byte_count[4];
  110.        unsigned long     buf_loc[4];
  111. } POST_RPD_RB;
  112.  
  113. #pragma noalign (first_receive_buffer)
  114. typedef struct first_receive_buffer {
  115.        unsigned char     destination_addr[6];
  116.        unsigned char     source_addr[6];
  117.        unsigned short    information_len;
  118.        unsigned char     destination_lsap_selector;
  119.        unsigned char     source_lsap_selector;
  120.        unsigned char     iso_cmd;
  121.        unsigned char     data[1];
  122. } FIRST_RECEIVE_BUFFER;
  123.  
  124. #pragma noalign (next_receive_buffer)
  125. typedef struct next_receive_buffer {
  126.        unsigned char     data[1];
  127. } NEXT_RECEIVE_BUFFER;
  128.  
  129. #pragma noalign (configure_rb)
  130. typedef struct configure_rb {
  131.        RB_COMMON         header;
  132.        unsigned short    reserved;
  133.        unsigned short    count;
  134.        unsigned char     configure[12];
  135. } CONFIGURE_RB;
  136.  
  137. #pragma noalign (ia_setup_rb)
  138. typedef struct ia_setup_rb {
  139.        RB_COMMON         header;
  140.        unsigned short    reserved;
  141.        unsigned short    count;
  142.        unsigned char     address[6];
  143. } IA_SETUP_RB;
  144.  
  145. #pragma noalign (mc_add_rb)
  146. typedef struct mc_add_rb {
  147.        RB_COMMON         header;
  148.        unsigned short    reserved;
  149.        unsigned short    count;
  150.        unsigned char     mc_address[6];
  151. } MC_ADD_RB;
  152.  
  153. #pragma noalign (mc_remove_rb)
  154. typedef struct mc_remove_rb {
  155.        RB_COMMON         header;
  156.        unsigned short    reserved;
  157.        unsigned short    count;
  158.        unsigned char     mc_address[6];
  159. } MC_REMOVE_RB;
  160.  
  161. #pragma noalign (enter_ring_rb)
  162. typedef struct enter_ring_rb {
  163.        RB_COMMON         header;
  164.        unsigned short    reserved;
  165. } ENTER_RING_RB;
  166.  
  167. #pragma noalign (exit_ring_rb)
  168. typedef struct exit_ring_rb {
  169.        RB_COMMON         header;
  170.        unsigned short    reserved;
  171. } EXIT_RING_RB;
  172.  
  173. #pragma noalign (raw_post_recieve_rb)
  174. typedef struct raw_post_receive_rb {
  175.        RB_COMMON         header;
  176.        unsigned char     lsap_selector;
  177.        unsigned char     reserved;
  178.        unsigned short    num_blks;
  179.        unsigned short    filled_length;
  180.        unsigned short    buffer_length;
  181.        unsigned short    max_copy_len;
  182.        unsigned short    max_frames;
  183.        unsigned short    actual_frames;
  184.        unsigned long     buffer_ptr;
  185. } RAW_POST_RECEIVE_RB;
  186.  
  187. #pragma noalign (frame_header)
  188. typedef struct frame_header {
  189.        unsigned short    record_length;
  190.        unsigned long     time_stamp;
  191.        unsigned short    lost_count;
  192.        unsigned char     dest_address[6];
  193.        unsigned char     src_address[6];
  194.        unsigned short    len_or_type;
  195.        unsigned char     frame_data[1];
  196. } FRAME_HEADER;
  197.  
  198. #pragma noalign (raw_transmit_rb)
  199. typedef struct raw_transmit_rb {
  200.        RB_COMMON         header;
  201.        unsigned short    reserved;
  202.        unsigned short    len_or_type;
  203.        unsigned char     src_addr[6];
  204.        unsigned short    buf_cnt;
  205.        unsigned long     buffer_ptr;
  206.        unsigned long     dst_addr_ptr;
  207. } RAW_TRANSMIT_RB;
  208.  
  209. #pragma noalign (flush_rb)
  210. typedef struct flush_rb {
  211.        RB_COMMON         header;
  212. } FLUSH_RB;
  213.  
  214. #pragma noalign (read_clock_rb)
  215. typedef struct read_clock_rb {
  216.        RB_COMMON         header;
  217.        unsigned long     timer_val;
  218. } READ_CLOCK_RB;
  219.  
  220. #endif
  221.