/** @file NvmExpressDxe driver is used to manage non-volatile memory subsystem which follows NVM Express specification. (C) Copyright 2016 Hewlett Packard Enterprise Development LP
Copyright (c) 2013 - 2015, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php. THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. **/ #ifndef _NVME_HCI_H_ #define _NVME_HCI_H_ #define NVME_BAR 0 // // Offset from the beginning of private data queue buffer // #define NVME_ASQ_BUF_OFFSET EFI_PAGE_SIZE /** Initialize the Nvm Express controller. @param[in] Private The pointer to the NVME_CONTROLLER_PRIVATE_DATA data structure. @retval EFI_SUCCESS The NVM Express Controller is initialized successfully. @retval Others A device error occurred while initializing the controller. **/ EFI_STATUS NvmeControllerInit ( IN NVME_CONTROLLER_PRIVATE_DATA *Private ); /** Get identify controller data. @param Private The pointer to the NVME_CONTROLLER_PRIVATE_DATA data structure. @param Buffer The buffer used to store the identify controller data. @return EFI_SUCCESS Successfully get the identify controller data. @return EFI_DEVICE_ERROR Fail to get the identify controller data. **/ EFI_STATUS NvmeIdentifyController ( IN NVME_CONTROLLER_PRIVATE_DATA *Private, IN VOID *Buffer ); /** Get specified identify namespace data. @param Private The pointer to the NVME_CONTROLLER_PRIVATE_DATA data structure. @param NamespaceId The specified namespace identifier. @param Buffer The buffer used to store the identify namespace data. @return EFI_SUCCESS Successfully get the identify namespace data. @return EFI_DEVICE_ERROR Fail to get the identify namespace data. **/ EFI_STATUS NvmeIdentifyNamespace ( IN NVME_CONTROLLER_PRIVATE_DATA *Private, IN UINT32 NamespaceId, IN VOID *Buffer ); #endif