home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Source Code 1993 July / THE_SOURCE_CODE_CD_ROM.iso / bsd_srcs / contrib / usr.x25 / h / x29.h next >
Encoding:
C/C++ Source or Header  |  1988-04-13  |  2.5 KB  |  88 lines

  1. /* ---------------------------------------------------------------------
  2.  
  3.       X.29 Manifest Constants
  4.  
  5.    --------------------------------------------------------------------- */
  6.  
  7. /* Message types for level-1 messages. */
  8.  
  9. #define X29_SET_PARMS               2     /* Host to Pad */
  10. #define X29_READ_PARMS              4     /* Host to Pad */
  11. #define X29_SET_AND_READ_PARMS      6     /* Host to Pad */
  12. #define X29_INVITATION_TO_CLEAR     1     /* Host to Pad */
  13. #define X29_PARAMETER_INDICATION    0     /* Pad to Host */
  14. #define X29_INDICATION_OF_BREAK     3     /* Both directions */
  15. #define X29_ERROR                   5     /* Pad to Host */
  16.  
  17. /* Parameter code definitions as per CCITT 1978 recommendation */
  18.  
  19. #define X29_NATIONAL_PARAMETER_MARKER    0
  20. #define X29_ESCAPE_TO_CMD_CODE        1
  21. #define X29_ECHO_CODE            2
  22. #define X29_FORWARDING_SIGNAL_CODE    3
  23. #define X29_IDLE_TIMER_CODE        4
  24. #define X29_AUX_DEV_CONTROL_CODE    5
  25. #define X29_RECEIVE_NET_MSGS_CODE    6
  26. #define X29_BREAK_PROCEDURE_CODE    7
  27. #define X29_DISCARD_OUTPUT_CODE        8
  28. #define X29_PADDING_CODE        9
  29. #define X29_LINE_FOLDING_CODE        10
  30. #define X29_TRANSMISSION_SPEED_CODE    11
  31. #define X29_XON_XOFF_CODE        12
  32.  
  33. /* PAD parameters specific to 1980 CCITT X.3 recommendation */
  34.  
  35. #define X29_LF_AFTER_CR            13
  36. #define X29_PADDING_AFTER_LF        14
  37. #define X29_EDITING            15
  38. #define X29_CHARACTER_DELETE        16
  39. #define X29_LINE_DELETE            17
  40. #define X29_LINE_DISPLAY        18
  41.  
  42. #define NX29_1978_PARMS        12    /* # of parameters in 1978 spec */
  43. #define NX29_1980_PARMS        18    /* # of parameters in 1980 spec */
  44. #define NX29_PARMS        18    /* # of parameters from any spec */
  45.  
  46. #define PACKET_SIZE        512    /* maximum network packet size */
  47.  
  48. /*
  49.  * Standard ITI call protocol type.
  50.  * This should really be extracted from /etc/services
  51.  * but since it is not likely to ever change we define
  52.  * it here to save cpu cycles.
  53.  */
  54.  
  55. #define ITI_CALL    1
  56.  
  57. struct    x25packet {
  58.     u_char    p_x25flag;    /* flag byte, either M_BIT or Q_BIT */
  59. #define Q_BIT            0x80
  60. #define M_BIT            0x40
  61.     u_char    p_x25data[PACKET_SIZE];    /* actual size varies */
  62. };
  63.  
  64. /*
  65.  * structure of x.29 parameter entry
  66.  */
  67.  
  68. struct    x29param {
  69.     u_char    x29_pnum;    /* x29 parameter number */
  70.     u_char    x29_value;    /* parameter value */
  71. };
  72.  
  73. struct    x29packet {
  74.     u_char    p_x29flag;    /* flag byte, either M_BIT or Q_BIT */
  75.     u_char    p_x29code;    /* message type */
  76.     union    {
  77.         struct    x29param x29paramlist[NX29_PARMS];
  78.         struct    {
  79.             u_char    x29errno;
  80.             u_char    x29mtype;
  81.         } x29error;
  82.     } x29_un;
  83. };
  84.  
  85. #define p_x29param    x29_un.x29paramlist
  86. #define p_x29errno    x29_un.x29error.x29errno
  87. #define p_x29mtype    x29_un.x29error.x29mtype
  88.