UDI driver coding basics

Background information for understanding UDI drivers

Design of the CMOS and pseudo-device drivers

Static driver properties (udiprops.txt)
    Driver identification
    Module and region declarations
    Device types
    Build instructions

Versions and header files

Region data definitions
    udi_cmos region data structure
        init_context
        bus_bind_cb
        trans_read/trans_write
    pseudod.c region data structure

Scratch space, offsets, and requirements

Control block indexes and structures

Programmed I/O (PIO)
    Further information on transaction lists

Channel operations indexes

Management metalanguage operations vector

Bus bridge metalanguage entry points

GIO metalanguage entry points

Primary region initialization

Channel operations initialization

Channel operation data layouts

Driver initialization structure

Channel operations
    udi_cmos parent channel operations
    udi_cmos child channel operations
    udi_cmos Management Agent channel operations
    pseudod parent channel operations
    pseudod child channel operations
        Debugging code in the pseudod driver
    pseudod Management Agent channel operations

Advanced UDI programming topics

Tips
    Module-global data