diff options
author | raywu <raywu0301@gmail.com> | 2018-06-15 00:00:50 +0800 |
---|---|---|
committer | raywu <raywu0301@gmail.com> | 2018-06-15 00:00:50 +0800 |
commit | b7c51c9cf4864df6aabb99a1ae843becd577237c (patch) | |
tree | eebe9b0d0ca03062955223097e57da84dd618b9a /Core/EM/Nvme/NvmePassthru.h | |
download | zprj-b7c51c9cf4864df6aabb99a1ae843becd577237c.tar.xz |
Diffstat (limited to 'Core/EM/Nvme/NvmePassthru.h')
-rw-r--r-- | Core/EM/Nvme/NvmePassthru.h | 107 |
1 files changed, 107 insertions, 0 deletions
diff --git a/Core/EM/Nvme/NvmePassthru.h b/Core/EM/Nvme/NvmePassthru.h new file mode 100644 index 0000000..2f61000 --- /dev/null +++ b/Core/EM/Nvme/NvmePassthru.h @@ -0,0 +1,107 @@ +//********************************************************************** +//********************************************************************** +//** ** +//** (C)Copyright 1985-2015, American Megatrends, Inc. ** +//** ** +//** All Rights Reserved. ** +//** ** +//** 5555 Oakbrook Parkway, Suite 200, Norcross, GA 30093 ** +//** ** +//** Phone: (770)-246-8600 ** +//** ** +//********************************************************************** +//********************************************************************** +//********************************************************************** +// $Header: /Alaska/SOURCE/Modules/NVMe/NvmePassthru.h 1 5/14/15 2:36a Karthikar $ +// +// $Revision: 1 $ +// +// $Date: 5/14/15 2:36a $ +//********************************************************************** +//********************************************************************** +//<AMI_FHDR_START> +// +// Name: NvmePassthru.h +// +// Description: Header file for NvmePassthru.h file +// +//<AMI_FHDR_END> +//********************************************************************** + + +#ifndef __NVM_PASS_THRU_H__ +#define __NVM_PASS_THRU_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +#include <Efi.h> +#include "Protocol/AmiNvmeController.h" +#include "Protocol/NvmExpressPassThru.h" +#include "EdkIICommon.h" + +#define LIST_ENTRY EFI_LIST_ENTRY + + +#define NVME_ADMIN_SUBMISSION_QUEUE 0x00 +#define NVME_IO_SUBMISSION_QUEUE 0x01 + +#define NVME_CONTROLLER_PROTOCOL_FROM_THIS(NvmePassthruProtocol) \ + ((_CR( NvmePassthruProtocol ,NVM_EXPRESS_PASS_THRU_INSTANCE, EfiNvmExpressPassThru))->NvmeControllerProtocol) + +typedef +struct _NVM_EXPRESS_PASS_THRU_INSTANCE { + EFI_NVM_EXPRESS_PASS_THRU_PROTOCOL EfiNvmExpressPassThru; // Instance of EFI_NVM_EXPRESS_PASS_THRU_PROTOCOL + AMI_NVME_CONTROLLER_PROTOCOL *NvmeControllerProtocol; + EFI_HANDLE ControllerHandle; +} NVM_EXPRESS_PASS_THRU_INSTANCE; + +EFI_STATUS +NvmePassThru ( + IN EFI_NVM_EXPRESS_PASS_THRU_PROTOCOL *This, + IN UINT32 NamespaceId, + IN OUT EFI_NVM_EXPRESS_PASS_THRU_COMMAND_PACKET *Packet, + IN EFI_EVENT Event +); + +EFI_STATUS +GetNextNamespace( + IN EFI_NVM_EXPRESS_PASS_THRU_PROTOCOL *This, + IN OUT UINT32 *NamespaceId +); + +EFI_STATUS +BuildDevicePath ( + IN EFI_NVM_EXPRESS_PASS_THRU_PROTOCOL *This, + IN UINT32 NamespaceId, + IN OUT EFI_DEVICE_PATH_PROTOCOL **DevicePath +); + +EFI_STATUS +GetNamespace ( + IN EFI_NVM_EXPRESS_PASS_THRU_PROTOCOL *This, + IN EFI_DEVICE_PATH_PROTOCOL *DevicePath, + OUT UINT32 *NamespaceId +); + +#ifdef __cplusplus +} +#endif + +#endif // __NVM_PASS_THRU_H__ + +//********************************************************************** +//********************************************************************** +//** ** +//** (C)Copyright 1985-2015, American Megatrends, Inc. ** +//** ** +//** All Rights Reserved. ** +//** ** +//** 5555 Oakbrook Parkway, Suite 200, Norcross, GA 30093 ** +//** ** +//** Phone: (770)-246-8600 ** +//** ** +//********************************************************************** +//********************************************************************** + |