Introduction to the System Bus Binding
The UDI System Bus Binding specifies the usage details for the UDI Physical I/O Specification that are specific to what is known in UDI as the System Bus. The system bus abstraction may be used with built-in I/O devices on a system motherboard, and in general is intended for use with any non-self-identifying bus, such as legacy ISA. This chapter defines general requirements for use of the UDI System Bus Binding Specification. The next chapter defines the specifics of the UDI System Bus Binding.
Note - While the System Bus Binding can be used for most ISA devices, it specifically does not support ISA slave DMA (using shared DMA controllers on the motherboard).
1.2 General Requirements
Certain basic rules apply to all UDI System Bus drivers (for both System Bus bridges and devices attached to a System Bus). In order to be UDI-compliant, such a driver must follow all of these rules. UDI System Bus drivers must also follow the rules specified in the UDI Physical I/O Specification and the UDI Core Specification. Rules specific to System Bus drivers are listed here.
Before including any UDI header files, the driver must define the preprocessor symbol, UDI_SYSBUS_VERSION, to indicate the version of the UDI System Bus Binding Specification to which it conforms. For this version of the specification, UDI_SYSBUS_VERSION must be set to 0x101:#define UDI_SYSBUS_VERSION 0x101
Each device driver source file must include the file "udi_sysbus.h" after it includes "udi.h" and "udi_physio.h", as follows:#include <udi.h> #include <udi_physio.h> #include <udi_sysbus.h>
These header files contain environment-specific definitions of standard UDI structures and types, as well as all function prototypes and other definitions needed to use the Core, Physical I/O, and System Bus UDI interfaces and services. Additional include files may be needed for other non-core services and metalanguages as defined in other UDI Specifications.
To maintain portability across UDI supportive platforms, device driver writers shall not assume any knowledge of the contents of these header files with respect to implementation-dependent aspects of the UDI interfaces (such as the definition of handles or abstract types). Similarly, drivers shall not access any functions or objects external to the driver except those defined in the UDI Specifications to which they conform.
1.3 Normative References
The UDI System Bus Binding Specification references and depends only upon the UDI Core and Physical I/O Specifications. No other UDI or non-UDI specifications are required for the use of the System Bus Specification.