1/*
2 * Copyright (c) 2007-2013 ETH Zurich.
3 * All rights reserved.
4 *
5 * This file is distributed under the terms in the attached LICENSE file.
6 * If you do not find this file, copies can be found by writing to:
7 * ETH Zurich D-INFK, Universitaetstrasse 6, CH-8092 Zurich. Attn: Systems Group.
8 */
9
10
11#ifndef USB_EHCI_MEMORY_H_
12#define USB_EHCI_MEMORY_H_
13
14
15typedef enum {
16   USB_EHCI_DS_32BIT,
17   USB_EHCI_DS_64BIT
18} usb_ds_size_t;
19
20void usb_ehci_set_datastruct_size(usb_ds_size_t size);
21void usb_ehci_print_datastruct_sizes(void);
22
23
24struct usb_ehci_qh *usb_ehci_qh_alloc(void);
25void usb_ehci_qh_free(struct usb_ehci_qh *qh);
26
27struct usb_ehci_qtd *usb_ehci_qtd_alloc(void);
28void usb_ehci_qtd_free(struct usb_ehci_qtd *qtd);
29
30struct usb_ehci_sitd *usb_ehci_sitd_alloc(void);
31void usb_ehci_sitd_free(struct usb_ehci_sitd *sitd);
32
33struct usb_ehci_itd *usb_ehci_itd_alloc(void);
34void usb_ehci_itd_free(struct usb_ehci_itd *itd);
35
36usb_paddr_t usb_ehci_buffer_page_alloc(void);
37void usb_ehci_buffer_page_free(usb_paddr_t buf);
38
39void usb_ehci_pframes_alloc(usb_ehci_hc_t *hc);
40
41
42#endif /* USB_EHCI_MEMORY_H_ */
43