LibXenon
Bare-metal Xbox 360 homebrew library
Loading...
Searching...
No Matches
libxenon
drivers
nocfe
lib_queue.h
Go to the documentation of this file.
1
/* *********************************************************************
2
* Broadcom Common Firmware Environment (CFE)
3
*
4
* Queue management prototypes File: lib_queue.h
5
*
6
* Constants, structures, and function prototypes for the queue
7
* manager.
8
*
9
* Author: Mitch Lichtenberg
10
*
11
*********************************************************************
12
*
13
* Copyright 2000,2001,2002,2003
14
* Broadcom Corporation. All rights reserved.
15
*
16
* This software is furnished under license and may be used and
17
* copied only in accordance with the following terms and
18
* conditions. Subject to these conditions, you may download,
19
* copy, install, use, modify and distribute modified or unmodified
20
* copies of this software in source and/or binary form. No title
21
* or ownership is transferred hereby.
22
*
23
* 1) Any source code used, modified or distributed must reproduce
24
* and retain this copyright notice and list of conditions
25
* as they appear in the source file.
26
*
27
* 2) No right is granted to use any trade name, trademark, or
28
* logo of Broadcom Corporation. The "Broadcom Corporation"
29
* name may not be used to endorse or promote products derived
30
* from this software without the prior written permission of
31
* Broadcom Corporation.
32
*
33
* 3) THIS SOFTWARE IS PROVIDED "AS-IS" AND ANY EXPRESS OR
34
* IMPLIED WARRANTIES, INCLUDING BUT NOT LIMITED TO, ANY IMPLIED
35
* WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
36
* PURPOSE, OR NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT
37
* SHALL BROADCOM BE LIABLE FOR ANY DAMAGES WHATSOEVER, AND IN
38
* PARTICULAR, BROADCOM SHALL NOT BE LIABLE FOR DIRECT, INDIRECT,
39
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
40
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
41
* GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
42
* BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
43
* OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
44
* TORT (INCLUDING NEGLIGENCE OR OTHERWISE), EVEN IF ADVISED OF
45
* THE POSSIBILITY OF SUCH DAMAGE.
46
********************************************************************* */
47
48
49
#ifndef _LIB_QUEUE_H
50
#define _LIB_QUEUE_H
51
52
/* *********************************************************************
53
* Macros
54
********************************************************************* */
55
56
#define q_init(q) (q)->q_prev = (q), (q)->q_next = (q)
57
#define q_isempty(q) ((q)->q_next == (q))
58
#define q_getfirst(q) ((q)->q_next)
59
#define q_getlast(q) ((q)->q_prev)
60
61
/* *********************************************************************
62
* Types
63
********************************************************************* */
64
65
66
typedef
struct
queue_s
{
67
struct
queue_s
*
q_next
;
68
struct
queue_s
*
q_prev
;
69
}
queue_t
;
70
71
72
/* *********************************************************************
73
* Prototypes
74
********************************************************************* */
75
76
void
q_enqueue
(
queue_t
*,
queue_t
*);
77
void
q_dequeue
(
queue_t
*);
78
queue_t
*
q_deqnext
(
queue_t
*);
79
int
q_map
(
queue_t
*qb,
int
(*func)(
queue_t
*,
unsigned
int
,
unsigned
int
),
80
unsigned
int
a,
unsigned
int
b);
81
int
q_count
(
queue_t
*);
82
int
q_find
(
queue_t
*,
queue_t
*);
83
84
85
#endif
queue_t
struct queue_s queue_t
q_enqueue
void q_enqueue(queue_t *, queue_t *)
Definition:
lib_queue.c:65
q_count
int q_count(queue_t *)
Definition:
lib_queue.c:173
q_map
int q_map(queue_t *qb, int(*func)(queue_t *, unsigned int, unsigned int), unsigned int a, unsigned int b)
Definition:
lib_queue.c:138
q_dequeue
void q_dequeue(queue_t *)
Definition:
lib_queue.c:86
q_deqnext
queue_t * q_deqnext(queue_t *)
Definition:
lib_queue.c:105
q_find
int q_find(queue_t *, queue_t *)
Definition:
lib_queue.c:204
queue_s
Definition:
lib_queue.h:66
queue_s::q_prev
struct queue_s * q_prev
Definition:
lib_queue.h:68
queue_s::q_next
struct queue_s * q_next
Definition:
lib_queue.h:67
Generated by
1.9.5