2013-08-12 08:13:54 +02:00
|
|
|
/** @file
|
|
|
|
NvmExpressDxe driver is used to manage non-volatile memory subsystem which follows
|
|
|
|
NVM Express specification.
|
|
|
|
|
2016-05-26 00:28:41 +02:00
|
|
|
(C) Copyright 2016 Hewlett Packard Enterprise Development LP<BR>
|
2015-06-16 03:04:47 +02:00
|
|
|
Copyright (c) 2013 - 2015, Intel Corporation. All rights reserved.<BR>
|
2019-04-04 01:05:13 +02:00
|
|
|
SPDX-License-Identifier: BSD-2-Clause-Patent
|
2013-08-12 08:13:54 +02:00
|
|
|
|
|
|
|
**/
|
|
|
|
|
|
|
|
#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
|
|
|
|
|