]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Universal/Network/IScsiDxe/IScsiDriver.h
sync comments, fix function header, rename variable name to follow coding style.
[mirror_edk2.git] / MdeModulePkg / Universal / Network / IScsiDxe / IScsiDriver.h
index b6a43243a7ba9c2b6194a2df6375fa6630eb6b52..65e47feac22edae23b38ad65344c7d18214ee93e 100644 (file)
@@ -1,4 +1,5 @@
-/*++\r
+/** @file\r
+  The header file of IScsiDriver.c\r
 \r
 Copyright (c) 2004 - 2008, Intel Corporation\r
 All rights reserved. This program and the accompanying materials\r
@@ -14,8 +15,9 @@ Module Name:
   IScsiDriver.h\r
 \r
 Abstract:\r
+  The header file of IScsiDriver.c\r
 \r
---*/\r
+**/\r
 \r
 #ifndef _ISCSI_DRIVER_H_\r
 #define _ISCSI_DRIVER_H_\r
@@ -23,6 +25,8 @@ Abstract:
 #include <PiDxe.h>\r
 #include <Protocol/DevicePath.h>\r
 #include <Protocol/LoadedImage.h>\r
+#include <Protocol/HiiConfigAccess.h>\r
+#include <Protocol/HiiDatabase.h>\r
 #include <Library/UefiDriverEntryPoint.h>\r
 #include <Library/UefiBootServicesTableLib.h>\r
 #include <Library/UefiLib.h>\r
@@ -35,9 +39,7 @@ Abstract:
 #include <Protocol/ComponentName2.h>\r
 \r
 #define ISCSI_PRIVATE_GUID \\r
-  { \\r
-    0xfa3cde4c, 0x87c2, 0x427d, 0xae, 0xde, 0x7d, 0xd0, 0x96, 0xc8, 0x8c, 0x58 \\r
-  }\r
+  { 0xfa3cde4c, 0x87c2, 0x427d, {0xae, 0xde, 0x7d, 0xd0, 0x96, 0xc8, 0x8c, 0x58} }\r
 \r
 #define ISCSI_INITIATOR_NAME_VAR_NAME L"I_NAME"\r
 \r
@@ -55,6 +57,22 @@ typedef struct _ISCSI_PRIVATE_PROTOCOL {
 //\r
 // EFI Driver Binding Protocol for iSCSI driver.\r
 //\r
+/**\r
+  Test to see if IScsi driver supports the given controller. \r
+\r
+  @param  This[in]                Protocol instance pointer.\r
+\r
+  @param  ControllerHandle[in]    Handle of controller to test.\r
+\r
+  @param  RemainingDevicePath[in] Optional parameter use to pick a specific child device to start.\r
+\r
+  @retval EFI_SUCCES              This driver supports the controller.\r
+\r
+  @retval EFI_ALREADY_STARTED     This driver is already running on this device.\r
+\r
+  @retval EFI_UNSUPPORTED         This driver doesn't support the controller.\r
+\r
+**/\r
 EFI_STATUS\r
 EFIAPI\r
 IScsiDriverBindingSupported (\r
@@ -63,6 +81,20 @@ IScsiDriverBindingSupported (
   IN EFI_DEVICE_PATH_PROTOCOL     *RemainingDevicePath OPTIONAL\r
   );\r
 \r
+/**\r
+  Start to manage the controller. \r
+\r
+  @param  This[in]                Protocol instance pointer.\r
+\r
+  @param  ControllerHandle[in]    Handle of the controller.\r
+\r
+  @param  RemainingDevicePath[in] Optional parameter use to pick a specific child device to start.\r
+\r
+  @retval EFI_SUCCES              This driver supports this device.\r
+\r
+  @retval EFI_ALREADY_STARTED     This driver is already running on this device.\r
+\r
+**/\r
 EFI_STATUS\r
 EFIAPI\r
 IScsiDriverBindingStart (\r
@@ -71,6 +103,20 @@ IScsiDriverBindingStart (
   IN EFI_DEVICE_PATH_PROTOCOL     *RemainingDevicePath OPTIONAL\r
   );\r
 \r
+/**\r
+  Release the control of this controller and remove the IScsi functions.\r
+\r
+  @param  This[in]              Protocol instance pointer.\r
+\r
+  @param  ControllerHandle[in]  Handle of controller to stop.\r
+\r
+  @param  NumberOfChildren[in]  Not used.\r
+\r
+  @param  ChildHandleBuffer[in] Not used.\r
+\r
+  @retval EFI_SUCCES            This driver supports this device.\r
+\r
+**/\r
 EFI_STATUS\r
 EFIAPI\r
 IScsiDriverBindingStop (\r
@@ -81,8 +127,46 @@ IScsiDriverBindingStop (
   );\r
 \r
 //\r
-// EFI Component Name Protocol for iSCSI driver.\r
+// EFI Component Name Protocol for IScsi driver.\r
 //\r
+/**\r
+  Retrieves a Unicode string that is the user readable name of the EFI Driver.\r
+\r
+  This function retrieves the user readable name of a driver in the form of a\r
+  Unicode string. If the driver specified by This has a user readable name in\r
+  the language specified by Language, then a pointer to the driver name is\r
+  returned in DriverName, and EFI_SUCCESS is returned. If the driver specified\r
+  by This does not support the language specified by Language,\r
+  then EFI_UNSUPPORTED is returned.\r
+\r
+  @param  This[in]              A pointer to the EFI_COMPONENT_NAME_PROTOCOL\r
+                                instance.\r
+\r
+  @param  Language[in]          A pointer to a three character ISO 639-2 language\r
+                                identifier.\r
+                                This is the language of the driver name that that\r
+                                the caller is requesting, and it must match one of\r
+                                the languages specified in SupportedLanguages.  \r
+                                The number of languages supported by a driver is up\r
+                                to the driver writer.\r
+\r
+  @param  DriverName[out]       A pointer to the Unicode string to return.\r
+                                This Unicode string is the name of the\r
+                                driver specified by This in the language\r
+                                specified by Language.\r
+\r
+  @retval EFI_SUCCESS           The Unicode string for the Driver specified by\r
+                                This and the language specified by Language was\r
+                                returned in DriverName.\r
+\r
+  @retval EFI_INVALID_PARAMETER Language is NULL.\r
+\r
+  @retval EFI_INVALID_PARAMETER DriverName is NULL.\r
+\r
+  @retval EFI_UNSUPPORTED       The driver specified by This does not support\r
+                                the language specified by Language.\r
+\r
+**/\r
 EFI_STATUS\r
 EFIAPI\r
 IScsiComponentNameGetDriverName (\r
@@ -91,6 +175,55 @@ IScsiComponentNameGetDriverName (
   OUT CHAR16                        **DriverName\r
   );\r
 \r
+/**\r
+  Retrieves a Unicode string that is the user readable name of the controller\r
+  that is being managed by an EFI Driver.\r
+\r
+  @param  This[in]              A pointer to the EFI_COMPONENT_NAME_PROTOCOL instance.\r
+\r
+  @param  ControllerHandle[in]  The handle of a controller that the driver specified by\r
+                                This is managing.  This handle specifies the controller\r
+                                whose name is to be returned.\r
+\r
+  @param  ChildHandle[in]       The handle of the child controller to retrieve the name\r
+                                of.  This is an optional parameter that may be NULL.  It\r
+                                will be NULL for device drivers.  It will also be NULL\r
+                                for a bus drivers that wish to retrieve the name of the\r
+                                bus controller.  It will not be NULL for a bus driver\r
+                                that wishes to retrieve the name of a child controller.\r
+\r
+  @param  Language[in]          A pointer to a three character ISO 639-2 language \r
+                                identifier.  This is the language of the controller name\r
+                                that that the caller is requesting, and it must match one\r
+                                of the languages specified in SupportedLanguages.  The\r
+                                number of languages supported by a driver is up to the\r
+                                driver writer.\r
+\r
+  @param  ControllerName[out]   A pointer to the Unicode string to return.  This Unicode\r
+                                string is the name of the controller specified by \r
+                                ControllerHandle and ChildHandle in the language \r
+                                specified by Language from the point of view of the \r
+                                driver specified by This. \r
+\r
+  @retval EFI_SUCCESS           The Unicode string for the user readable name in the \r
+                                language specified by Language for the driver \r
+                                specified by This was returned in DriverName.\r
+\r
+  @retval EFI_INVALID_PARAMETER ControllerHandle is not a valid EFI_HANDLE.\r
+\r
+  @retval EFI_INVALID_PARAMETER ChildHandle is not NULL and it is not a valid EFI_HANDLE.\r
+\r
+  @retval EFI_INVALID_PARAMETER Language is NULL.\r
+\r
+  @retval EFI_INVALID_PARAMETER ControllerName is NULL.\r
+\r
+  @retval EFI_UNSUPPORTED       The driver specified by This is not currently managing\r
+                                the controller specified by ControllerHandle and ChildHandle.\r
+\r
+  @retval EFI_UNSUPPORTED       The driver specified by This does not support the \r
+                                language specified by Language.\r
+\r
+**/\r
 EFI_STATUS\r
 EFIAPI\r
 IScsiComponentNameGetControllerName (\r
@@ -102,8 +235,35 @@ IScsiComponentNameGetControllerName (
   );\r
 \r
 //\r
-// EFI iSCSI Initiator Name Protocol for iSCSI driver.\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
@@ -112,6 +272,35 @@ IScsiGetInitiatorName (
   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