]> git.proxmox.com Git - mirror_edk2.git/blob - MdeModulePkg/Include/Library/NonDiscoverableDeviceRegistrationLib.h
MdeModulePkg: Replace BSD License with BSD+Patent License
[mirror_edk2.git] / MdeModulePkg / Include / Library / NonDiscoverableDeviceRegistrationLib.h
1 /** @file
2 Copyright (c) 2016, Linaro, Ltd. All rights reserved.<BR>
3
4 SPDX-License-Identifier: BSD-2-Clause-Patent
5
6 **/
7
8 #ifndef __NON_DISCOVERABLE_DEVICE_REGISTRATION_LIB_H__
9 #define __NON_DISCOVERABLE_DEVICE_REGISTRATION_LIB_H__
10
11 #include <Protocol/NonDiscoverableDevice.h>
12
13 typedef enum {
14 NonDiscoverableDeviceTypeAhci,
15 NonDiscoverableDeviceTypeAmba,
16 NonDiscoverableDeviceTypeEhci,
17 NonDiscoverableDeviceTypeNvme,
18 NonDiscoverableDeviceTypeOhci,
19 NonDiscoverableDeviceTypeSdhci,
20 NonDiscoverableDeviceTypeUfs,
21 NonDiscoverableDeviceTypeUhci,
22 NonDiscoverableDeviceTypeXhci,
23 NonDiscoverableDeviceTypeMax,
24 } NON_DISCOVERABLE_DEVICE_TYPE;
25
26 /**
27 Register a non-discoverable MMIO device
28
29 @param[in] Type The type of non-discoverable device
30 @param[in] DmaType Whether the device is DMA coherent
31 @param[in] InitFunc Initialization routine to be invoked when
32 the device is enabled
33 @param[in,out] Handle The handle onto which to install the
34 non-discoverable device protocol.
35 If Handle is NULL or *Handle is NULL, a
36 new handle will be allocated.
37 @param[in] NumMmioResources The number of UINTN base/size pairs that
38 follow, each describing an MMIO region
39 owned by the device
40 @param[in] ... The variable argument list which contains the
41 info about MmioResources.
42
43 @retval EFI_SUCCESS The registration succeeded.
44 @retval Other The registration failed.
45
46 **/
47 EFI_STATUS
48 EFIAPI
49 RegisterNonDiscoverableMmioDevice (
50 IN NON_DISCOVERABLE_DEVICE_TYPE Type,
51 IN NON_DISCOVERABLE_DEVICE_DMA_TYPE DmaType,
52 IN NON_DISCOVERABLE_DEVICE_INIT InitFunc,
53 IN OUT EFI_HANDLE *Handle OPTIONAL,
54 IN UINTN NumMmioResources,
55 ...
56 );
57
58 #endif