Lines Matching defs:clp

104 clalloc(struct clist *clp, int size, int quot)
106 MALLOC_ZONE(clp->c_cs, u_char *, size, M_TTYS, M_WAITOK);
107 if (!clp->c_cs)
109 bzero(clp->c_cs, size);
112 MALLOC_ZONE(clp->c_cq, u_char *, QMEM(size), M_TTYS, M_WAITOK);
113 if (!clp->c_cq) {
114 FREE_ZONE(clp->c_cs, size, M_TTYS);
117 bzero(clp->c_cs, QMEM(size));
119 clp->c_cq = (u_char *)0;
121 clp->c_cf = clp->c_cl = (u_char *)0;
122 clp->c_ce = clp->c_cs + size;
123 clp->c_cn = size;
124 clp->c_cc = 0;
129 clfree(struct clist *clp)
131 if(clp->c_cs)
132 FREE_ZONE(clp->c_cs, clp->c_cn, M_TTYS);
133 if(clp->c_cq)
134 FREE_ZONE(clp->c_cq, QMEM(clp->c_cn), M_TTYS);
135 clp->c_cs = clp->c_cq = (u_char *)0;
143 getc(struct clist *clp)
147 if (clp->c_cc == 0)
150 c = *clp->c_cf & 0xff;
151 if (clp->c_cq) {
153 if (isset(clp->c_cq, clp->c_cf - clp->c_cs) )
156 if (*(clp->c_cf - clp->c_cs + clp->c_cq))
160 if (++clp->c_cf == clp->c_ce)
161 clp->c_cf = clp->c_cs;
162 if (--clp->c_cc == 0)
163 clp->c_cf = clp->c_cl = (u_char *)0;
173 q_to_b(struct clist *clp, u_char *cp, int count)
179 while (count > 0 && clp->c_cc > 0) {
180 cc = clp->c_cl - clp->c_cf;
181 if (clp->c_cf >= clp->c_cl)
182 cc = clp->c_ce - clp->c_cf;
185 bcopy(clp->c_cf, p, cc);
188 clp->c_cc -= cc;
189 clp->c_cf += cc;
190 if (clp->c_cf == clp->c_ce)
191 clp->c_cf = clp->c_cs;
193 if (clp->c_cc == 0)
194 clp->c_cf = clp->c_cl = (u_char *)0;
203 ndqb(struct clist *clp, int flag)
209 if ((cc = clp->c_cc) == 0)
213 count = clp->c_cl - clp->c_cf;
215 count = clp->c_ce - clp->c_cf;
219 i = clp->c_cf - clp->c_cs;
221 while (cc-- > 0 && !(clp->c_cs[i++] & (flag & ~TTY_QUOTE) ||
222 isset(clp->c_cq, i))) {
224 if (i == clp->c_cn)
228 while (cc-- > 0 && !(clp->c_cs[i++] & flag)) {
230 if (i == clp->c_cn)
242 ndflush(struct clist *clp, int count)
246 if (count == clp->c_cc) {
247 clp->c_cc = 0;
248 clp->c_cf = clp->c_cl = (u_char *)0;
252 while (count > 0 && clp->c_cc > 0) {
253 cc = clp->c_cl - clp->c_cf;
254 if (clp->c_cf >= clp->c_cl)
255 cc = clp->c_ce - clp->c_cf;
259 clp->c_cc -= cc;
260 clp->c_cf += cc;
261 if (clp->c_cf == clp->c_ce)
262 clp->c_cf = clp->c_cs;
264 if (clp->c_cc == 0)
265 clp->c_cf = clp->c_cl = (u_char *)0;
272 putc(int c, struct clist *clp)
276 if (clp->c_cc == 0) {
277 if (!clp->c_cs) {
281 if(clalloc(clp, 1024, 1)) {
286 clp->c_cf = clp->c_cl = clp->c_cs;
289 if (clp->c_cc == clp->c_cn)
292 *clp->c_cl = c & 0xff;
293 i = clp->c_cl - clp->c_cs;
294 if (clp->c_cq) {
297 setbit(clp->c_cq, i);
299 clrbit(clp->c_cq, i);
301 q = clp->c_cq + i;
305 clp->c_cc++;
306 clp->c_cl++;
307 if (clp->c_cl == clp->c_ce)
308 clp->c_cl = clp->c_cs;
358 b_to_q(const u_char *cp, int count, struct clist *clp)
367 if (clp->c_cc == 0) {
368 if (!clp->c_cs) {
372 if(clalloc(clp, 1024, 1))
375 clp->c_cf = clp->c_cl = clp->c_cs;
378 if (clp->c_cc == clp->c_cn)
382 while (count > 0 && clp->c_cc < clp->c_cn) {
383 cc = clp->c_ce - clp->c_cl;
384 if (clp->c_cf > clp->c_cl)
385 cc = clp->c_cf - clp->c_cl;
388 bcopy(p, clp->c_cl, cc);
389 if (clp->c_cq) {
391 clrbits(clp->c_cq, clp->c_cl - clp->c_cs, cc);
393 bzero(clp->c_cl - clp->c_cs + clp->c_cq, cc);
398 clp->c_cc += cc;
399 clp->c_cl += cc;
400 if (clp->c_cl == clp->c_ce)
401 clp->c_cl = clp->c_cs;
418 nextc(struct clist *clp, u_char *cp, int *c)
420 if (clp->c_cf == cp) {
424 cc = clp->c_cc;
430 if (++cp == clp->c_ce)
431 cp = clp->c_cs;
433 if (clp->c_cq) {
435 if (isset(clp->c_cq, cp - clp->c_cs))
438 if (*(clp->c_cf - clp->c_cs + clp->c_cq))
456 firstc(struct clist *clp, int *c)
460 cc = clp->c_cc;
463 cp = clp->c_cf;
465 if(clp->c_cq) {
467 if (isset(clp->c_cq, cp - clp->c_cs))
470 if (*(cp - clp->c_cs + clp->c_cq))
474 return clp->c_cf;
481 unputc(struct clist *clp)
485 if (clp->c_cc == 0)
488 if (clp->c_cl == clp->c_cs)
489 clp->c_cl = clp->c_ce - 1;
491 --clp->c_cl;
492 clp->c_cc--;
494 c = *clp->c_cl & 0xff;
495 if (clp->c_cq) {
497 if (isset(clp->c_cq, clp->c_cl - clp->c_cs))
500 if (*(clp->c_cf - clp->c_cs + clp->c_cq))
504 if (clp->c_cc == 0)
505 clp->c_cf = clp->c_cl = (u_char *)0;