]> git.proxmox.com Git - mirror_edk2.git/blame - MdeModulePkg/Bus/Pci/NvmExpressDxe/NvmExpressHci.h
UefiCpuPkg: Move AsmRelocateApLoopStart from Mpfuncs.nasm to AmdSev.nasm
[mirror_edk2.git] / MdeModulePkg / Bus / Pci / NvmExpressDxe / NvmExpressHci.h
CommitLineData
eb290d02
FT
1/** @file\r
2 NvmExpressDxe driver is used to manage non-volatile memory subsystem which follows\r
3 NVM Express specification.\r
4\r
e79bed78 5 (C) Copyright 2016 Hewlett Packard Enterprise Development LP<BR>\r
754b489b 6 Copyright (c) 2013 - 2015, Intel Corporation. All rights reserved.<BR>\r
9d510e61 7 SPDX-License-Identifier: BSD-2-Clause-Patent\r
eb290d02
FT
8\r
9**/\r
10\r
11#ifndef _NVME_HCI_H_\r
12#define _NVME_HCI_H_\r
13\r
1436aea4 14#define NVME_BAR 0\r
eb290d02 15\r
eb290d02
FT
16//\r
17// Offset from the beginning of private data queue buffer\r
18//\r
1436aea4 19#define NVME_ASQ_BUF_OFFSET EFI_PAGE_SIZE\r
eb290d02
FT
20\r
21/**\r
22 Initialize the Nvm Express controller.\r
23\r
24 @param[in] Private The pointer to the NVME_CONTROLLER_PRIVATE_DATA data structure.\r
25\r
26 @retval EFI_SUCCESS The NVM Express Controller is initialized successfully.\r
27 @retval Others A device error occurred while initializing the controller.\r
28\r
29**/\r
30EFI_STATUS\r
31NvmeControllerInit (\r
1436aea4 32 IN NVME_CONTROLLER_PRIVATE_DATA *Private\r
eb290d02
FT
33 );\r
34\r
35/**\r
36 Get identify controller data.\r
37\r
38 @param Private The pointer to the NVME_CONTROLLER_PRIVATE_DATA data structure.\r
39 @param Buffer The buffer used to store the identify controller data.\r
40\r
41 @return EFI_SUCCESS Successfully get the identify controller data.\r
42 @return EFI_DEVICE_ERROR Fail to get the identify controller data.\r
43\r
44**/\r
45EFI_STATUS\r
46NvmeIdentifyController (\r
1436aea4
MK
47 IN NVME_CONTROLLER_PRIVATE_DATA *Private,\r
48 IN VOID *Buffer\r
eb290d02
FT
49 );\r
50\r
51/**\r
52 Get specified identify namespace data.\r
53\r
54 @param Private The pointer to the NVME_CONTROLLER_PRIVATE_DATA data structure.\r
55 @param NamespaceId The specified namespace identifier.\r
56 @param Buffer The buffer used to store the identify namespace data.\r
57\r
58 @return EFI_SUCCESS Successfully get the identify namespace data.\r
59 @return EFI_DEVICE_ERROR Fail to get the identify namespace data.\r
60\r
61**/\r
62EFI_STATUS\r
63NvmeIdentifyNamespace (\r
1436aea4
MK
64 IN NVME_CONTROLLER_PRIVATE_DATA *Private,\r
65 IN UINT32 NamespaceId,\r
66 IN VOID *Buffer\r
eb290d02
FT
67 );\r
68\r
eb290d02 69#endif\r