Mercurial > hg > CbC > CbC_gcc
view libiberty/insque.c @ 15:11a6cbe2d14c
The configure script which is produced from configure.ac was changed.
but this script cannot be generated in this repository.
You can use GCC's original subversion repository to generate it.
See CbC-memo.ja.
And _CbC_return's nested function was made supporting any
return type.
author | kent <kent@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Thu, 24 Sep 2009 12:44:28 +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; }