• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /** @file
2   Copyright (c) 2016, Linaro, Ltd. All rights reserved.<BR>
3 
4   This program and the accompanying materials
5   are licensed and made available under the terms and conditions of the BSD License
6   which accompanies this distribution.  The full text of the license may be found at
7   http://opensource.org/licenses/bsd-license.php
8 
9   THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
10   WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
11 
12 **/
13 
14 #ifndef __NON_DISCOVERABLE_DEVICE_REGISTRATION_LIB_H__
15 #define __NON_DISCOVERABLE_DEVICE_REGISTRATION_LIB_H__
16 
17 #include <Protocol/NonDiscoverableDevice.h>
18 
19 typedef enum {
20   NonDiscoverableDeviceTypeAhci,
21   NonDiscoverableDeviceTypeAmba,
22   NonDiscoverableDeviceTypeEhci,
23   NonDiscoverableDeviceTypeNvme,
24   NonDiscoverableDeviceTypeOhci,
25   NonDiscoverableDeviceTypeSdhci,
26   NonDiscoverableDeviceTypeUfs,
27   NonDiscoverableDeviceTypeUhci,
28   NonDiscoverableDeviceTypeXhci,
29   NonDiscoverableDeviceTypeMax,
30 } NON_DISCOVERABLE_DEVICE_TYPE;
31 
32 /**
33   Register a non-discoverable MMIO device
34 
35   @param[in]      Type                The type of non-discoverable device
36   @param[in]      DmaType             Whether the device is DMA coherent
37   @param[in]      InitFunc            Initialization routine to be invoked when
38                                       the device is enabled
39   @param[in,out]  Handle              The handle onto which to install the
40                                       non-discoverable device protocol.
41                                       If Handle is NULL or *Handle is NULL, a
42                                       new handle will be allocated.
43   @param[in]      NumMmioResources    The number of UINTN base/size pairs that
44                                       follow, each describing an MMIO region
45                                       owned by the device
46   @param[in]  ...                     The variable argument list which contains the
47                                       info about MmioResources.
48 
49   @retval EFI_SUCCESS                 The registration succeeded.
50   @retval Other                       The registration failed.
51 
52 **/
53 EFI_STATUS
54 EFIAPI
55 RegisterNonDiscoverableMmioDevice (
56   IN      NON_DISCOVERABLE_DEVICE_TYPE      Type,
57   IN      NON_DISCOVERABLE_DEVICE_DMA_TYPE  DmaType,
58   IN      NON_DISCOVERABLE_DEVICE_INIT      InitFunc,
59   IN OUT  EFI_HANDLE                        *Handle OPTIONAL,
60   IN      UINTN                             NumMmioResources,
61   ...
62   );
63 
64 #endif
65