EDK2 doxygen online documents - Firmware Encoding Index 1
EDK2 doxygen online documents - Firmware Encoding Index
Functions | Variables

IntelFrameworkModulePkg/Bus/Isa/IsaBusDxe/IsaBus.c File Reference

#include "InternalIsaBus.h"

Go to the source code of this file.

Functions

EFI_STATUS EFIAPI InitializeIsaBus (IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable)
EFI_STATUS EFIAPI IsaBusControllerDriverSupported (IN EFI_DRIVER_BINDING_PROTOCOL *This, IN EFI_HANDLE Controller, IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath OPTIONAL)
EFI_STATUS EFIAPI IsaBusControllerDriverStart (IN EFI_DRIVER_BINDING_PROTOCOL *This, IN EFI_HANDLE Controller, IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath OPTIONAL)
EFI_STATUS EFIAPI IsaBusControllerDriverStop (IN EFI_DRIVER_BINDING_PROTOCOL *This, IN EFI_HANDLE Controller, IN UINTN NumberOfChildren, IN EFI_HANDLE *ChildHandleBuffer OPTIONAL)
EFI_STATUS IsaCreateDevice (IN EFI_DRIVER_BINDING_PROTOCOL *This, IN EFI_HANDLE Controller, IN EFI_PCI_IO_PROTOCOL *PciIo, IN EFI_DEVICE_PATH_PROTOCOL *ParentDevicePath, IN EFI_ISA_ACPI_RESOURCE_LIST *IsaDeviceResourceList, OUT EFI_DEVICE_PATH_PROTOCOL **ChildDevicePath)

Variables

EFI_DRIVER_BINDING_PROTOCOL gIsaBusControllerDriver

Detailed Description

ISA Bus UEFI driver.

Discovers all the ISA Controllers and their resources by using the ISA ACPI Protocol, produces an instance of the ISA I/O Protocol for every ISA Controller found. This driver is designed to manage a PCI-to-ISA bridge Device such as LPC bridge.

Copyright (c) 2006 - 2009, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Definition in file IsaBus.c.


Function Documentation

EFI_STATUS EFIAPI InitializeIsaBus ( IN EFI_HANDLE  ImageHandle,
IN EFI_SYSTEM_TABLE SystemTable 
)

The main entry point for the ISA Bus driver.

Parameters:
[in]ImageHandleThe firmware allocated handle for the EFI image.
[in]SystemTableA pointer to the EFI System Table.
Return values:
EFI_SUCCESSThe entry point is executed successfully.
EFI_OUT_OF_RESOURCESThere was not enough memory in pool to install all the protocols.

Definition at line 45 of file IsaBus.c.

EFI_STATUS EFIAPI IsaBusControllerDriverStart ( IN EFI_DRIVER_BINDING_PROTOCOL This,
IN EFI_HANDLE  Controller,
IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath  OPTIONAL 
)

Start this driver on ControllerHandle.

Note that the ISA Bus driver always creates all of its child handles on the first call to Start(). The Start() function is designed to be invoked from the EFI boot service ConnectController(). As a result, much of the error checking on the parameters to Start() has been moved into this common boot service. It is legal to call Start() from other locations, but the following calling restrictions must be followed or the system behavior will not be deterministic. 1. ControllerHandle must be a valid EFI_HANDLE. 2. If RemainingDevicePath is not NULL, then it must be a pointer to a naturally aligned EFI_DEVICE_PATH_PROTOCOL. 3. Prior to calling Start(), the Supported() function for the driver specified by This must have been called with the same calling parameters, and Supported() must have returned EFI_SUCCESS.

Parameters:
[in]ThisA pointer to the EFI_DRIVER_BINDING_PROTOCOL instance.
[in]ControllerHandleThe handle of the controller to start. This handle must support a protocol interface that supplies an I/O abstraction to the driver.
[in]RemainingDevicePathA pointer to the remaining portion of a device path. This parameter is ignored by device drivers, and is optional for bus drivers.
Return values:
EFI_SUCCESSThe device was started.
EFI_DEVICE_ERRORThe device could not be started due to a device error. Currently not implemented.
EFI_OUT_OF_RESOURCESThe request could not be completed due to a lack of resources.
OthersThe driver failded to start the device.

Definition at line 223 of file IsaBus.c.

EFI_STATUS EFIAPI IsaBusControllerDriverStop ( IN EFI_DRIVER_BINDING_PROTOCOL This,
IN EFI_HANDLE  Controller,
IN UINTN  NumberOfChildren,
IN EFI_HANDLE *ChildHandleBuffer  OPTIONAL 
)

Stop this driver on ControllerHandle.

The Stop() function is designed to be invoked from the EFI boot service DisconnectController(). As a result, much of the error checking on the parameters to Stop() has been moved into this common boot service. It is legal to call Stop() from other locations, but the following calling restrictions must be followed or the system behavior will not be deterministic. 1. ControllerHandle must be a valid EFI_HANDLE that was used on a previous call to this same driver's Start() function. 2. The first NumberOfChildren handles of ChildHandleBuffer must all be a valid EFI_HANDLE. In addition, all of these handles must have been created in this driver's Start() function, and the Start() function must have called OpenProtocol() on ControllerHandle with an Attribute of EFI_OPEN_PROTOCOL_BY_CHILD_CONTROLLER.

Parameters:
[in]ThisA pointer to the EFI_DRIVER_BINDING_PROTOCOL instance.
[in]ControllerHandleA handle to the device being stopped. The handle must support a bus specific I/O protocol for the driver to use to stop the device.
[in]NumberOfChildrenThe number of child device handles in ChildHandleBuffer.
[in]ChildHandleBufferAn array of child handles to be freed. May be NULL if NumberOfChildren is 0.
Return values:
EFI_SUCCESSThe device was stopped.
EFI_DEVICE_ERRORThe device could not be stopped due to a device error.

Definition at line 440 of file IsaBus.c.

EFI_STATUS EFIAPI IsaBusControllerDriverSupported ( IN EFI_DRIVER_BINDING_PROTOCOL This,
IN EFI_HANDLE  Controller,
IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath  OPTIONAL 
)

Tests to see if a controller can be managed by the ISA Bus Driver. If a child device is provided, it further tests to see if this driver supports creating a handle for the specified child device.

Note that the ISA Bus driver always creates all of its child handles on the first call to Start(). How the Start() function of a driver is implemented can affect how the Supported() function is implemented.

Parameters:
[in]ThisA pointer to the EFI_DRIVER_BINDING_PROTOCOL instance.
[in]ControllerThe handle of the controller to test.
[in]RemainingDevicePathA pointer to the remaining portion of a device path.
Return values:
EFI_SUCCESSThe device is supported by this driver.
EFI_ALREADY_STARTEDThe device is already being managed by this driver.
EFI_ACCESS_DENIEDThe device is already being managed by a different driver or an application that requires exclusive access.
EFI_UNSUPPORTEDThe device is is not supported by this driver.

Definition at line 88 of file IsaBus.c.

EFI_STATUS IsaCreateDevice ( IN EFI_DRIVER_BINDING_PROTOCOL This,
IN EFI_HANDLE  Controller,
IN EFI_PCI_IO_PROTOCOL PciIo,
IN EFI_DEVICE_PATH_PROTOCOL ParentDevicePath,
IN EFI_ISA_ACPI_RESOURCE_LIST IsaDeviceResourceList,
OUT EFI_DEVICE_PATH_PROTOCOL **  ChildDevicePath 
)

Create EFI Handle for a ISA device found via ISA ACPI Protocol

Parameters:
[in]ThisThe EFI_DRIVER_BINDING_PROTOCOL instance.
[in]ControllerThe handle of ISA bus controller(PCI to ISA bridge)
[in]PciIoThe Pointer to the PCI protocol
[in]ParentDevicePathDevice path of the ISA bus controller
[in]IsaDeviceResourceListThe resource list of the ISA device
[out]ChildDevicePathThe pointer to the child device.
Return values:
EFI_SUCCESSThe handle for the child device was created.
EFI_OUT_OF_RESOURCESThe request could not be completed due to a lack of resources.
EFI_DEVICE_ERRORThe handle for the child device can not be created.

Definition at line 574 of file IsaBus.c.


Variable Documentation

Initial value:

Definition at line 25 of file IsaBus.c.

 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Defines