]> git.proxmox.com Git - mirror_edk2.git/blob - MdeModulePkg/Bus/Pci/EhciPei/EhciSched.h
MdeModulePkg: Clean up source files
[mirror_edk2.git] / MdeModulePkg / Bus / Pci / EhciPei / EhciSched.h
1 /** @file
2 Private Header file for Usb Host Controller PEIM
3
4 Copyright (c) 2010 - 2018, Intel Corporation. All rights reserved.<BR>
5
6 This program and the accompanying materials
7 are licensed and made available under the terms and conditions
8 of the BSD License which accompanies this distribution. The
9 full text of the license may be found at
10 http://opensource.org/licenses/bsd-license.php
11
12 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
13 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
14
15 **/
16
17 #ifndef _EFI_EHCI_SCHED_H_
18 #define _EFI_EHCI_SCHED_H_
19
20 /**
21 Initialize the schedule data structure such as frame list.
22
23 @param Ehc The EHCI device to init schedule data for.
24
25 @retval EFI_OUT_OF_RESOURCES Failed to allocate resource to init schedule data.
26 @retval EFI_SUCCESS The schedule data is initialized.
27
28 **/
29 EFI_STATUS
30 EhcInitSched (
31 IN PEI_USB2_HC_DEV *Ehc
32 )
33 ;
34
35 /**
36 Free the schedule data. It may be partially initialized.
37
38 @param Ehc The EHCI device.
39
40 **/
41 VOID
42 EhcFreeSched (
43 IN PEI_USB2_HC_DEV *Ehc
44 )
45 ;
46
47 /**
48 Link the queue head to the asynchronous schedule list.
49 UEFI only supports one CTRL/BULK transfer at a time
50 due to its interfaces. This simplifies the AsynList
51 management: A reclamation header is always linked to
52 the AsyncListAddr, the only active QH is appended to it.
53
54 @param Ehc The EHCI device.
55 @param Qh The queue head to link.
56
57 **/
58 VOID
59 EhcLinkQhToAsync (
60 IN PEI_USB2_HC_DEV *Ehc,
61 IN PEI_EHC_QH *Qh
62 )
63 ;
64
65 /**
66 Unlink a queue head from the asynchronous schedule list.
67 Need to synchronize with hardware.
68
69 @param Ehc The EHCI device.
70 @param Qh The queue head to unlink.
71
72 **/
73 VOID
74 EhcUnlinkQhFromAsync (
75 IN PEI_USB2_HC_DEV *Ehc,
76 IN PEI_EHC_QH *Qh
77 )
78 ;
79
80 /**
81 Execute the transfer by polling the URB. This is a synchronous operation.
82
83 @param Ehc The EHCI device.
84 @param Urb The URB to execute.
85 @param TimeOut The time to wait before abort, in millisecond.
86
87 @retval EFI_DEVICE_ERROR The transfer failed due to transfer error.
88 @retval EFI_TIMEOUT The transfer failed due to time out.
89 @retval EFI_SUCCESS The transfer finished OK.
90
91 **/
92 EFI_STATUS
93 EhcExecTransfer (
94 IN PEI_USB2_HC_DEV *Ehc,
95 IN PEI_URB *Urb,
96 IN UINTN TimeOut
97 )
98 ;
99
100 #endif