-
-#ifdef unneeded
-/*
- * Integer (short) get/put using clists.
- */
-typedef u_short word_t;
-
-getw(p)
- register struct clist *p;
-{
- register int s, c;
- register struct cblock *bp;
-
- if (p->c_cc <= 1)
- return(-1);
- if (p->c_cc & 01) {
- c = getc(p);
-#if BYTE_ORDER == LITTLE_ENDIAN
- return (c | (getc(p)<<8));
-#else
- return (getc(p) | (c<<8));
-#endif
- }
- s = spltty();
-#if BYTE_ORDER == LITTLE_ENDIAN
- c = (((u_char *)p->c_cf)[0] << 8) | ((u_char *)p->c_cf)[1];
-#else
- c = (((u_char *)p->c_cf)[1] << 8) | ((u_char *)p->c_cf)[0];
-#endif
- p->c_cf += sizeof (word_t);
- p->c_cc -= sizeof (word_t);
- if (p->c_cc <= 0) {
- bp = cbptr(p->c_cf-1);
- bp = cbptr((int)bp & ~CROUND);
- p->c_cf = NULL;
- p->c_cl = NULL;
- bp->c_next = cfreelist;
- cfreelist = bp;
- cfreecount += CBSIZE;
- if (cwaiting) {
- wakeup(&cwaiting);
- cwaiting = 0;
- }
- } else if (((int)p->c_cf & CROUND) == 0) {
- bp = cbptr(p->c_cf);
- bp--;
- p->c_cf = bp->c_next->c_info;
- bp->c_next = cfreelist;
- cfreelist = bp;
- cfreecount += CBSIZE;
- if (cwaiting) {
- wakeup(&cwaiting);
- cwaiting = 0;
- }
- }
- splx(s);
- return (c);
-}
-
-putw(c, p)
- register struct clist *p;
- word_t c;
-{
- register s;
- register struct cblock *bp;
- register char *cp;
-
- s = spltty();
- if (cfreelist==NULL) {
- splx(s);
- return(-1);
- }
- if (p->c_cc & 01) {
-#if BYTE_ORDER == LITTLE_ENDIAN
- (void) putc(c, p);
- (void) putc(c>>8, p);
-#else
- (void) putc(c>>8, p);
- (void) putc(c, p);
-#endif
- } else {
- if ((cp = p->c_cl) == NULL || p->c_cc < 0 ) {
- if ((bp = cfreelist) == NULL) {
- splx(s);
- return (-1);
- }
- cfreelist = bp->c_next;
- cfreecount -= CBSIZE;
- bp->c_next = NULL;
- p->c_cf = cp = bp->c_info;
- } else if (((int)cp & CROUND) == 0) {
- bp = cbptr(cp) - 1;
- if ((bp->c_next = cfreelist) == NULL) {
- splx(s);
- return (-1);
- }
- bp = bp->c_next;
- cfreelist = bp->c_next;
- cfreecount -= CBSIZE;
- bp->c_next = NULL;
- cp = bp->c_info;
- }
-#if defined(vax)
- *(word_t *)cp = c;
-#else
- ((u_char *)cp)[0] = c>>8;
- ((u_char *)cp)[1] = c;
-#endif
- p->c_cl = cp + sizeof (word_t);
- p->c_cc += sizeof (word_t);
- }
- splx(s);
- return (0);
-}
-#endif unneeded