diff options
author | Ben Cheng <bccheng@google.com> | 2013-04-09 11:29:01 -0700 |
---|---|---|
committer | Ben Cheng <bccheng@google.com> | 2013-04-09 11:29:01 -0700 |
commit | f226517827d64cc8f9dccb0952731601ac13ef2a (patch) | |
tree | 84b1056255b318a87b7a47b2684655660cab66f0 /binutils-2.23/libiberty/insque.c | |
parent | 30fe22e2cc89991b16ab3853f95c7319574456ce (diff) | |
download | toolchain_binutils-f226517827d64cc8f9dccb0952731601ac13ef2a.tar.gz toolchain_binutils-f226517827d64cc8f9dccb0952731601ac13ef2a.tar.bz2 toolchain_binutils-f226517827d64cc8f9dccb0952731601ac13ef2a.zip |
Initial checkin for binutils 2.23.2 (needed by aarch64)
Change-Id: I7e5f319e9e632cc0ccc8a4ec1051169ed2849ca4
Diffstat (limited to 'binutils-2.23/libiberty/insque.c')
-rw-r--r-- | binutils-2.23/libiberty/insque.c | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/binutils-2.23/libiberty/insque.c b/binutils-2.23/libiberty/insque.c new file mode 100644 index 00000000..fd02357b --- /dev/null +++ b/binutils-2.23/libiberty/insque.c @@ -0,0 +1,51 @@ +/* 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; +} |