--- /dev/null
+/** @file\r
+ EFI_ISCSI_INITIATOR_NAME_PROTOCOL as defined in UEFI 2.0.\r
+ It rovides the ability to get and set the iSCSI Initiator Name. \r
+\r
+ Copyright (c) 2006, Intel Corporation \r
+ All rights reserved. This program and the accompanying materials \r
+ are licensed and made available under the terms and conditions of the BSD License \r
+ which accompanies this distribution. The full text of the license may be found at \r
+ http://opensource.org/licenses/bsd-license.php \r
+\r
+ THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r
+ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. \r
+\r
+ Module Name: IScsiInitatorName.h\r
+\r
+**/\r
+\r
+#ifndef __ISCSI_INITIATOR_NAME_H__\r
+#define __ISCSI_INITIATOR_NAME_H__\r
+\r
+#define EFI_ISCSI_INITIATOR_NAME_PROTOCOL_GUID \\r
+{ \\r
+ 0x59324945, 0xec44, 0x4c0d, {0xb1, 0xcd, 0x9d, 0xb1, 0x39, 0xdf, 0x7, 0xc } \\r
+}\r
+\r
+typedef struct _EFI_ISCSI_INITIATOR_NAME_PROTOCOL EFI_ISCSI_INITIATOR_NAME_PROTOCOL;\r
+\r
+/**\r
+ Retrieves the current set value of iSCSI Initiator Name.\r
+\r
+ @param This Pointer to the EFI_ISCSI_INITIATOR_NAME_PROTOCOL instance.\r
+ @param BufferSize Size of the buffer in bytes pointed to by Buffer / Actual size of the\r
+ variable data buffer.\r
+ @param Buffer Pointer to the buffer for data to be read.\r
+\r
+ @retval EFI_SUCCESS Data was successfully retrieved into the provided buffer and the\r
+ BufferSize was sufficient to handle the iSCSI initiator name\r
+ @retval EFI_BUFFER_TOO_SMALL BufferSize is too small for the result.\r
+ @retval EFI_INVALID_PARAMETER BufferSize or Buffer is NULL.\r
+ @retval EFI_DEVICE_ERROR The iSCSI initiator name could not be retrieved due to a hardware error.\r
+\r
+**/\r
+typedef \r
+EFI_STATUS\r
+(EFIAPI *EFI_ISCSI_INITIATOR_NAME_GET) (\r
+ IN EFI_ISCSI_INITIATOR_NAME_PROTOCOL *This,\r
+ IN OUT UINTN *BufferSize,\r
+ OUT VOID *Buffer\r
+ )\r
+;\r
+\r
+ \r
+\r
+/**\r
+ Sets the iSCSI Initiator Name.\r
+\r
+ @param This Pointer to the EFI_ISCSI_INITIATOR_NAME_PROTOCOL instance.\r
+ @param BufferSize Size of the buffer in bytes pointed to by Buffer.\r
+ @param Buffer Pointer to the buffer for data to be written.\r
+\r
+ @retval EFI_SUCCESS Data was successfully stored by the protocol.\r
+ @retval EFI_UNSUPPORTED Platform policies do not allow for data to be written.\r
+ @retval EFI_INVALID_PARAMETER BufferSize or Buffer is NULL, or BufferSize exceeds the maximum allowed limit.\r
+ @retval EFI_DEVICE_ERROR The data could not be stored due to a hardware error.\r
+ @retval EFI_OUT_OF_RESOURCES Not enough storage is available to hold the data.\r
+ @retval EFI_PROTOCOL_ERROR Input iSCSI initiator name does not adhere to RFC 3720\r
+ (and other related protocols)\r
+\r
+**/\r
+typedef EFI_STATUS\r
+(EFIAPI *EFI_ISCSI_INITIATOR_NAME_SET) (\r
+ IN EFI_ISCSI_INITIATOR_NAME_PROTOCOL *This,\r
+ IN OUT UINTN *BufferSize,\r
+ IN VOID *Buffer\r
+ )\r
+; \r
+\r
+struct _EFI_ISCSI_INITIATOR_NAME_PROTOCOL {\r
+ EFI_ISCSI_INITIATOR_NAME_GET Get;\r
+ EFI_ISCSI_INITIATOR_NAME_SET Set;\r
+};\r
+\r
+extern EFI_GUID gEfiIScsiInitiatorNameProtocolGuid;\r
+\r
+#endif\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r