A hardware access layer interface for performing diagnostics in a computer system
having an operating system and at least one hardware device. The interface is a
registering and synchronizing agent in the given operating system. The interface
has a device driver for managing the hardware device, a kernel module for communicating
with the device driver and the operating system, and a diagnostic module for coordinating
with the kernel module and/or the device driver in order to perform diagnostics
on the hardware device. The interface enables the device driver to publish its
capabilities to interested diagnostic modules or the module responsible for managing
the device.