2 NvmExpressDxe driver is used to manage non-volatile memory subsystem which follows
3 NVM Express specification.
5 (C) Copyright 2016 Hewlett Packard Enterprise Development LP<BR>
6 Copyright (c) 2013 - 2015, Intel Corporation. All rights reserved.<BR>
7 This program and the accompanying materials
8 are licensed and made available under the terms and conditions of the BSD License
9 which accompanies this distribution. The full text of the license may be found at
10 http://opensource.org/licenses/bsd-license.php.
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.
23 // Offset from the beginning of private data queue buffer
25 #define NVME_ASQ_BUF_OFFSET EFI_PAGE_SIZE
28 Initialize the Nvm Express controller.
30 @param[in] Private The pointer to the NVME_CONTROLLER_PRIVATE_DATA data structure.
32 @retval EFI_SUCCESS The NVM Express Controller is initialized successfully.
33 @retval Others A device error occurred while initializing the controller.
38 IN NVME_CONTROLLER_PRIVATE_DATA
*Private
42 Get identify controller data.
44 @param Private The pointer to the NVME_CONTROLLER_PRIVATE_DATA data structure.
45 @param Buffer The buffer used to store the identify controller data.
47 @return EFI_SUCCESS Successfully get the identify controller data.
48 @return EFI_DEVICE_ERROR Fail to get the identify controller data.
52 NvmeIdentifyController (
53 IN NVME_CONTROLLER_PRIVATE_DATA
*Private
,
58 Get specified identify namespace data.
60 @param Private The pointer to the NVME_CONTROLLER_PRIVATE_DATA data structure.
61 @param NamespaceId The specified namespace identifier.
62 @param Buffer The buffer used to store the identify namespace data.
64 @return EFI_SUCCESS Successfully get the identify namespace data.
65 @return EFI_DEVICE_ERROR Fail to get the identify namespace data.
69 NvmeIdentifyNamespace (
70 IN NVME_CONTROLLER_PRIVATE_DATA
*Private
,
71 IN UINT32 NamespaceId
,