Dhcp4Driver.h revision 4fd606d1f5abe38e1f42c38de1d2e895166bd0f4
e9c0d852b4db112840ba14c704766576cffd623cvboxsync/** @file
e9c0d852b4db112840ba14c704766576cffd623cvboxsync Header for the DHCP4 driver.
e9c0d852b4db112840ba14c704766576cffd623cvboxsync
e9c0d852b4db112840ba14c704766576cffd623cvboxsyncCopyright (c) 2006 - 2011, Intel Corporation. All rights reserved.<BR>
e9c0d852b4db112840ba14c704766576cffd623cvboxsyncThis program and the accompanying materials
e9c0d852b4db112840ba14c704766576cffd623cvboxsyncare licensed and made available under the terms and conditions of the BSD License
e64031e20c39650a7bc902a3e1aba613b9415deevboxsyncwhich accompanies this distribution. The full text of the license may be found at
a16eb14ad7a4b5ef91ddc22d3e8e92d930f736fcvboxsynchttp://opensource.org/licenses/bsd-license.php
a16eb14ad7a4b5ef91ddc22d3e8e92d930f736fcvboxsync
a16eb14ad7a4b5ef91ddc22d3e8e92d930f736fcvboxsyncTHE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
a16eb14ad7a4b5ef91ddc22d3e8e92d930f736fcvboxsyncWITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
a16eb14ad7a4b5ef91ddc22d3e8e92d930f736fcvboxsync
a16eb14ad7a4b5ef91ddc22d3e8e92d930f736fcvboxsync**/
a16eb14ad7a4b5ef91ddc22d3e8e92d930f736fcvboxsync
a16eb14ad7a4b5ef91ddc22d3e8e92d930f736fcvboxsync#ifndef __EFI_DHCP4_DRIVER_H__
a16eb14ad7a4b5ef91ddc22d3e8e92d930f736fcvboxsync#define __EFI_DHCP4_DRIVER_H__
a16eb14ad7a4b5ef91ddc22d3e8e92d930f736fcvboxsync
a16eb14ad7a4b5ef91ddc22d3e8e92d930f736fcvboxsyncextern EFI_COMPONENT_NAME_PROTOCOL gDhcp4ComponentName;
a16eb14ad7a4b5ef91ddc22d3e8e92d930f736fcvboxsyncextern EFI_COMPONENT_NAME2_PROTOCOL gDhcp4ComponentName2;
a16eb14ad7a4b5ef91ddc22d3e8e92d930f736fcvboxsync
a16eb14ad7a4b5ef91ddc22d3e8e92d930f736fcvboxsync/**
a16eb14ad7a4b5ef91ddc22d3e8e92d930f736fcvboxsync Test to see if this driver supports ControllerHandle. This service
a16eb14ad7a4b5ef91ddc22d3e8e92d930f736fcvboxsync is called by the EFI boot service ConnectController(). In
a16eb14ad7a4b5ef91ddc22d3e8e92d930f736fcvboxsync order to make drivers as small as possible, there are a few calling
6b68b1cfa19c6e90d8ea0ef58e6abda445d518f4vboxsync restrictions for this service. ConnectController() must
e9c0d852b4db112840ba14c704766576cffd623cvboxsync follow these calling restrictions. If any other agent wishes to call
e9c0d852b4db112840ba14c704766576cffd623cvboxsync Supported() it must also follow these calling restrictions.
e9c0d852b4db112840ba14c704766576cffd623cvboxsync
e9c0d852b4db112840ba14c704766576cffd623cvboxsync @param[in] This Protocol instance pointer.
e9c0d852b4db112840ba14c704766576cffd623cvboxsync @param[in] ControllerHandle Handle of device to test
e9c0d852b4db112840ba14c704766576cffd623cvboxsync @param[in] RemainingDevicePath Optional parameter use to pick a specific child
e9c0d852b4db112840ba14c704766576cffd623cvboxsync device to start.
e9c0d852b4db112840ba14c704766576cffd623cvboxsync
e9c0d852b4db112840ba14c704766576cffd623cvboxsync @retval EFI_SUCCESS This driver supports this device
e9c0d852b4db112840ba14c704766576cffd623cvboxsync @retval EFI_ALREADY_STARTED This driver is already running on this device
e9c0d852b4db112840ba14c704766576cffd623cvboxsync @retval other This driver does not support this device
e9c0d852b4db112840ba14c704766576cffd623cvboxsync
e9c0d852b4db112840ba14c704766576cffd623cvboxsync**/
e9c0d852b4db112840ba14c704766576cffd623cvboxsyncEFI_STATUS
e9c0d852b4db112840ba14c704766576cffd623cvboxsyncEFIAPI
e9c0d852b4db112840ba14c704766576cffd623cvboxsyncDhcp4DriverBindingSupported (
e9c0d852b4db112840ba14c704766576cffd623cvboxsync IN EFI_DRIVER_BINDING_PROTOCOL *This,
e9c0d852b4db112840ba14c704766576cffd623cvboxsync IN EFI_HANDLE ControllerHandle,
e9c0d852b4db112840ba14c704766576cffd623cvboxsync IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath OPTIONAL
e9c0d852b4db112840ba14c704766576cffd623cvboxsync );
e9c0d852b4db112840ba14c704766576cffd623cvboxsync
/**
Start this driver on ControllerHandle. This service is called by the
EFI boot service ConnectController(). In order to make
drivers as small as possible, there are a few calling restrictions for
this service. ConnectController() must follow these
calling restrictions. If any other agent wishes to call Start() it
must also follow these calling restrictions.
@param[in] This Protocol instance pointer.
@param[in] ControllerHandle Handle of device to bind driver to
@param[in] RemainingDevicePath Optional parameter use to pick a specific child
device to start.
@retval EFI_SUCCESS This driver is added to ControllerHandle
@retval EFI_ALREADY_STARTED This driver is already running on ControllerHandle
@retval other This driver does not support this device
**/
EFI_STATUS
EFIAPI
Dhcp4DriverBindingStart (
IN EFI_DRIVER_BINDING_PROTOCOL *This,
IN EFI_HANDLE ControllerHandle,
IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath OPTIONAL
);
/**
Stop this driver on ControllerHandle. This service is called by the
EFI boot service DisconnectController(). In order to
make drivers as small as possible, there are a few calling
restrictions for this service. DisconnectController()
must follow these calling restrictions. If any other agent wishes
to call Stop() it must also follow these calling restrictions.
@param[in] This Protocol instance pointer.
@param[in] ControllerHandle Handle of device to stop driver on
@param[in] NumberOfChildren Number of Handles in ChildHandleBuffer. If number of
children is zero stop the entire bus driver.
@param[in] ChildHandleBuffer List of Child Handles to Stop.
@retval EFI_SUCCESS This driver is removed ControllerHandle
@retval other This driver was not removed from this device
**/
EFI_STATUS
EFIAPI
Dhcp4DriverBindingStop (
IN EFI_DRIVER_BINDING_PROTOCOL *This,
IN EFI_HANDLE ControllerHandle,
IN UINTN NumberOfChildren,
IN EFI_HANDLE *ChildHandleBuffer
);
/**
Creates a child handle and installs a protocol.
The CreateChild() function installs a protocol on ChildHandle.
If ChildHandle is a pointer to NULL, then a new handle is created and returned in ChildHandle.
If ChildHandle is not a pointer to NULL, then the protocol installs on the existing ChildHandle.
@param This Pointer to the EFI_SERVICE_BINDING_PROTOCOL instance.
@param ChildHandle Pointer to the handle of the child to create. If it is NULL,
then a new handle is created. If it is a pointer to an existing UEFI handle,
then the protocol is added to the existing UEFI handle.
@retval EFI_SUCCES The protocol was added to ChildHandle.
@retval EFI_INVALID_PARAMETER ChildHandle is NULL.
@retval EFI_OUT_OF_RESOURCES There are not enough resources availabe to create
the child
@retval other The child handle was not created
**/
EFI_STATUS
EFIAPI
Dhcp4ServiceBindingCreateChild (
IN EFI_SERVICE_BINDING_PROTOCOL *This,
IN EFI_HANDLE *ChildHandle
);
/**
Destroys a child handle with a protocol installed on it.
The DestroyChild() function does the opposite of CreateChild(). It removes a protocol
that was installed by CreateChild() from ChildHandle. If the removed protocol is the
last protocol on ChildHandle, then ChildHandle is destroyed.
@param This Pointer to the EFI_SERVICE_BINDING_PROTOCOL instance.
@param ChildHandle Handle of the child to destroy
@retval EFI_SUCCES The protocol was removed from ChildHandle.
@retval EFI_UNSUPPORTED ChildHandle does not support the protocol that is being removed.
@retval EFI_INVALID_PARAMETER Child handle is NULL.
@retval EFI_ACCESS_DENIED The protocol could not be removed from the ChildHandle
because its services are being used.
@retval other The child handle was not destroyed
**/
EFI_STATUS
EFIAPI
Dhcp4ServiceBindingDestroyChild (
IN EFI_SERVICE_BINDING_PROTOCOL *This,
IN EFI_HANDLE ChildHandle
);
#endif