X-Git-Url: https://git.saurik.com/apple/xnu.git/blobdiff_plain/5d5c5d0d5b79ade9a973d55186ffda2638ba2b6e..c18c124eaa464aaaa5549e99e5a70fc9cbb50944:/bsd/kern/tty_subr.c diff --git a/bsd/kern/tty_subr.c b/bsd/kern/tty_subr.c index 5ac69c1e3..89bc09fe0 100644 --- a/bsd/kern/tty_subr.c +++ b/bsd/kern/tty_subr.c @@ -1,31 +1,29 @@ /* - * Copyright (c) 2000 Apple Computer, Inc. All rights reserved. + * Copyright (c) 2000-2006 Apple Computer, Inc. All rights reserved. * - * @APPLE_LICENSE_OSREFERENCE_HEADER_START@ + * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ * - * This file contains Original Code and/or Modifications of Original Code - * as defined in and that are subject to the Apple Public Source License - * Version 2.0 (the 'License'). You may not use this file except in - * compliance with the License. The rights granted to you under the - * License may not be used to create, or enable the creation or - * redistribution of, unlawful or unlicensed copies of an Apple operating - * system, or to circumvent, violate, or enable the circumvention or - * violation of, any terms of an Apple operating system software license - * agreement. - * - * Please obtain a copy of the License at - * http://www.opensource.apple.com/apsl/ and read it before using this - * file. - * - * The Original Code and all software distributed under the License are - * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER - * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, - * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. - * Please see the License for the specific language governing rights and + * This file contains Original Code and/or Modifications of Original Code + * as defined in and that are subject to the Apple Public Source License + * Version 2.0 (the 'License'). You may not use this file except in + * compliance with the License. The rights granted to you under the License + * may not be used to create, or enable the creation or redistribution of, + * unlawful or unlicensed copies of an Apple operating system, or to + * circumvent, violate, or enable the circumvention or violation of, any + * terms of an Apple operating system software license agreement. + * + * Please obtain a copy of the License at + * http://www.opensource.apple.com/apsl/ and read it before using this file. + * + * The Original Code and all software distributed under the License are + * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER + * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, + * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. + * Please see the License for the specific language governing rights and * limitations under the License. - * - * @APPLE_LICENSE_OSREFERENCE_HEADER_END@ + * + * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ */ /* Copyright (c) 1997 Apple Computer, Inc. All Rights Reserved */ /* @@ -56,7 +54,6 @@ * */ -#ifdef NeXT /* * We use the NetBSD based clist system, it is much more efficient than the * old style clist stuff used by free bsd. @@ -68,7 +65,6 @@ #include #include -#include /* * At compile time, choose: @@ -105,12 +101,8 @@ cinit(void) * of the specified length, with/without quoting support. */ int -clalloc(clp, size, quot) - struct clist *clp; - int size; - int quot; +clalloc(struct clist *clp, int size, int quot) { - MALLOC_ZONE(clp->c_cs, u_char *, size, M_TTYS, M_WAITOK); if (!clp->c_cs) return (-1); @@ -134,8 +126,7 @@ clalloc(clp, size, quot) } void -clfree(clp) - struct clist *clp; +clfree(struct clist *clp) { if(clp->c_cs) FREE_ZONE(clp->c_cs, clp->c_cn, M_TTYS); @@ -149,13 +140,10 @@ clfree(clp) * Get a character from a clist. */ int -getc(clp) - struct clist *clp; +getc(struct clist *clp) { - register int c = -1; - int s; + int c = -1; - s = spltty(); if (clp->c_cc == 0) goto out; @@ -174,7 +162,6 @@ getc(clp) if (--clp->c_cc == 0) clp->c_cf = clp->c_cl = (u_char *)0; out: - splx(s); return c; } @@ -183,16 +170,11 @@ out: * Return number of bytes moved. */ int -q_to_b(clp, cp, count) - struct clist *clp; - u_char *cp; - int count; +q_to_b(struct clist *clp, u_char *cp, int count) { - register int cc; + int cc; u_char *p = cp; - int s; - s = spltty(); /* optimize this while loop */ while (count > 0 && clp->c_cc > 0) { cc = clp->c_cl - clp->c_cf; @@ -210,7 +192,6 @@ q_to_b(clp, cp, count) } if (clp->c_cc == 0) clp->c_cf = clp->c_cl = (u_char *)0; - splx(s); return p - cp; } @@ -219,16 +200,12 @@ q_to_b(clp, cp, count) * Stop counting if flag&character is non-null. */ int -ndqb(clp, flag) - struct clist *clp; - int flag; +ndqb(struct clist *clp, int flag) { int count = 0; register int i; register int cc; - int s; - s = spltty(); if ((cc = clp->c_cc) == 0) goto out; @@ -255,7 +232,6 @@ ndqb(clp, flag) } } out: - splx(s); return count; } @@ -263,18 +239,14 @@ out: * Flush count bytes from clist. */ void -ndflush(clp, count) - struct clist *clp; - int count; +ndflush(struct clist *clp, int count) { - register int cc; - int s; + int cc; - s = spltty(); if (count == clp->c_cc) { clp->c_cc = 0; clp->c_cf = clp->c_cl = (u_char *)0; - goto out; + return; } /* optimize this while loop */ while (count > 0 && clp->c_cc > 0) { @@ -291,22 +263,16 @@ ndflush(clp, count) } if (clp->c_cc == 0) clp->c_cf = clp->c_cl = (u_char *)0; -out: - splx(s); } /* * Put a character into the output queue. */ int -putc(c, clp) - int c; - struct clist *clp; +putc(int c, struct clist *clp) { register int i; - int s; - s = spltty(); if (clp->c_cc == 0) { if (!clp->c_cs) { #if DIAGNOSTIC @@ -314,7 +280,6 @@ putc(c, clp) #endif if(clalloc(clp, 1024, 1)) { out: - splx(s); return -1; } } @@ -341,7 +306,6 @@ out: clp->c_cl++; if (clp->c_cl == clp->c_ce) clp->c_cl = clp->c_cs; - splx(s); return 0; } @@ -376,7 +340,9 @@ clrbits(u_char *cp, int off, int len) cp[sby++] &= mask; mask = (1<c_cc == 0) { if (!clp->c_cs) { @@ -437,7 +401,6 @@ b_to_q(const u_char *cp, int count, struct clist *clp) clp->c_cl = clp->c_cs; } out: - splx(s); return count; } @@ -452,12 +415,8 @@ static int cc; * masked. */ u_char * -nextc(clp, cp, c) - struct clist *clp; - register u_char *cp; - int *c; +nextc(struct clist *clp, u_char *cp, int *c) { - if (clp->c_cf == cp) { /* * First time initialization. @@ -494,11 +453,9 @@ nextc(clp, cp, c) * *c is set to the NEXT character */ u_char * -firstc(clp, c) - struct clist *clp; - int *c; +firstc(struct clist *clp, int *c) { - register u_char *cp; + u_char *cp; cc = clp->c_cc; if (cc == 0) @@ -521,13 +478,10 @@ firstc(clp, c) * Remove the last character in the clist and return it. */ int -unputc(clp) - struct clist *clp; +unputc(struct clist *clp) { unsigned int c = -1; - int s; - s = spltty(); if (clp->c_cc == 0) goto out; @@ -550,7 +504,6 @@ unputc(clp) if (clp->c_cc == 0) clp->c_cf = clp->c_cl = (u_char *)0; out: - splx(s); return c; } @@ -558,13 +511,10 @@ out: * Put the chars in the from queue on the end of the to queue. */ void -catq(from, to) - struct clist *from, *to; +catq(struct clist *from, struct clist *to) { int c; while ((c = getc(from)) != -1) putc(c, to); } - -#endif /* NeXT */