Mercurial > hg > CbC > CbC_gcc
view libiberty/insque.c @ 50:4e0a8e84ee55
Added tag cbc-4.4.3 for changeset 2e19f845ea37
author | kent <kent@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Sun, 07 Feb 2010 17:56:48 +0900 |
parents | a06113de4d67 |
children | f6334be47118 |
line wrap: on
line source
/* insque(3C) routines This file is in the public domain. */ /* @deftypefn Supplemental void insque (struct qelem *@var{elem}, struct qelem *@var{pred}) @deftypefnx Supplemental void remque (struct qelem *@var{elem}) Routines to manipulate queues built from doubly linked lists. The @code{insque} routine inserts @var{elem} in the queue immediately after @var{pred}. The @code{remque} routine removes @var{elem} from its containing queue. These routines expect to be passed pointers to structures which have as their first members a forward pointer and a back pointer, like this prototype (although no prototype is provided): @example struct qelem @{ struct qelem *q_forw; struct qelem *q_back; char q_data[]; @}; @end example @end deftypefn */ struct qelem { struct qelem *q_forw; struct qelem *q_back; }; void insque (struct qelem *elem, struct qelem *pred) { elem -> q_forw = pred -> q_forw; pred -> q_forw -> q_back = elem; elem -> q_back = pred; pred -> q_forw = elem; } void remque (struct qelem *elem) { elem -> q_forw -> q_back = elem -> q_back; elem -> q_back -> q_forw = elem -> q_forw; }