set most of trunk svn property eol-style:native
[reactos.git] / reactos / drivers / usb / nt4compat / usbdriver / irplist.h
1 #ifndef __IRPLIST_H
2 #define __IRPLIST_H
3
4 #define MAX_IRP_LIST_SIZE 32
5
6 typedef struct _IRP_LIST_ELEMENT
7 {
8 LIST_ENTRY irp_link;
9 PIRP pirp;
10 struct _URB *purb;
11
12 } IRP_LIST_ELEMENT, *PIRP_LIST_ELEMENT;
13
14 typedef struct _IRP_LIST
15 {
16 KSPIN_LOCK irp_list_lock;
17 LIST_HEAD irp_busy_list;
18 LONG irp_free_list_count;
19 LIST_HEAD irp_free_list;
20 PIRP_LIST_ELEMENT irp_list_element_array;
21
22 } IRP_LIST, *PIRP_LIST;
23
24 BOOLEAN
25 init_irp_list(
26 PIRP_LIST irp_list
27 );
28
29 VOID
30 destroy_irp_list(
31 PIRP_LIST irp_list
32 );
33
34 BOOLEAN
35 add_irp_to_list(
36 PIRP_LIST irp_list,
37 PIRP pirp,
38 PURB purb
39 );
40
41 PURB
42 remove_irp_from_list(
43 PIRP_LIST irp_list,
44 PIRP pirp,
45 struct _USB_DEV_MANAGER *dev_mgr
46 );
47
48 BOOLEAN
49 irp_list_empty(
50 PIRP_LIST irp_list
51 );
52
53 BOOLEAN
54 irp_list_full(
55 PIRP_LIST irp_list
56 );
57
58 #endif