/** @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.
SPDX-License-Identifier: BSD-2-Clause-Patent **/ #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