PERFORCE change 150220 for review
Ed Schouten
ed at FreeBSD.org
Sun Sep 21 17:54:41 UTC 2008
http://perforce.freebsd.org/chv.cgi?CH=150220
Change 150220 by ed at ed_dull on 2008/09/21 17:54:16
Clean up the clists code:
- Remove the now unused catq() and nextc() routines, which were
only used by the TTY layer.
- Change putc()'s argument to `char' instead of `int', there is
no more space for quote bits.
- Use ISO C prototypes.
Affected files ...
.. //depot/projects/mpsafetty/sys/kern/subr_clist.c#5 edit
.. //depot/projects/mpsafetty/sys/sys/clist.h#3 edit
Differences ...
==== //depot/projects/mpsafetty/sys/kern/subr_clist.c#5 (text+ko) ====
@@ -77,8 +77,7 @@
*/
/* ARGSUSED*/
static void
-clist_init(dummy)
- void *dummy;
+clist_init(void *dummy)
{
/*
* Allocate an initial base set of cblocks as a 'slush'.
@@ -96,7 +95,7 @@
* to it.
*/
static __inline struct cblock *
-cblock_alloc()
+cblock_alloc(void)
{
struct cblock *cblockp;
@@ -113,8 +112,7 @@
* Add a cblock to the cfreelist queue.
*/
static __inline void
-cblock_free(cblockp)
- struct cblock *cblockp;
+cblock_free(struct cblock *cblockp)
{
cblockp->c_next = cfreelist;
cfreelist = cblockp;
@@ -125,8 +123,7 @@
* Allocate some cblocks for the cfreelist queue.
*/
static void
-cblock_alloc_cblocks(number)
- int number;
+cblock_alloc_cblocks(int number)
{
int i;
struct cblock *cbp;
@@ -152,10 +149,7 @@
* Must be called in process context at spltty().
*/
void
-clist_alloc_cblocks(clistp, ccmax, ccreserved)
- struct clist *clistp;
- int ccmax;
- int ccreserved;
+clist_alloc_cblocks(struct clist *clistp, int ccmax, int ccreserved)
{
int dcbr;
@@ -184,8 +178,7 @@
* system malloc pool.
*/
static void
-cblock_free_cblocks(number)
- int number;
+cblock_free_cblocks(int number)
{
int i;
@@ -199,8 +192,7 @@
* Must be called at spltty().
*/
void
-clist_free_cblocks(clistp)
- struct clist *clistp;
+clist_free_cblocks(struct clist *clistp)
{
if (clistp->c_cbcount != 0)
panic("freeing active clist cblocks");
@@ -213,8 +205,7 @@
* Get a character from the head of a clist.
*/
int
-getc(clistp)
- struct clist *clistp;
+getc(struct clist *clistp)
{
int chr = -1;
int s;
@@ -261,10 +252,7 @@
* actually copied.
*/
int
-q_to_b(clistp, dest, amount)
- struct clist *clistp;
- char *dest;
- int amount;
+q_to_b(struct clist *clistp, char *dest, int amount)
{
struct cblock *cblockp;
struct cblock *cblockn;
@@ -310,9 +298,7 @@
* Flush 'amount' of chars, beginning at head of clist 'clistp'.
*/
void
-ndflush(clistp, amount)
- struct clist *clistp;
- int amount;
+ndflush(struct clist *clistp, int amount)
{
struct cblock *cblockp;
struct cblock *cblockn;
@@ -355,9 +341,7 @@
* more clists, or 0 for success.
*/
int
-putc(chr, clistp)
- int chr;
- struct clist *clistp;
+putc(char chr, struct clist *clistp)
{
struct cblock *cblockp;
int s;
@@ -406,10 +390,7 @@
* number of characters not copied.
*/
int
-b_to_q(src, amount, clistp)
- char *src;
- int amount;
- struct clist *clistp;
+b_to_q(char *src, int amount, struct clist *clistp)
{
struct cblock *cblockp;
int numc, s;
@@ -492,50 +473,10 @@
}
/*
- * Get the next character in the clist. Store it at dst. Don't
- * advance any clist pointers, but return a pointer to the next
- * character position.
- */
-char *
-nextc(clistp, cp, dst)
- struct clist *clistp;
- char *cp;
- int *dst;
-{
- struct cblock *cblockp;
-
- ++cp;
- /*
- * See if the next character is beyond the end of
- * the clist.
- */
- if (clistp->c_cc && (cp != clistp->c_cl)) {
- /*
- * If the next character is beyond the end of this
- * cblock, advance to the next cblock.
- */
- if (((intptr_t)cp & CROUND) == 0)
- cp = ((struct cblock *)cp - 1)->c_next->c_info;
- cblockp = (struct cblock *)((intptr_t)cp & ~CROUND);
-
- /*
- * Get the character. Set the quote flag if this character
- * is quoted.
- */
- *dst = (u_char)*cp;
-
- return (cp);
- }
-
- return (NULL);
-}
-
-/*
* "Unput" a character from a clist.
*/
int
-unputc(clistp)
- struct clist *clistp;
+unputc(struct clist *clistp)
{
struct cblock *cblockp = 0, *cbp = 0;
int s;
@@ -590,45 +531,3 @@
splx(s);
return (chr);
}
-
-/*
- * Move characters in source clist to destination clist,
- * preserving quote bits.
- */
-void
-catq(src_clistp, dest_clistp)
- struct clist *src_clistp, *dest_clistp;
-{
- int chr, s;
-
- s = spltty();
- /*
- * If the destination clist is empty (has no cblocks atttached),
- * and there are no possible complications with the resource counters,
- * then we simply assign the current clist to the destination.
- */
- if (!dest_clistp->c_cf
- && src_clistp->c_cbcount <= src_clistp->c_cbmax
- && src_clistp->c_cbcount <= dest_clistp->c_cbmax) {
- dest_clistp->c_cf = src_clistp->c_cf;
- dest_clistp->c_cl = src_clistp->c_cl;
- src_clistp->c_cf = src_clistp->c_cl = NULL;
-
- dest_clistp->c_cc = src_clistp->c_cc;
- src_clistp->c_cc = 0;
- dest_clistp->c_cbcount = src_clistp->c_cbcount;
- src_clistp->c_cbcount = 0;
-
- splx(s);
- return;
- }
-
- splx(s);
-
- /*
- * XXX This should probably be optimized to more than one
- * character at a time.
- */
- while ((chr = getc(src_clistp)) != -1)
- putc(chr, dest_clistp);
-}
==== //depot/projects/mpsafetty/sys/sys/clist.h#3 (text+ko) ====
@@ -57,13 +57,11 @@
extern int cfreecount;
int b_to_q(char *cp, int cc, struct clist *q);
-void catq(struct clist *from, struct clist *to);
void clist_alloc_cblocks(struct clist *q, int ccmax, int ccres);
void clist_free_cblocks(struct clist *q);
int getc(struct clist *q);
void ndflush(struct clist *q, int cc);
-char *nextc(struct clist *q, char *cp, int *c);
-int putc(int c, struct clist *q);
+int putc(char c, struct clist *q);
int q_to_b(struct clist *q, char *cp, int cc);
int unputc(struct clist *q);
#endif
More information about the p4-projects
mailing list