Lines Matching refs:pk

35 #include "pk.h"
86 struct pack *pk;
92 if ((pk = (struct pack *) calloc(1, sizeof (struct pack))) == NULL)
94 pk->p_ifn = ifn;
95 pk->p_ofn = ofn;
113 pk->p_xsize = pk->p_rsize = xpacksize = packsize;
114 pk->p_rwindow = pk->p_swindow = windows;
119 for (i = 0; i < pk->p_rwindow; i++) {
120 if ((bp = (char **) malloc((unsigned) pk->p_xsize)) == NULL)
122 *bp = (char *) pk->p_ipool;
123 pk->p_ipool = bp;
127 pk->p_rwindow = i;
132 pk->p_msg = pk->p_rmsg = M_INITA;
133 pkoutput(pk);
136 pkgetpack(pk);
137 if ((pk->p_state & LIVE) != 0)
143 pkreset(pk);
144 return(pk);
171 struct pack *pk;
177 pk = ipk;
182 if ((pk->p_state & DOWN) || Connodata > CONNODATA || Ntimeout > NTIMEOUT)
184 ifn = pk->p_ifn;
185 h = &pk->p_ihbuf;
226 if ((noise += HDRSIZ) > 3 * pk->p_rsize) {
246 pkcntl(h->cntl, pk);
247 xlatestate(pk, 7);
251 pk->p_state |= BADFRAME;
256 if (k && pksizes[k] != pk->p_rsize)
258 pk->p_rpr = h->cntl & MOD8;
259 pksack(pk);
260 if ((bp = pk->p_ipool) == NULL) {
264 pk->p_ipool = (char **) *bp;
266 if (pkcget(pk->p_ifn, (char *) bp, pk->p_rsize) == SUCCESS) {
267 pkdata(h->cntl, h->sum, pk, bp);
280 pk->p_msg |= pk->p_rmsg;
281 if (pk->p_msg == 0)
282 pk->p_msg |= M_RR;
283 if ((pk->p_state & LIVE) == LIVE)
284 pk->p_state |= RXMIT;
285 pkoutput(pk);
292 * Translate pk->p_state into something printable.
295 xlatestate(pk, dbglvl)
296 struct pack *pk;
307 if (pk->p_state&st_trans[i].state){
313 sprintf(buf, " (0%o)\n", pk->p_state);
319 pkdata(c, sum, pk, bp)
320 struct pack *pk;
329 if (pk->p_state & DRAINO || !(pk->p_state & LIVE)) {
330 pk->p_msg |= pk->p_rmsg;
331 pkoutput(pk);
334 t = next[pk->p_pr];
335 for(x=pk->p_pr; x!=t; x = (x-1)&7) {
336 if (pk->p_is[x] == 0)
340 *bp = (char *)pk->p_ipool;
341 pk->p_ipool = bp;
346 pk->p_imap |= m;
347 pk->p_is[x] = c;
348 pk->p_isum[x] = sum;
349 pk->p_ib[x] = (char *)bp;
353 * Start transmission on output device associated with pk.
360 pkxstart(pk, cntl, x)
361 struct pack *pk;
369 p = (caddr_t) &pk->p_ohbuf;
375 *p++ = hdchk = pk->p_lpsize;
376 checkword = pk->p_osum[x] ^ (unsigned)(cntl & 0377);
393 p = (caddr_t) & pk->p_ohbuf;
395 if ((*Write)(pk->p_ofn, p, HDRSIZ) != HDRSIZ) {
406 memcpy(buf+HDRSIZ, pk->p_ob[x], pk->p_xsize);
407 if ((*Write)(pk->p_ofn, buf, pk->p_xsize + HDRSIZ) !=
408 pk->p_xsize + HDRSIZ) {
417 if (pk->p_msg)
418 pkoutput(pk);