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.
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.
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. |