[Return to Library] [Contents] [Previous Chapter] [Next Section] [Next Chapter] [Index] [Help]


4    Data Structures That TURBOchannel Device Drivers Use

Data structures are the mechanism used to pass information between the Digital UNIX kernel and device driver interfaces. TURBOchannel device driver writers must understand the data structures described in Writing Device Drivers: Tutorial. To write TURBOchannel device drivers, you must also understand the tc_memerr_status structure, described in this chapter.


[Return to Library] [Contents] [Previous Chapter] [Next Chapter] [Index] [Help]


4.1    The tc_memerr_status Data Structure

The tc_isolate_memerr interface uses the tc_memerr_status data structure to obtain error information associated with devices operating on the TURBOchannel bus.

Table 4-1 lists the members of the tc_memerr_status structure and their associated data types.

Table 4-1: Members of the tc_memerr_status Data Structure

Member Name Data Type
pa caddr_t
va caddr_t
log int
blocksize int
errtype u_int

The pa member specifies the physical address of the error.

The va member specifies the virtual address of the error.

The log member specifies whether to log the error. You can pass one of the following flags:
Value Meaning
TC_NOLOG_MEMERR Do not log the error.
TC_LOG_MEMERR Log the error.

The blocksize member specifies the size of the direct memory access (DMA) block.

The errtype member specifies the error type. You can set this member to one of the following error constants:
Value Meaning
TC_MEMERR_NOERROR No error occurred.
TC_MEMERR_TRANS A transient parity error occurred.
TC_MEMERR_SOFT A soft parity error occurred.
TC_MEMERR_HARD A hard parity error occurred.