A method and system for accessing devices through use of an abstraction
layer interface that "hides" the access methods from components accessing
the devices, such as device drivers and OPROMs. The abstraction layer
interface includes a set of resource access methods and a database
containing bus, device, function and resource information for various
devices in a system. During an initialization process, bus and device
configuration information is determined and stored in the database. When
an application or operating system requests access to a device, the
application or OS uses the device's device driver or OPROM to pass
identification information, resource information and one or more resource
access commands to the abstraction layer interface, which then verifies
the identification information against the database, and converts the
resource access request into appropriate resource access methods that are
used to access the device.