OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [libiberty/] [insque.c] - Blame information for rev 801

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 736 jeremybenn
/* insque(3C) routines
2
   This file is in the public domain.  */
3
 
4
/*
5
 
6
@deftypefn Supplemental void insque (struct qelem *@var{elem}, @
7
  struct qelem *@var{pred})
8
@deftypefnx Supplemental void remque (struct qelem *@var{elem})
9
 
10
Routines to manipulate queues built from doubly linked lists.  The
11
@code{insque} routine inserts @var{elem} in the queue immediately
12
after @var{pred}.  The @code{remque} routine removes @var{elem} from
13
its containing queue.  These routines expect to be passed pointers to
14
structures which have as their first members a forward pointer and a
15
back pointer, like this prototype (although no prototype is provided):
16
 
17
@example
18
struct qelem @{
19
  struct qelem *q_forw;
20
  struct qelem *q_back;
21
  char q_data[];
22
@};
23
@end example
24
 
25
@end deftypefn
26
 
27
*/
28
 
29
 
30
struct qelem {
31
  struct qelem *q_forw;
32
  struct qelem *q_back;
33
};
34
 
35
 
36
void
37
insque (struct qelem *elem, struct qelem *pred)
38
{
39
  elem -> q_forw = pred -> q_forw;
40
  pred -> q_forw -> q_back = elem;
41
  elem -> q_back = pred;
42
  pred -> q_forw = elem;
43
}
44
 
45
 
46
void
47
remque (struct qelem *elem)
48
{
49
  elem -> q_forw -> q_back = elem -> q_back;
50
  elem -> q_back -> q_forw = elem -> q_forw;
51
}

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.