PERFORCE change 149955 for review
Ed Schouten
ed at FreeBSD.org
Wed Sep 17 20:14:59 UTC 2008
http://perforce.freebsd.org/chv.cgi?CH=149955
Change 149955 by ed at ed_dull on 2008/09/17 20:14:44
See what happens if we remove quote bits from clists.
These bits were only used back in the days when our TTY's used clists.
Affected files ...
.. //depot/projects/mpsafetty/sys/kern/subr_clist.c#3 edit
.. //depot/projects/mpsafetty/sys/sys/clist.h#2 edit
.. //depot/projects/mpsafetty/sys/sys/param.h#11 edit
Differences ...
==== //depot/projects/mpsafetty/sys/kern/subr_clist.c#3 (text+ko) ====
@@ -52,8 +52,6 @@
#define INITIAL_CBLOCKS 50
#endif
-#define QUOTEMASK 0x100
-
static struct cblock *cblock_alloc(void);
static void cblock_alloc_cblocks(int number);
static void cblock_free(struct cblock *cblockp);
@@ -118,8 +116,6 @@
cblock_free(cblockp)
struct cblock *cblockp;
{
- if (isset(cblockp->c_quote, CBQSIZE * NBBY - 1))
- bzero(cblockp->c_quote, sizeof cblockp->c_quote);
cblockp->c_next = cfreelist;
cfreelist = cblockp;
cfreecount += CBSIZE;
@@ -146,7 +142,6 @@
* Freed cblocks have zero quotes and garbage elsewhere.
* Set the may-have-quote bit to force zeroing the quotes.
*/
- setbit(cbp->c_quote, CBQSIZE * NBBY - 1);
cblock_free(cbp);
}
ctotcount += number;
@@ -233,12 +228,6 @@
chr = (u_char)*clistp->c_cf;
/*
- * If this char is quoted, set the flag.
- */
- if (isset(cblockp->c_quote, clistp->c_cf - (char *)cblockp->c_info))
- chr |= QUOTEMASK;
-
- /*
* Advance to next character.
*/
clistp->c_cf++;
@@ -405,19 +394,6 @@
}
}
- /*
- * If this character is quoted, set the quote bit, if not, clear it.
- */
- if (chr & QUOTEMASK) {
- setbit(cblockp->c_quote, clistp->c_cl - (char *)cblockp->c_info);
- /*
- * Use one of the spare quote bits to record that something
- * may be quoted.
- */
- setbit(cblockp->c_quote, CBQSIZE * NBBY - 1);
- } else
- clrbit(cblockp->c_quote, clistp->c_cl - (char *)cblockp->c_info);
-
*clistp->c_cl++ = chr;
clistp->c_cc++;
@@ -497,39 +473,6 @@
bcopy(src, clistp->c_cl, numc);
/*
- * Clear quote bits if they aren't known to be clear.
- * The following could probably be made into a separate
- * "bitzero()" routine, but why bother?
- */
- if (isset(cblockp->c_quote, CBQSIZE * NBBY - 1)) {
- startbit = clistp->c_cl - (char *)cblockp->c_info;
- endbit = startbit + numc - 1;
-
- firstbyte = (u_char *)cblockp->c_quote + (startbit / NBBY);
- lastbyte = (u_char *)cblockp->c_quote + (endbit / NBBY);
-
- /*
- * Calculate mask of bits to preserve in first and
- * last bytes.
- */
- startmask = NBBY - (startbit % NBBY);
- startmask = 0xff >> startmask;
- endmask = (endbit % NBBY);
- endmask = 0xff << (endmask + 1);
-
- if (firstbyte != lastbyte) {
- *firstbyte &= startmask;
- *lastbyte &= endmask;
-
- num_between = lastbyte - firstbyte - 1;
- if (num_between)
- bzero(firstbyte + 1, num_between);
- } else {
- *firstbyte &= (startmask | endmask);
- }
- }
-
- /*
* ...and update pointer for the next chunk.
*/
src += numc;
@@ -582,7 +525,7 @@
* Get the character. Set the quote flag if this character
* is quoted.
*/
- *dst = (u_char)*cp | (isset(cblockp->c_quote, cp - (char *)cblockp->c_info) ? QUOTEMASK : 0);
+ *dst = (u_char)*cp;
return (cp);
}
@@ -613,12 +556,6 @@
cblockp = (struct cblock *)((intptr_t)clistp->c_cl & ~CROUND);
/*
- * Set quote flag if this character was quoted.
- */
- if (isset(cblockp->c_quote, (u_char *)clistp->c_cl - cblockp->c_info))
- chr |= QUOTEMASK;
-
- /*
* If all of the characters have been unput in this
* cblock, then find the previous one and free this
* one.
==== //depot/projects/mpsafetty/sys/sys/clist.h#2 (text+ko) ====
@@ -50,7 +50,6 @@
struct cblock {
struct cblock *c_next; /* next cblock in queue */
- unsigned char c_quote[CBQSIZE]; /* quoted characters */
unsigned char c_info[CBSIZE]; /* characters */
};
==== //depot/projects/mpsafetty/sys/sys/param.h#11 (text+ko) ====
@@ -193,9 +193,8 @@
#define NODEV (dev_t)(-1) /* non-existent device */
#define CBLOCK 128 /* Clist block size, must be a power of 2. */
-#define CBQSIZE (CBLOCK/NBBY) /* Quote bytes/cblock - can do better. */
/* Data chars/clist. */
-#define CBSIZE (CBLOCK - sizeof(struct cblock *) - CBQSIZE)
+#define CBSIZE (CBLOCK - sizeof(struct cblock *))
#define CROUND (CBLOCK - 1) /* Clist rounding. */
/*
More information about the p4-projects
mailing list