diff options
| author | Michael Stapelberg <michael@stapelberg.de> | 2015-03-16 10:00:32 +0100 | 
|---|---|---|
| committer | Michael Stapelberg <michael@stapelberg.de> | 2015-03-16 10:01:07 +0100 | 
| commit | d74e904bf4bdd7f1d767a8db09987b90de809579 (patch) | |
| tree | 07ab4f610c2f222a662daf417f1356154806c29e /include | |
| parent | 6996f0a4a34e0744f09dbce39a2164c6fcee875e (diff) | |
clang-format-3.5 -i **/*.[ch], update modeline
From here on, we’ll use clang-format to automatically format the source.
This has worked well in i3, so we are introducing it for i3status.
Diffstat (limited to 'include')
| -rw-r--r-- | include/i3status.h | 199 | ||||
| -rw-r--r-- | include/queue.h | 745 | 
2 files changed, 483 insertions, 461 deletions
diff --git a/include/i3status.h b/include/i3status.h index 6e20af3..0985180 100644 --- a/include/i3status.h +++ b/include/i3status.h @@ -1,7 +1,11 @@  #ifndef _I3STATUS_H  #define _I3STATUS_H -enum { O_DZEN2, O_XMOBAR, O_I3BAR, O_TERM, O_NONE } output_format; +enum { O_DZEN2, +       O_XMOBAR, +       O_I3BAR, +       O_TERM, +       O_NONE } output_format;  #include <stdbool.h>  #include <confuse.h> @@ -45,105 +49,104 @@ enum { O_DZEN2, O_XMOBAR, O_I3BAR, O_TERM, O_NONE } output_format;  /* Allows for the definition of a variable without opening a new scope, thus   * suited for usage in a macro. Idea from wmii. */  #define with(type, var, init) \ -        for (type var = (type)-1; (var == (type)-1) && ((var=(init)) || 1); ) +    for (type var = (type)-1; (var == (type)-1) && ((var = (init)) || 1);) -#define CASE_SEC(name) \ -        if (BEGINS_WITH(current, name)) \ -                with(cfg_t *, sec, cfg_section = cfg_getsec(cfg, name)) \ -                        if (sec != NULL) +#define CASE_SEC(name)              \ +    if (BEGINS_WITH(current, name)) \ +    with(cfg_t *, sec, cfg_section = cfg_getsec(cfg, name)) if (sec != NULL) -#define CASE_SEC_TITLE(name) \ -        if (BEGINS_WITH(current, name)) \ -                with(const char *, title, current + strlen(name) + 1) \ -                        with(cfg_t *, sec, cfg_section = cfg_gettsec(cfg, name, title)) \ -                                if (sec != NULL) +#define CASE_SEC_TITLE(name)                              \ +    if (BEGINS_WITH(current, name))                       \ +    with(const char *, title, current + strlen(name) + 1) \ +        with(cfg_t *, sec, cfg_section = cfg_gettsec(cfg, name, title)) if (sec != NULL)  /* Macro which any plugin can use to output the full_text part (when the output   * format is JSON) or just output to stdout (any other output format). */ -#define OUTPUT_FULL_TEXT(text) \ -	do { \ -		/* Terminate the output buffer here in any case, so that it’s \ -		 * not forgotten in the module */ \ -		*outwalk = '\0'; \ -		if (output_format == O_I3BAR) { \ -			yajl_gen_string(json_gen, (const unsigned char *)"full_text", strlen("full_text")); \ -			yajl_gen_string(json_gen, (const unsigned char *)text, strlen(text)); \ -		} else { \ -			printf("%s", text); \ -		} \ -	} while (0) - -#define SEC_OPEN_MAP(name) \ -	do { \ -		if (output_format == O_I3BAR) { \ -			yajl_gen_map_open(json_gen); \ -			yajl_gen_string(json_gen, (const unsigned char *)"name", strlen("name")); \ -			yajl_gen_string(json_gen, (const unsigned char *)name, strlen(name)); \ -		} \ -	} while (0) - -#define SEC_CLOSE_MAP \ -	do { \ -		if (output_format == O_I3BAR) { \ -			char *_align = cfg_getstr(sec, "align"); \ -			if (_align) { \ -				yajl_gen_string(json_gen, (const unsigned char *)"align", strlen("align")); \ -				yajl_gen_string(json_gen, (const unsigned char *)_align, strlen(_align)); \ -			} \ -			struct min_width *_width = cfg_getptr(sec, "min_width"); \ -			if (_width) { \ -				/* if the value can be parsed as a number, we use the numerical value */ \ -				if (_width->num > 0) { \ -					yajl_gen_string(json_gen, (const unsigned char *)"min_width", strlen("min_width")); \ -					yajl_gen_integer(json_gen, _width->num); \ -				} else { \ -					yajl_gen_string(json_gen, (const unsigned char *)"min_width", strlen("min_width")); \ -					yajl_gen_string(json_gen, (const unsigned char *)_width->str, strlen(_width->str)); \ -				} \ -			} \ -			const char *_sep = cfg_getstr(cfg_general, "separator"); \ -			if (strlen(_sep) == 0) {\ -				yajl_gen_string(json_gen, (const unsigned char *)"separator", strlen("separator")); \ -				yajl_gen_bool(json_gen, false); \ -			} \ -			yajl_gen_map_close(json_gen); \ -		} \ -	} while (0) - -#define START_COLOR(colorstr) \ -	do { \ -		if (cfg_getbool(cfg_general, "colors")) { \ -			const char *_val = NULL; \ -			if (cfg_section) \ -				_val = cfg_getstr(cfg_section, colorstr); \ -			if (!_val) \ -				_val = cfg_getstr(cfg_general, colorstr); \ -			if (output_format == O_I3BAR) { \ -				yajl_gen_string(json_gen, (const unsigned char *)"color", strlen("color")); \ -				yajl_gen_string(json_gen, (const unsigned char *)_val, strlen(_val)); \ -			} else { \ -				outwalk += sprintf(outwalk, "%s", color(colorstr)); \ -			} \ -		} \ -	} while (0) - -#define END_COLOR \ -	do { \ -		if (cfg_getbool(cfg_general, "colors") && output_format != O_I3BAR) { \ -			outwalk += sprintf(outwalk, "%s", endcolor()); \ -		} \ -	} while (0) - -#define INSTANCE(instance) \ -	do { \ -		if (output_format == O_I3BAR) { \ -			yajl_gen_string(json_gen, (const unsigned char *)"instance", strlen("instance")); \ -			yajl_gen_string(json_gen, (const unsigned char *)instance, strlen(instance)); \ -		} \ -	} while (0) - - -typedef enum { CS_DISCHARGING, CS_CHARGING, CS_FULL } charging_status_t; +#define OUTPUT_FULL_TEXT(text)                                                                   \ +    do {                                                                                         \ +        /* Terminate the output buffer here in any case, so that it’s                          \ +         * not forgotten in the module */                                                        \ +        *outwalk = '\0';                                                                         \ +        if (output_format == O_I3BAR) {                                                          \ +            yajl_gen_string(json_gen, (const unsigned char *) "full_text", strlen("full_text")); \ +            yajl_gen_string(json_gen, (const unsigned char *)text, strlen(text));                \ +        } else {                                                                                 \ +            printf("%s", text);                                                                  \ +        }                                                                                        \ +    } while (0) + +#define SEC_OPEN_MAP(name)                                                             \ +    do {                                                                               \ +        if (output_format == O_I3BAR) {                                                \ +            yajl_gen_map_open(json_gen);                                               \ +            yajl_gen_string(json_gen, (const unsigned char *) "name", strlen("name")); \ +            yajl_gen_string(json_gen, (const unsigned char *)name, strlen(name));      \ +        }                                                                              \ +    } while (0) + +#define SEC_CLOSE_MAP                                                                                    \ +    do {                                                                                                 \ +        if (output_format == O_I3BAR) {                                                                  \ +            char *_align = cfg_getstr(sec, "align");                                                     \ +            if (_align) {                                                                                \ +                yajl_gen_string(json_gen, (const unsigned char *) "align", strlen("align"));             \ +                yajl_gen_string(json_gen, (const unsigned char *)_align, strlen(_align));                \ +            }                                                                                            \ +            struct min_width *_width = cfg_getptr(sec, "min_width");                                     \ +            if (_width) {                                                                                \ +                /* if the value can be parsed as a number, we use the numerical value */                 \ +                if (_width->num > 0) {                                                                   \ +                    yajl_gen_string(json_gen, (const unsigned char *) "min_width", strlen("min_width")); \ +                    yajl_gen_integer(json_gen, _width->num);                                             \ +                } else {                                                                                 \ +                    yajl_gen_string(json_gen, (const unsigned char *) "min_width", strlen("min_width")); \ +                    yajl_gen_string(json_gen, (const unsigned char *)_width->str, strlen(_width->str));  \ +                }                                                                                        \ +            }                                                                                            \ +            const char *_sep = cfg_getstr(cfg_general, "separator");                                     \ +            if (strlen(_sep) == 0) {                                                                     \ +                yajl_gen_string(json_gen, (const unsigned char *) "separator", strlen("separator"));     \ +                yajl_gen_bool(json_gen, false);                                                          \ +            }                                                                                            \ +            yajl_gen_map_close(json_gen);                                                                \ +        }                                                                                                \ +    } while (0) + +#define START_COLOR(colorstr)                                                                \ +    do {                                                                                     \ +        if (cfg_getbool(cfg_general, "colors")) {                                            \ +            const char *_val = NULL;                                                         \ +            if (cfg_section)                                                                 \ +                _val = cfg_getstr(cfg_section, colorstr);                                    \ +            if (!_val)                                                                       \ +                _val = cfg_getstr(cfg_general, colorstr);                                    \ +            if (output_format == O_I3BAR) {                                                  \ +                yajl_gen_string(json_gen, (const unsigned char *) "color", strlen("color")); \ +                yajl_gen_string(json_gen, (const unsigned char *)_val, strlen(_val));        \ +            } else {                                                                         \ +                outwalk += sprintf(outwalk, "%s", color(colorstr));                          \ +            }                                                                                \ +        }                                                                                    \ +    } while (0) + +#define END_COLOR                                                             \ +    do {                                                                      \ +        if (cfg_getbool(cfg_general, "colors") && output_format != O_I3BAR) { \ +            outwalk += sprintf(outwalk, "%s", endcolor());                    \ +        }                                                                     \ +    } while (0) + +#define INSTANCE(instance)                                                                     \ +    do {                                                                                       \ +        if (output_format == O_I3BAR) {                                                        \ +            yajl_gen_string(json_gen, (const unsigned char *) "instance", strlen("instance")); \ +            yajl_gen_string(json_gen, (const unsigned char *)instance, strlen(instance));      \ +        }                                                                                      \ +    } while (0) + +typedef enum { CS_DISCHARGING, +               CS_CHARGING, +               CS_FULL } charging_status_t;  /*   * The "min_width" module option may either be defined as a string or a number. @@ -161,7 +164,7 @@ bool slurp(const char *filename, char *destination, int size);  /* src/output.c */  void print_separator(const char *separator);  char *color(const char *colorstr); -char *endcolor() __attribute__ ((pure)); +char *endcolor() __attribute__((pure));  void reset_cursor(void);  /* src/auto_detect_format.c */ @@ -172,8 +175,8 @@ void set_timezone(const char *tz);  /* src/first_network_device.c */  typedef enum { -	NET_TYPE_WIRELESS = 0, -	NET_TYPE_ETHERNET = 1 +    NET_TYPE_WIRELESS = 0, +    NET_TYPE_ETHERNET = 1  } net_type_t;  const char *first_eth_interface(const net_type_t type); diff --git a/include/queue.h b/include/queue.h index 75bb957..3092aad 100644 --- a/include/queue.h +++ b/include/queue.h @@ -32,8 +32,8 @@   *	@(#)queue.h	8.5 (Berkeley) 8/20/94   */ -#ifndef	_SYS_QUEUE_H_ -#define	_SYS_QUEUE_H_ +#ifndef _SYS_QUEUE_H_ +#define _SYS_QUEUE_H_  /*   * This file defines five types of data structures: singly-linked lists, @@ -91,437 +91,456 @@  /*   * Singly-linked List definitions.   */ -#define SLIST_HEAD(name, type)						\ -struct name {								\ -	struct type *slh_first;	/* first element */			\ -} +#define SLIST_HEAD(name, type)                      \ +    struct name {                                   \ +        struct type *slh_first; /* first element */ \ +    } -#define	SLIST_HEAD_INITIALIZER(head)					\ -	{ NULL } +#define SLIST_HEAD_INITIALIZER(head) \ +    { NULL } -#define SLIST_ENTRY(type)						\ -struct {								\ -	struct type *sle_next;	/* next element */			\ -} +#define SLIST_ENTRY(type)                         \ +    struct {                                      \ +        struct type *sle_next; /* next element */ \ +    }  /*   * Singly-linked List access methods.   */ -#define	SLIST_FIRST(head)	((head)->slh_first) -#define	SLIST_END(head)		NULL -#define	SLIST_EMPTY(head)	(SLIST_FIRST(head) == SLIST_END(head)) -#define	SLIST_NEXT(elm, field)	((elm)->field.sle_next) +#define SLIST_FIRST(head) ((head)->slh_first) +#define SLIST_END(head) NULL +#define SLIST_EMPTY(head) (SLIST_FIRST(head) == SLIST_END(head)) +#define SLIST_NEXT(elm, field) ((elm)->field.sle_next) -#define	SLIST_FOREACH(var, head, field)					\ -	for((var) = SLIST_FIRST(head);					\ -	    (var) != SLIST_END(head);					\ -	    (var) = SLIST_NEXT(var, field)) +#define SLIST_FOREACH(var, head, field) \ +    for ((var) = SLIST_FIRST(head);     \ +         (var) != SLIST_END(head);      \ +         (var) = SLIST_NEXT(var, field)) -#define	SLIST_FOREACH_PREVPTR(var, varp, head, field)			\ -	for ((varp) = &SLIST_FIRST((head));				\ -	    ((var) = *(varp)) != SLIST_END(head);			\ -	    (varp) = &SLIST_NEXT((var), field)) +#define SLIST_FOREACH_PREVPTR(var, varp, head, field) \ +    for ((varp) = &SLIST_FIRST((head));               \ +         ((var) = *(varp)) != SLIST_END(head);        \ +         (varp) = &SLIST_NEXT((var), field))  /*   * Singly-linked List functions.   */ -#define	SLIST_INIT(head) {						\ -	SLIST_FIRST(head) = SLIST_END(head);				\ -} - -#define	SLIST_INSERT_AFTER(slistelm, elm, field) do {			\ -	(elm)->field.sle_next = (slistelm)->field.sle_next;		\ -	(slistelm)->field.sle_next = (elm);				\ -} while (0) - -#define	SLIST_INSERT_HEAD(head, elm, field) do {			\ -	(elm)->field.sle_next = (head)->slh_first;			\ -	(head)->slh_first = (elm);					\ -} while (0) - -#define	SLIST_REMOVE_NEXT(head, elm, field) do {			\ -	(elm)->field.sle_next = (elm)->field.sle_next->field.sle_next;	\ -} while (0) - -#define	SLIST_REMOVE_HEAD(head, field) do {				\ -	(head)->slh_first = (head)->slh_first->field.sle_next;		\ -} while (0) - -#define SLIST_REMOVE(head, elm, type, field) do {			\ -	if ((head)->slh_first == (elm)) {				\ -		SLIST_REMOVE_HEAD((head), field);			\ -	} else {							\ -		struct type *curelm = (head)->slh_first;		\ -									\ -		while (curelm->field.sle_next != (elm))			\ -			curelm = curelm->field.sle_next;		\ -		curelm->field.sle_next =				\ -		    curelm->field.sle_next->field.sle_next;		\ -		_Q_INVALIDATE((elm)->field.sle_next);			\ -	}								\ -} while (0) +#define SLIST_INIT(head)                     \ +    {                                        \ +        SLIST_FIRST(head) = SLIST_END(head); \ +    } + +#define SLIST_INSERT_AFTER(slistelm, elm, field)            \ +    do {                                                    \ +        (elm)->field.sle_next = (slistelm)->field.sle_next; \ +        (slistelm)->field.sle_next = (elm);                 \ +    } while (0) + +#define SLIST_INSERT_HEAD(head, elm, field)        \ +    do {                                           \ +        (elm)->field.sle_next = (head)->slh_first; \ +        (head)->slh_first = (elm);                 \ +    } while (0) + +#define SLIST_REMOVE_NEXT(head, elm, field)                            \ +    do {                                                               \ +        (elm)->field.sle_next = (elm)->field.sle_next->field.sle_next; \ +    } while (0) + +#define SLIST_REMOVE_HEAD(head, field)                         \ +    do {                                                       \ +        (head)->slh_first = (head)->slh_first->field.sle_next; \ +    } while (0) + +#define SLIST_REMOVE(head, elm, type, field)                                 \ +    do {                                                                     \ +        if ((head)->slh_first == (elm)) {                                    \ +            SLIST_REMOVE_HEAD((head), field);                                \ +        } else {                                                             \ +            struct type *curelm = (head)->slh_first;                         \ +                                                                             \ +            while (curelm->field.sle_next != (elm))                          \ +                curelm = curelm->field.sle_next;                             \ +            curelm->field.sle_next = curelm->field.sle_next->field.sle_next; \ +            _Q_INVALIDATE((elm)->field.sle_next);                            \ +        }                                                                    \ +    } while (0)  /*   * List definitions.   */ -#define LIST_HEAD(name, type)						\ -struct name {								\ -	struct type *lh_first;	/* first element */			\ -} +#define LIST_HEAD(name, type)                      \ +    struct name {                                  \ +        struct type *lh_first; /* first element */ \ +    } -#define LIST_HEAD_INITIALIZER(head)					\ -	{ NULL } +#define LIST_HEAD_INITIALIZER(head) \ +    { NULL } -#define LIST_ENTRY(type)						\ -struct {								\ -	struct type *le_next;	/* next element */			\ -	struct type **le_prev;	/* address of previous next element */	\ -} +#define LIST_ENTRY(type)                                              \ +    struct {                                                          \ +        struct type *le_next;  /* next element */                     \ +        struct type **le_prev; /* address of previous next element */ \ +    }  /*   * List access methods   */ -#define	LIST_FIRST(head)		((head)->lh_first) -#define	LIST_END(head)			NULL -#define	LIST_EMPTY(head)		(LIST_FIRST(head) == LIST_END(head)) -#define	LIST_NEXT(elm, field)		((elm)->field.le_next) +#define LIST_FIRST(head) ((head)->lh_first) +#define LIST_END(head) NULL +#define LIST_EMPTY(head) (LIST_FIRST(head) == LIST_END(head)) +#define LIST_NEXT(elm, field) ((elm)->field.le_next) -#define LIST_FOREACH(var, head, field)					\ -	for((var) = LIST_FIRST(head);					\ -	    (var)!= LIST_END(head);					\ -	    (var) = LIST_NEXT(var, field)) +#define LIST_FOREACH(var, head, field) \ +    for ((var) = LIST_FIRST(head);     \ +         (var) != LIST_END(head);      \ +         (var) = LIST_NEXT(var, field))  /*   * List functions.   */ -#define	LIST_INIT(head) do {						\ -	LIST_FIRST(head) = LIST_END(head);				\ -} while (0) - -#define LIST_INSERT_AFTER(listelm, elm, field) do {			\ -	if (((elm)->field.le_next = (listelm)->field.le_next) != NULL)	\ -		(listelm)->field.le_next->field.le_prev =		\ -		    &(elm)->field.le_next;				\ -	(listelm)->field.le_next = (elm);				\ -	(elm)->field.le_prev = &(listelm)->field.le_next;		\ -} while (0) - -#define	LIST_INSERT_BEFORE(listelm, elm, field) do {			\ -	(elm)->field.le_prev = (listelm)->field.le_prev;		\ -	(elm)->field.le_next = (listelm);				\ -	*(listelm)->field.le_prev = (elm);				\ -	(listelm)->field.le_prev = &(elm)->field.le_next;		\ -} while (0) - -#define LIST_INSERT_HEAD(head, elm, field) do {				\ -	if (((elm)->field.le_next = (head)->lh_first) != NULL)		\ -		(head)->lh_first->field.le_prev = &(elm)->field.le_next;\ -	(head)->lh_first = (elm);					\ -	(elm)->field.le_prev = &(head)->lh_first;			\ -} while (0) - -#define LIST_REMOVE(elm, field) do {					\ -	if ((elm)->field.le_next != NULL)				\ -		(elm)->field.le_next->field.le_prev =			\ -		    (elm)->field.le_prev;				\ -	*(elm)->field.le_prev = (elm)->field.le_next;			\ -	_Q_INVALIDATE((elm)->field.le_prev);				\ -	_Q_INVALIDATE((elm)->field.le_next);				\ -} while (0) - -#define LIST_REPLACE(elm, elm2, field) do {				\ -	if (((elm2)->field.le_next = (elm)->field.le_next) != NULL)	\ -		(elm2)->field.le_next->field.le_prev =			\ -		    &(elm2)->field.le_next;				\ -	(elm2)->field.le_prev = (elm)->field.le_prev;			\ -	*(elm2)->field.le_prev = (elm2);				\ -	_Q_INVALIDATE((elm)->field.le_prev);				\ -	_Q_INVALIDATE((elm)->field.le_next);				\ -} while (0) +#define LIST_INIT(head)                    \ +    do {                                   \ +        LIST_FIRST(head) = LIST_END(head); \ +    } while (0) + +#define LIST_INSERT_AFTER(listelm, elm, field)                               \ +    do {                                                                     \ +        if (((elm)->field.le_next = (listelm)->field.le_next) != NULL)       \ +            (listelm)->field.le_next->field.le_prev = &(elm)->field.le_next; \ +        (listelm)->field.le_next = (elm);                                    \ +        (elm)->field.le_prev = &(listelm)->field.le_next;                    \ +    } while (0) + +#define LIST_INSERT_BEFORE(listelm, elm, field)           \ +    do {                                                  \ +        (elm)->field.le_prev = (listelm)->field.le_prev;  \ +        (elm)->field.le_next = (listelm);                 \ +        *(listelm)->field.le_prev = (elm);                \ +        (listelm)->field.le_prev = &(elm)->field.le_next; \ +    } while (0) + +#define LIST_INSERT_HEAD(head, elm, field)                           \ +    do {                                                             \ +        if (((elm)->field.le_next = (head)->lh_first) != NULL)       \ +            (head)->lh_first->field.le_prev = &(elm)->field.le_next; \ +        (head)->lh_first = (elm);                                    \ +        (elm)->field.le_prev = &(head)->lh_first;                    \ +    } while (0) + +#define LIST_REMOVE(elm, field)                                         \ +    do {                                                                \ +        if ((elm)->field.le_next != NULL)                               \ +            (elm)->field.le_next->field.le_prev = (elm)->field.le_prev; \ +        *(elm)->field.le_prev = (elm)->field.le_next;                   \ +        _Q_INVALIDATE((elm)->field.le_prev);                            \ +        _Q_INVALIDATE((elm)->field.le_next);                            \ +    } while (0) + +#define LIST_REPLACE(elm, elm2, field)                                     \ +    do {                                                                   \ +        if (((elm2)->field.le_next = (elm)->field.le_next) != NULL)        \ +            (elm2)->field.le_next->field.le_prev = &(elm2)->field.le_next; \ +        (elm2)->field.le_prev = (elm)->field.le_prev;                      \ +        *(elm2)->field.le_prev = (elm2);                                   \ +        _Q_INVALIDATE((elm)->field.le_prev);                               \ +        _Q_INVALIDATE((elm)->field.le_next);                               \ +    } while (0)  /*   * Simple queue definitions.   */ -#define SIMPLEQ_HEAD(name, type)					\ -struct name {								\ -	struct type *sqh_first;	/* first element */			\ -	struct type **sqh_last;	/* addr of last next element */		\ -} +#define SIMPLEQ_HEAD(name, type)                                \ +    struct name {                                               \ +        struct type *sqh_first; /* first element */             \ +        struct type **sqh_last; /* addr of last next element */ \ +    } -#define SIMPLEQ_HEAD_INITIALIZER(head)					\ -	{ NULL, &(head).sqh_first } +#define SIMPLEQ_HEAD_INITIALIZER(head) \ +    { NULL, &(head).sqh_first } -#define SIMPLEQ_ENTRY(type)						\ -struct {								\ -	struct type *sqe_next;	/* next element */			\ -} +#define SIMPLEQ_ENTRY(type)                       \ +    struct {                                      \ +        struct type *sqe_next; /* next element */ \ +    }  /*   * Simple queue access methods.   */ -#define	SIMPLEQ_FIRST(head)	    ((head)->sqh_first) -#define	SIMPLEQ_END(head)	    NULL -#define	SIMPLEQ_EMPTY(head)	    (SIMPLEQ_FIRST(head) == SIMPLEQ_END(head)) -#define	SIMPLEQ_NEXT(elm, field)    ((elm)->field.sqe_next) +#define SIMPLEQ_FIRST(head) ((head)->sqh_first) +#define SIMPLEQ_END(head) NULL +#define SIMPLEQ_EMPTY(head) (SIMPLEQ_FIRST(head) == SIMPLEQ_END(head)) +#define SIMPLEQ_NEXT(elm, field) ((elm)->field.sqe_next) -#define SIMPLEQ_FOREACH(var, head, field)				\ -	for((var) = SIMPLEQ_FIRST(head);				\ -	    (var) != SIMPLEQ_END(head);					\ -	    (var) = SIMPLEQ_NEXT(var, field)) +#define SIMPLEQ_FOREACH(var, head, field) \ +    for ((var) = SIMPLEQ_FIRST(head);     \ +         (var) != SIMPLEQ_END(head);      \ +         (var) = SIMPLEQ_NEXT(var, field))  /*   * Simple queue functions.   */ -#define	SIMPLEQ_INIT(head) do {						\ -	(head)->sqh_first = NULL;					\ -	(head)->sqh_last = &(head)->sqh_first;				\ -} while (0) - -#define SIMPLEQ_INSERT_HEAD(head, elm, field) do {			\ -	if (((elm)->field.sqe_next = (head)->sqh_first) == NULL)	\ -		(head)->sqh_last = &(elm)->field.sqe_next;		\ -	(head)->sqh_first = (elm);					\ -} while (0) - -#define SIMPLEQ_INSERT_TAIL(head, elm, field) do {			\ -	(elm)->field.sqe_next = NULL;					\ -	*(head)->sqh_last = (elm);					\ -	(head)->sqh_last = &(elm)->field.sqe_next;			\ -} while (0) - -#define SIMPLEQ_INSERT_AFTER(head, listelm, elm, field) do {		\ -	if (((elm)->field.sqe_next = (listelm)->field.sqe_next) == NULL)\ -		(head)->sqh_last = &(elm)->field.sqe_next;		\ -	(listelm)->field.sqe_next = (elm);				\ -} while (0) - -#define SIMPLEQ_REMOVE_HEAD(head, field) do {			\ -	if (((head)->sqh_first = (head)->sqh_first->field.sqe_next) == NULL) \ -		(head)->sqh_last = &(head)->sqh_first;			\ -} while (0) +#define SIMPLEQ_INIT(head)                     \ +    do {                                       \ +        (head)->sqh_first = NULL;              \ +        (head)->sqh_last = &(head)->sqh_first; \ +    } while (0) + +#define SIMPLEQ_INSERT_HEAD(head, elm, field)                    \ +    do {                                                         \ +        if (((elm)->field.sqe_next = (head)->sqh_first) == NULL) \ +            (head)->sqh_last = &(elm)->field.sqe_next;           \ +        (head)->sqh_first = (elm);                               \ +    } while (0) + +#define SIMPLEQ_INSERT_TAIL(head, elm, field)      \ +    do {                                           \ +        (elm)->field.sqe_next = NULL;              \ +        *(head)->sqh_last = (elm);                 \ +        (head)->sqh_last = &(elm)->field.sqe_next; \ +    } while (0) + +#define SIMPLEQ_INSERT_AFTER(head, listelm, elm, field)                  \ +    do {                                                                 \ +        if (((elm)->field.sqe_next = (listelm)->field.sqe_next) == NULL) \ +            (head)->sqh_last = &(elm)->field.sqe_next;                   \ +        (listelm)->field.sqe_next = (elm);                               \ +    } while (0) + +#define SIMPLEQ_REMOVE_HEAD(head, field)                                     \ +    do {                                                                     \ +        if (((head)->sqh_first = (head)->sqh_first->field.sqe_next) == NULL) \ +            (head)->sqh_last = &(head)->sqh_first;                           \ +    } while (0)  /*   * Tail queue definitions.   */ -#define TAILQ_HEAD(name, type)						\ -struct name {								\ -	struct type *tqh_first;	/* first element */			\ -	struct type **tqh_last;	/* addr of last next element */		\ -} +#define TAILQ_HEAD(name, type)                                  \ +    struct name {                                               \ +        struct type *tqh_first; /* first element */             \ +        struct type **tqh_last; /* addr of last next element */ \ +    } -#define TAILQ_HEAD_INITIALIZER(head)					\ -	{ NULL, &(head).tqh_first } +#define TAILQ_HEAD_INITIALIZER(head) \ +    { NULL, &(head).tqh_first } -#define TAILQ_ENTRY(type)						\ -struct {								\ -	struct type *tqe_next;	/* next element */			\ -	struct type **tqe_prev;	/* address of previous next element */	\ -} +#define TAILQ_ENTRY(type)                                              \ +    struct {                                                           \ +        struct type *tqe_next;  /* next element */                     \ +        struct type **tqe_prev; /* address of previous next element */ \ +    }  /*   * tail queue access methods   */ -#define	TAILQ_FIRST(head)		((head)->tqh_first) -#define	TAILQ_END(head)			NULL -#define	TAILQ_NEXT(elm, field)		((elm)->field.tqe_next) -#define TAILQ_LAST(head, headname)					\ -	(*(((struct headname *)((head)->tqh_last))->tqh_last)) +#define TAILQ_FIRST(head) ((head)->tqh_first) +#define TAILQ_END(head) NULL +#define TAILQ_NEXT(elm, field) ((elm)->field.tqe_next) +#define TAILQ_LAST(head, headname) \ +    (*(((struct headname *)((head)->tqh_last))->tqh_last))  /* XXX */ -#define TAILQ_PREV(elm, headname, field)				\ -	(*(((struct headname *)((elm)->field.tqe_prev))->tqh_last)) -#define	TAILQ_EMPTY(head)						\ -	(TAILQ_FIRST(head) == TAILQ_END(head)) +#define TAILQ_PREV(elm, headname, field) \ +    (*(((struct headname *)((elm)->field.tqe_prev))->tqh_last)) +#define TAILQ_EMPTY(head) \ +    (TAILQ_FIRST(head) == TAILQ_END(head)) -#define TAILQ_FOREACH(var, head, field)					\ -	for((var) = TAILQ_FIRST(head);					\ -	    (var) != TAILQ_END(head);					\ -	    (var) = TAILQ_NEXT(var, field)) +#define TAILQ_FOREACH(var, head, field) \ +    for ((var) = TAILQ_FIRST(head);     \ +         (var) != TAILQ_END(head);      \ +         (var) = TAILQ_NEXT(var, field)) -#define TAILQ_FOREACH_REVERSE(var, head, headname, field)		\ -	for((var) = TAILQ_LAST(head, headname);				\ -	    (var) != TAILQ_END(head);					\ -	    (var) = TAILQ_PREV(var, headname, field)) +#define TAILQ_FOREACH_REVERSE(var, head, headname, field) \ +    for ((var) = TAILQ_LAST(head, headname);              \ +         (var) != TAILQ_END(head);                        \ +         (var) = TAILQ_PREV(var, headname, field))  /*   * Tail queue functions.   */ -#define	TAILQ_INIT(head) do {						\ -	(head)->tqh_first = NULL;					\ -	(head)->tqh_last = &(head)->tqh_first;				\ -} while (0) - -#define TAILQ_INSERT_HEAD(head, elm, field) do {			\ -	if (((elm)->field.tqe_next = (head)->tqh_first) != NULL)	\ -		(head)->tqh_first->field.tqe_prev =			\ -		    &(elm)->field.tqe_next;				\ -	else								\ -		(head)->tqh_last = &(elm)->field.tqe_next;		\ -	(head)->tqh_first = (elm);					\ -	(elm)->field.tqe_prev = &(head)->tqh_first;			\ -} while (0) - -#define TAILQ_INSERT_TAIL(head, elm, field) do {			\ -	(elm)->field.tqe_next = NULL;					\ -	(elm)->field.tqe_prev = (head)->tqh_last;			\ -	*(head)->tqh_last = (elm);					\ -	(head)->tqh_last = &(elm)->field.tqe_next;			\ -} while (0) - -#define TAILQ_INSERT_AFTER(head, listelm, elm, field) do {		\ -	if (((elm)->field.tqe_next = (listelm)->field.tqe_next) != NULL)\ -		(elm)->field.tqe_next->field.tqe_prev =			\ -		    &(elm)->field.tqe_next;				\ -	else								\ -		(head)->tqh_last = &(elm)->field.tqe_next;		\ -	(listelm)->field.tqe_next = (elm);				\ -	(elm)->field.tqe_prev = &(listelm)->field.tqe_next;		\ -} while (0) - -#define	TAILQ_INSERT_BEFORE(listelm, elm, field) do {			\ -	(elm)->field.tqe_prev = (listelm)->field.tqe_prev;		\ -	(elm)->field.tqe_next = (listelm);				\ -	*(listelm)->field.tqe_prev = (elm);				\ -	(listelm)->field.tqe_prev = &(elm)->field.tqe_next;		\ -} while (0) - -#define TAILQ_REMOVE(head, elm, field) do {				\ -	if (((elm)->field.tqe_next) != NULL)				\ -		(elm)->field.tqe_next->field.tqe_prev =			\ -		    (elm)->field.tqe_prev;				\ -	else								\ -		(head)->tqh_last = (elm)->field.tqe_prev;		\ -	*(elm)->field.tqe_prev = (elm)->field.tqe_next;			\ -	_Q_INVALIDATE((elm)->field.tqe_prev);				\ -	_Q_INVALIDATE((elm)->field.tqe_next);				\ -} while (0) - -#define TAILQ_REPLACE(head, elm, elm2, field) do {			\ -	if (((elm2)->field.tqe_next = (elm)->field.tqe_next) != NULL)	\ -		(elm2)->field.tqe_next->field.tqe_prev =		\ -		    &(elm2)->field.tqe_next;				\ -	else								\ -		(head)->tqh_last = &(elm2)->field.tqe_next;		\ -	(elm2)->field.tqe_prev = (elm)->field.tqe_prev;			\ -	*(elm2)->field.tqe_prev = (elm2);				\ -	_Q_INVALIDATE((elm)->field.tqe_prev);				\ -	_Q_INVALIDATE((elm)->field.tqe_next);				\ -} while (0) +#define TAILQ_INIT(head)                       \ +    do {                                       \ +        (head)->tqh_first = NULL;              \ +        (head)->tqh_last = &(head)->tqh_first; \ +    } while (0) + +#define TAILQ_INSERT_HEAD(head, elm, field)                             \ +    do {                                                                \ +        if (((elm)->field.tqe_next = (head)->tqh_first) != NULL)        \ +            (head)->tqh_first->field.tqe_prev = &(elm)->field.tqe_next; \ +        else                                                            \ +            (head)->tqh_last = &(elm)->field.tqe_next;                  \ +        (head)->tqh_first = (elm);                                      \ +        (elm)->field.tqe_prev = &(head)->tqh_first;                     \ +    } while (0) + +#define TAILQ_INSERT_TAIL(head, elm, field)        \ +    do {                                           \ +        (elm)->field.tqe_next = NULL;              \ +        (elm)->field.tqe_prev = (head)->tqh_last;  \ +        *(head)->tqh_last = (elm);                 \ +        (head)->tqh_last = &(elm)->field.tqe_next; \ +    } while (0) + +#define TAILQ_INSERT_AFTER(head, listelm, elm, field)                       \ +    do {                                                                    \ +        if (((elm)->field.tqe_next = (listelm)->field.tqe_next) != NULL)    \ +            (elm)->field.tqe_next->field.tqe_prev = &(elm)->field.tqe_next; \ +        else                                                                \ +            (head)->tqh_last = &(elm)->field.tqe_next;                      \ +        (listelm)->field.tqe_next = (elm);                                  \ +        (elm)->field.tqe_prev = &(listelm)->field.tqe_next;                 \ +    } while (0) + +#define TAILQ_INSERT_BEFORE(listelm, elm, field)            \ +    do {                                                    \ +        (elm)->field.tqe_prev = (listelm)->field.tqe_prev;  \ +        (elm)->field.tqe_next = (listelm);                  \ +        *(listelm)->field.tqe_prev = (elm);                 \ +        (listelm)->field.tqe_prev = &(elm)->field.tqe_next; \ +    } while (0) + +#define TAILQ_REMOVE(head, elm, field)                                     \ +    do {                                                                   \ +        if (((elm)->field.tqe_next) != NULL)                               \ +            (elm)->field.tqe_next->field.tqe_prev = (elm)->field.tqe_prev; \ +        else                                                               \ +            (head)->tqh_last = (elm)->field.tqe_prev;                      \ +        *(elm)->field.tqe_prev = (elm)->field.tqe_next;                    \ +        _Q_INVALIDATE((elm)->field.tqe_prev);                              \ +        _Q_INVALIDATE((elm)->field.tqe_next);                              \ +    } while (0) + +#define TAILQ_REPLACE(head, elm, elm2, field)                                 \ +    do {                                                                      \ +        if (((elm2)->field.tqe_next = (elm)->field.tqe_next) != NULL)         \ +            (elm2)->field.tqe_next->field.tqe_prev = &(elm2)->field.tqe_next; \ +        else                                                                  \ +            (head)->tqh_last = &(elm2)->field.tqe_next;                       \ +        (elm2)->field.tqe_prev = (elm)->field.tqe_prev;                       \ +        *(elm2)->field.tqe_prev = (elm2);                                     \ +        _Q_INVALIDATE((elm)->field.tqe_prev);                                 \ +        _Q_INVALIDATE((elm)->field.tqe_next);                                 \ +    } while (0)  /*   * Circular queue definitions.   */ -#define CIRCLEQ_HEAD(name, type)					\ -struct name {								\ -	struct type *cqh_first;		/* first element */		\ -	struct type *cqh_last;		/* last element */		\ -} +#define CIRCLEQ_HEAD(name, type)                    \ +    struct name {                                   \ +        struct type *cqh_first; /* first element */ \ +        struct type *cqh_last;  /* last element */  \ +    } -#define CIRCLEQ_HEAD_INITIALIZER(head)					\ -	{ CIRCLEQ_END(&head), CIRCLEQ_END(&head) } +#define CIRCLEQ_HEAD_INITIALIZER(head) \ +    { CIRCLEQ_END(&head), CIRCLEQ_END(&head) } -#define CIRCLEQ_ENTRY(type)						\ -struct {								\ -	struct type *cqe_next;		/* next element */		\ -	struct type *cqe_prev;		/* previous element */		\ -} +#define CIRCLEQ_ENTRY(type)                           \ +    struct {                                          \ +        struct type *cqe_next; /* next element */     \ +        struct type *cqe_prev; /* previous element */ \ +    }  /*   * Circular queue access methods   */ -#define	CIRCLEQ_FIRST(head)		((head)->cqh_first) -#define	CIRCLEQ_LAST(head)		((head)->cqh_last) -#define	CIRCLEQ_END(head)		((void *)(head)) -#define	CIRCLEQ_NEXT(elm, field)	((elm)->field.cqe_next) -#define	CIRCLEQ_PREV(elm, field)	((elm)->field.cqe_prev) -#define	CIRCLEQ_EMPTY(head)						\ -	(CIRCLEQ_FIRST(head) == CIRCLEQ_END(head)) - -#define CIRCLEQ_FOREACH(var, head, field)				\ -	for((var) = CIRCLEQ_FIRST(head);				\ -	    (var) != CIRCLEQ_END(head);					\ -	    (var) = CIRCLEQ_NEXT(var, field)) - -#define CIRCLEQ_FOREACH_REVERSE(var, head, field)			\ -	for((var) = CIRCLEQ_LAST(head);					\ -	    (var) != CIRCLEQ_END(head);					\ -	    (var) = CIRCLEQ_PREV(var, field)) +#define CIRCLEQ_FIRST(head) ((head)->cqh_first) +#define CIRCLEQ_LAST(head) ((head)->cqh_last) +#define CIRCLEQ_END(head) ((void *)(head)) +#define CIRCLEQ_NEXT(elm, field) ((elm)->field.cqe_next) +#define CIRCLEQ_PREV(elm, field) ((elm)->field.cqe_prev) +#define CIRCLEQ_EMPTY(head) \ +    (CIRCLEQ_FIRST(head) == CIRCLEQ_END(head)) + +#define CIRCLEQ_FOREACH(var, head, field) \ +    for ((var) = CIRCLEQ_FIRST(head);     \ +         (var) != CIRCLEQ_END(head);      \ +         (var) = CIRCLEQ_NEXT(var, field)) + +#define CIRCLEQ_FOREACH_REVERSE(var, head, field) \ +    for ((var) = CIRCLEQ_LAST(head);              \ +         (var) != CIRCLEQ_END(head);              \ +         (var) = CIRCLEQ_PREV(var, field))  /*   * Circular queue functions.   */ -#define	CIRCLEQ_INIT(head) do {						\ -	(head)->cqh_first = CIRCLEQ_END(head);				\ -	(head)->cqh_last = CIRCLEQ_END(head);				\ -} while (0) - -#define CIRCLEQ_INSERT_AFTER(head, listelm, elm, field) do {		\ -	(elm)->field.cqe_next = (listelm)->field.cqe_next;		\ -	(elm)->field.cqe_prev = (listelm);				\ -	if ((listelm)->field.cqe_next == CIRCLEQ_END(head))		\ -		(head)->cqh_last = (elm);				\ -	else								\ -		(listelm)->field.cqe_next->field.cqe_prev = (elm);	\ -	(listelm)->field.cqe_next = (elm);				\ -} while (0) - -#define CIRCLEQ_INSERT_BEFORE(head, listelm, elm, field) do {		\ -	(elm)->field.cqe_next = (listelm);				\ -	(elm)->field.cqe_prev = (listelm)->field.cqe_prev;		\ -	if ((listelm)->field.cqe_prev == CIRCLEQ_END(head))		\ -		(head)->cqh_first = (elm);				\ -	else								\ -		(listelm)->field.cqe_prev->field.cqe_next = (elm);	\ -	(listelm)->field.cqe_prev = (elm);				\ -} while (0) - -#define CIRCLEQ_INSERT_HEAD(head, elm, field) do {			\ -	(elm)->field.cqe_next = (head)->cqh_first;			\ -	(elm)->field.cqe_prev = CIRCLEQ_END(head);			\ -	if ((head)->cqh_last == CIRCLEQ_END(head))			\ -		(head)->cqh_last = (elm);				\ -	else								\ -		(head)->cqh_first->field.cqe_prev = (elm);		\ -	(head)->cqh_first = (elm);					\ -} while (0) - -#define CIRCLEQ_INSERT_TAIL(head, elm, field) do {			\ -	(elm)->field.cqe_next = CIRCLEQ_END(head);			\ -	(elm)->field.cqe_prev = (head)->cqh_last;			\ -	if ((head)->cqh_first == CIRCLEQ_END(head))			\ -		(head)->cqh_first = (elm);				\ -	else								\ -		(head)->cqh_last->field.cqe_next = (elm);		\ -	(head)->cqh_last = (elm);					\ -} while (0) - -#define	CIRCLEQ_REMOVE(head, elm, field) do {				\ -	if ((elm)->field.cqe_next == CIRCLEQ_END(head))			\ -		(head)->cqh_last = (elm)->field.cqe_prev;		\ -	else								\ -		(elm)->field.cqe_next->field.cqe_prev =			\ -		    (elm)->field.cqe_prev;				\ -	if ((elm)->field.cqe_prev == CIRCLEQ_END(head))			\ -		(head)->cqh_first = (elm)->field.cqe_next;		\ -	else								\ -		(elm)->field.cqe_prev->field.cqe_next =			\ -		    (elm)->field.cqe_next;				\ -	_Q_INVALIDATE((elm)->field.cqe_prev);				\ -	_Q_INVALIDATE((elm)->field.cqe_next);				\ -} while (0) - -#define CIRCLEQ_REPLACE(head, elm, elm2, field) do {			\ -	if (((elm2)->field.cqe_next = (elm)->field.cqe_next) ==		\ -	    CIRCLEQ_END(head))						\ -		(head)->cqh_last = (elm2);				\ -	else								\ -		(elm2)->field.cqe_next->field.cqe_prev = (elm2);	\ -	if (((elm2)->field.cqe_prev = (elm)->field.cqe_prev) ==		\ -	    CIRCLEQ_END(head))						\ -		(head)->cqh_first = (elm2);				\ -	else								\ -		(elm2)->field.cqe_prev->field.cqe_next = (elm2);	\ -	_Q_INVALIDATE((elm)->field.cqe_prev);				\ -	_Q_INVALIDATE((elm)->field.cqe_next);				\ -} while (0) - -#endif	/* !_SYS_QUEUE_H_ */ +#define CIRCLEQ_INIT(head)                     \ +    do {                                       \ +        (head)->cqh_first = CIRCLEQ_END(head); \ +        (head)->cqh_last = CIRCLEQ_END(head);  \ +    } while (0) + +#define CIRCLEQ_INSERT_AFTER(head, listelm, elm, field)        \ +    do {                                                       \ +        (elm)->field.cqe_next = (listelm)->field.cqe_next;     \ +        (elm)->field.cqe_prev = (listelm);                     \ +        if ((listelm)->field.cqe_next == CIRCLEQ_END(head))    \ +            (head)->cqh_last = (elm);                          \ +        else                                                   \ +            (listelm)->field.cqe_next->field.cqe_prev = (elm); \ +        (listelm)->field.cqe_next = (elm);                     \ +    } while (0) + +#define CIRCLEQ_INSERT_BEFORE(head, listelm, elm, field)       \ +    do {                                                       \ +        (elm)->field.cqe_next = (listelm);                     \ +        (elm)->field.cqe_prev = (listelm)->field.cqe_prev;     \ +        if ((listelm)->field.cqe_prev == CIRCLEQ_END(head))    \ +            (head)->cqh_first = (elm);                         \ +        else                                                   \ +            (listelm)->field.cqe_prev->field.cqe_next = (elm); \ +        (listelm)->field.cqe_prev = (elm);                     \ +    } while (0) + +#define CIRCLEQ_INSERT_HEAD(head, elm, field)          \ +    do {                                               \ +        (elm)->field.cqe_next = (head)->cqh_first;     \ +        (elm)->field.cqe_prev = CIRCLEQ_END(head);     \ +        if ((head)->cqh_last == CIRCLEQ_END(head))     \ +            (head)->cqh_last = (elm);                  \ +        else                                           \ +            (head)->cqh_first->field.cqe_prev = (elm); \ +        (head)->cqh_first = (elm);                     \ +    } while (0) + +#define CIRCLEQ_INSERT_TAIL(head, elm, field)         \ +    do {                                              \ +        (elm)->field.cqe_next = CIRCLEQ_END(head);    \ +        (elm)->field.cqe_prev = (head)->cqh_last;     \ +        if ((head)->cqh_first == CIRCLEQ_END(head))   \ +            (head)->cqh_first = (elm);                \ +        else                                          \ +            (head)->cqh_last->field.cqe_next = (elm); \ +        (head)->cqh_last = (elm);                     \ +    } while (0) + +#define CIRCLEQ_REMOVE(head, elm, field)                                   \ +    do {                                                                   \ +        if ((elm)->field.cqe_next == CIRCLEQ_END(head))                    \ +            (head)->cqh_last = (elm)->field.cqe_prev;                      \ +        else                                                               \ +            (elm)->field.cqe_next->field.cqe_prev = (elm)->field.cqe_prev; \ +        if ((elm)->field.cqe_prev == CIRCLEQ_END(head))                    \ +            (head)->cqh_first = (elm)->field.cqe_next;                     \ +        else                                                               \ +            (elm)->field.cqe_prev->field.cqe_next = (elm)->field.cqe_next; \ +        _Q_INVALIDATE((elm)->field.cqe_prev);                              \ +        _Q_INVALIDATE((elm)->field.cqe_next);                              \ +    } while (0) + +#define CIRCLEQ_REPLACE(head, elm, elm2, field)                                    \ +    do {                                                                           \ +        if (((elm2)->field.cqe_next = (elm)->field.cqe_next) == CIRCLEQ_END(head)) \ +            (head)->cqh_last = (elm2);                                             \ +        else                                                                       \ +            (elm2)->field.cqe_next->field.cqe_prev = (elm2);                       \ +        if (((elm2)->field.cqe_prev = (elm)->field.cqe_prev) == CIRCLEQ_END(head)) \ +            (head)->cqh_first = (elm2);                                            \ +        else                                                                       \ +            (elm2)->field.cqe_prev->field.cqe_next = (elm2);                       \ +        _Q_INVALIDATE((elm)->field.cqe_prev);                                      \ +        _Q_INVALIDATE((elm)->field.cqe_next);                                      \ +    } while (0) + +#endif /* !_SYS_QUEUE_H_ */  | 
