home *** CD-ROM | disk | FTP | other *** search
/ minnie.tuhs.org / unixen.tar / unixen / PDP-11 / Trees / V7 / usr / sys / h / pk.h < prev    next >
Encoding:
C/C++ Source or Header  |  1998-02-03  |  2.8 KB  |  151 lines

  1. /*
  2.  * six-byte packet header for asynch lines.
  3.  * headers for other devices take up the same
  4.  * or less space.  If this changes the header
  5.  * struct will have to become a union.
  6.  */
  7. struct header {
  8.     char    sync;        /* sync byte */
  9.     char    ksize;        /* encoded packet size */
  10.     unsigned short sum;    /* block check of data packet */
  11.     char    cntl;        /* control byte */
  12.     char    ccntl;        /* block check of header */
  13. };
  14. #define    HDRSIZ    6
  15.  
  16. /*
  17.  * Control structure for a packet driver connection.
  18.  */
  19. struct pack {
  20.     short    p_state;    /* line state */
  21.     short    p_bits;        /* mask for getepack */
  22.     short    p_rsize;    /* input packet size */
  23.     short    p_xsize;    /* output packet size */
  24.     struct    header p_ihbuf;    /* input header */
  25.     struct    header p_ohbuf; /* output header */
  26.     char    *p_rptr;
  27.     char    p_mode;
  28.     char    **p_ipool;    /* head link to input buffer pool */
  29.     char    **p_io;        /* input buffer given to driver */
  30.     char    p_xcount;    /* # active output buffers */
  31.     char    p_rcount;
  32.     char    p_nout,p_tout;
  33.     char    p_lpsize;    /* log(psize/32) */
  34.     char    p_timer;
  35.     char    p_obusy;
  36.     char    p_srxmit;
  37.     char    p_rwindow;    /* window size */
  38.     char    p_swindow;
  39.     char    p_msg;        /* control msg */
  40.     char    p_rmsg;        /* repeated control msg */
  41.     char    p_ps,p_pr;    /* last packet sent, recv'd */
  42.     char    p_rpr;        /* copy of remote pr */
  43.     char    p_nxtps;    /* next output seq number */
  44.     char    p_imap;        /* bit map of input buffers */
  45.     char    p_pscopy;    /* newest output packet */
  46.     char    *p_ob[8];    /* output buffers */
  47.     char    *p_ib[8];    /* input buffers */
  48.     char    p_os[8];    /* output buffer status */
  49.     char    p_is[8];    /* input buffer status */
  50.     short    p_osum[8];    /* output checksums */
  51.     short    p_isum[8];    /* input checksums */
  52.     DSYSTEM;
  53. };
  54. #define    CHECK    0125252
  55. #define    SYN    020
  56. #define    MOD8    7
  57. #define    NOTCNTL(a)    (a & 0300)
  58. #define    MIN(a,b)    ((a<b)? a:b)
  59.  
  60. char    next[8];
  61. char    mask[8];
  62. int    npbits;
  63. int    pkactive;
  64. int    pkzot;
  65. int    pkdisc;
  66.  
  67. /*
  68.  * driver state
  69.  */
  70. #define    DEAD    0
  71. #define    INITa    1
  72. #define    INITb    2
  73. #define    INITab    3
  74. #define    LIVE    010
  75. #define    RXMIT    020
  76. #define    RREJ    040
  77. #define PDEBUG    0200
  78. #define    DRAINO    0400
  79. #define    WAITO    01000
  80. #define    DOWN    02000
  81. #define    RCLOSE    04000
  82. #define    BADFRAME 020000
  83.  
  84. /*
  85.  * modes
  86.  */
  87. #define    SLOWMODE    0100
  88. /*
  89.  * io buffer states
  90.  */
  91. #define    B_NULL    0
  92. #define    B_READY    1
  93. #define    B_SENT    2
  94. #define    B_RESID    010
  95. #define    B_COPY    020
  96. #define    B_MARK    040
  97. #define    B_SHORT    0100
  98.  
  99. /*
  100.  * control messages
  101.  */
  102. #define    CLOSE    1
  103. #define    RJ    2
  104. #define    SRJ    3
  105. #define    RR    4
  106. #define    INITC    5
  107. #define    INITB    6
  108. #define    INITA    7
  109.  
  110. #define    M_RJ    4
  111. #define    M_SRJ    010
  112. #define    M_RR    020
  113. #define    M_INITC    040
  114. #define    M_CLOSE    2
  115. #define    M_INITA    0200
  116. #define    M_INITB    0100
  117.  
  118.  
  119.  
  120. #define    PKOPRI    31
  121. #define    PKIPRI    30
  122.  
  123. #define    NPLINES    8
  124.  
  125. /*
  126.  * packet ioctl buf
  127.  */
  128. struct    piocb {
  129.     unsigned t;
  130.     short    psize;
  131.     short    mode;
  132.     short    state;
  133.     char    window;
  134. };
  135.  
  136. int pkdebug;
  137. int pksizes[];
  138.  
  139. #define    Pwrite    1
  140. #define    Poutput    1
  141. #define    Pxint    1
  142.  
  143.  
  144. #define    Print    01
  145. #define    Prend    01
  146. #define    Pacc    01
  147. #define    Pread    01
  148.  
  149. int    *PTRACE;
  150.  
  151.