4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync The prototype of driver binding and service binding protocol for TCP driver.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Copyright (c) 2009 - 2011, Intel Corporation. All rights reserved.<BR>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync This program and the accompanying materials
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync are licensed and made available under the terms and conditions of the BSD License
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync which accompanies this distribution. The full text of the license may be found at
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define TCP_DRIVER_SIGNATURE SIGNATURE_32 ('T', 'C', 'P', 'D')
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync// Function prototype for the driver's entry point
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync The entry point for Tcp driver, used to install Tcp driver on the ImageHandle.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] ImageHandle The firmware allocated handle for this driver image.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] SystemTable Pointer to the EFI system table.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS The driver loaded.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval other The driver did not load.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync// Function prototypes for the Driver Binding Protocol
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Test to see if this driver supports ControllerHandle.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] This Protocol instance pointer.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] ControllerHandle Handle of the device to test.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] RemainingDevicePath Optional parameter use to pick a specific
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync child device to start.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS This driver supports this device.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_ALREADY_STARTED This driver is already running on this device.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval other This driver does not support this device.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath OPTIONAL
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Start this driver on ControllerHandle.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] This Protocol instance pointer.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] ControllerHandle Handle of device to bind driver to.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] RemainingDevicePath Optional parameter use to pick a specific child
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync device to start.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS The driver was added to ControllerHandle.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_OUT_OF_RESOURCES There are not enough resources to start the
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval other The driver cannot be added to ControllerHandle.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath OPTIONAL
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Stop this driver on ControllerHandle.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] This A pointer to the EFI_DRIVER_BINDING_PROTOCOL instance.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] ControllerHandle A handle to the device being stopped. The handle must
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync support a bus specific I/O protocol for the driver
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync to use to stop the device.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] NumberOfChildren The number of child device handles in ChildHandleBuffer.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] ChildHandleBuffer An array of child handles to be freed. May be NULL
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync if NumberOfChildren is 0.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS The device was stopped.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_DEVICE_ERROR The device could not be stopped due to a device error.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync The Callback funtion called after the TCP socket is created.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] This Pointer to the socket just created.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] Context The context of the socket.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS This protocol is installed successfully.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval other An error occured.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync The callback function called before the TCP socket is to be destroyed.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] This The TCP socket to be destroyed.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] Context The context of the socket.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync// Function ptototypes for the ServiceBinding Prococol
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Creates a child handle with a set of TCP services.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync The CreateChild() function installs a protocol on ChildHandle.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync If ChildHandle is a pointer to NULL, then a new handle is created and returned in ChildHandle.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync If ChildHandle is not a pointer to NULL, then the protocol installs on the existing ChildHandle.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] This Pointer to the EFI_SERVICE_BINDING_PROTOCOL instance.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in, out] ChildHandle Pointer to the handle of the child to create.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync If it is NULL, then a new handle is created.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync If it is a pointer to an existing UEFI handle,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync then the protocol is added to the existing UEFI handle.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCES The protocol was added to ChildHandle.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_INVALID_PARAMETER ChildHandle is NULL.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_OUT_OF_RESOURCES There are not enough resources available to create
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval other The child handle was not created.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Destroys a child handle with a set of TCP services.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync The DestroyChild() function does the opposite of CreateChild(). It removes a protocol
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync that was installed by CreateChild() from ChildHandle. If the removed protocol is the
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync last protocol on ChildHandle, then ChildHandle is destroyed.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param This Pointer to the EFI_SERVICE_BINDING_PROTOCOL instance.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param ChildHandle Handle of the child to destroy.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCES The protocol was removed from ChildHandle.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_UNSUPPORTED ChildHandle does not support the protocol that is being removed.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_INVALID_PARAMETER The child handle is NULL.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_ACCESS_DENIED The protocol could not be removed from the ChildHandle
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync because its services are being used.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval other The child handle was not destroyed.