--- /dev/null
+/** @file\r
+ The header file of IScsi initiator name protocol.\r
+\r
+Copyright (c) 2004 - 2008, Intel Corporation.<BR>\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
+**/\r
+\r
+#ifndef _ISCSI_INITIATORNAME_H_\r
+#define _ISCSI_INITIATORNAME_H_\r
+\r
+#include <Protocol/IScsiInitiatorName.h>\r
+\r
+extern EFI_ISCSI_INITIATOR_NAME_PROTOCOL gIScsiInitiatorName;\r
+\r
+//\r
+// EFI IScsi Initiator Name Protocol for IScsi driver.\r
+//\r
+/**\r
+ Retrieves the current set value of iSCSI Initiator Name. \r
+\r
+ @param This[in] Pointer to the EFI_ISCSI_INITIATOR_NAME_PROTOCOL instance.\r
+\r
+ @param BufferSize[in][out] Size of the buffer in bytes pointed to by Buffer / Actual\r
+ size of the variable data buffer.\r
+\r
+ @param Buffer[out] Pointer to the buffer for data to be read.\r
+\r
+ @retval EFI_SUCCESS Data was successfully retrieved into the provided \r
+ buffer and the BufferSize was sufficient to handle the\r
+ iSCSI initiator name.\r
+ @retval EFI_BUFFER_TOO_SMALL BufferSize is too small for the result. BufferSize will\r
+ be updated with the size required to complete the request.\r
+ Buffer will not be affected.\r
+\r
+ @retval EFI_INVALID_PARAMETER BufferSize is NULL. BufferSize and Buffer will not be\r
+ affected.\r
+\r
+ @retval EFI_INVALID_PARAMETER Buffer is NULL. BufferSize and Buffer will not be\r
+ affected.\r
+\r
+ @retval EFI_DEVICE_ERROR The iSCSI initiator name could not be retrieved due to\r
+ a hardware error.\r
+\r
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+IScsiGetInitiatorName (\r
+ IN EFI_ISCSI_INITIATOR_NAME_PROTOCOL *This,\r
+ IN OUT UINTN *BufferSize,\r
+ OUT VOID *Buffer\r
+ );\r
+\r
+/**\r
+ Sets the iSCSI Initiator Name. \r
+\r
+ @param This[in] Pointer to the EFI_ISCSI_INITIATOR_NAME_PROTOCOL instance.\r
+\r
+ @param BufferSize[in][out] Size of the buffer in bytes pointed to by Buffer.\r
+\r
+ @param Buffer[out] Pointer to the buffer for data to be written.\r
+ \r
+ @retval EFI_SUCCESS Data was successfully stored by the protocol.\r
+\r
+ @retval EFI_UNSUPPORTED Platform policies do not allow for data to be written.\r
+\r
+ @retval EFI_INVALID_PARAMETER BufferSize exceeds the maximum allowed limit.\r
+ BufferSize will be updated with the maximum size\r
+ required to complete the request.\r
+\r
+ @retval EFI_INVALID_PARAMETER Buffersize is NULL. BufferSize and Buffer will not be\r
+ affected.\r
+\r
+ @retval EFI_INVALID_PARAMETER Buffer is NULL. BufferSize and Buffer will not be affected.\r
+\r
+ @retval EFI_DEVICE_ERROR The data could not be stored due to a hardware error.\r
+\r
+ @retval EFI_OUT_OF_RESOURCES Not enough storage is available to hold the data.\r
+\r
+ @retval EFI_PROTOCOL_ERROR Input iSCSI initiator name does not adhere to RFC 3720.\r
+\r
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+IScsiSetInitiatorName (\r
+ IN EFI_ISCSI_INITIATOR_NAME_PROTOCOL *This,\r
+ IN OUT UINTN *BufferSize,\r
+ OUT VOID *Buffer\r
+ );\r
+ \r
+#endif
\ No newline at end of file