Specifications
Operating System Routines
ERL$DEVICERR, ERL$DEVICTMO, ERL$DEVICEATTN
• Initializes the buffer with the current system time, error log sequence
number, and error type code. These routines use the following error type
codes:
ERL$DEVICERR Device error (EMB$C_DE)
ERL$DEVICTMO Device timeout (EMB$C_DT)
ERL$DEVICEATTN Device attention (EMB$C_DA)
• Places the address of the error message buffer in UCB$L_EMB.
• Sets UCB$V_ERLOGIP in UCB$L_STS.
• Loads fields from the UCB, the IRP, and the DDB into the buffer, including
the following:
UCB$B_DEVCLASS Device class
UCB$B_DEVTYPE Device type
IRP$L_PID Process ID of the process originating the
I/O request (ERL$_DEVICERR and ERL$_
DEVICTMO)
IRP$W_BOFF Transfer parameter (ERL$DEVICERR and
ERL$DEVICTMO)
IRP$W_BCNT Transfer parameter (ERL$DEVICERR and
ERL$DEVICTMO)
UCB$L_MEDIA Disk size
UCB$W_UNIT Unit number
UCB$W_ERRCNT Count of device errors
UCB$L_OPCNT Count of completed operations
ORB$L_OWNER UIC of volume owner
UCB$L_DEVCHAR Device characteristics
UCB$B_SLAVE Slave unit number
IRP$W_FUNC I/O function value (ERL$DEVICERR and
ERL$DEVICTMO)
DDB$T_NAME Device name (concatenated with cluster node name
if appropriate)
• Loads into R0 the address of the location in the buffer in which the contents
of the device registers are to be stored.
• Calls the driver’s register-dumping routine, the address of which is specified
in the regdmp argument to the DDTAB macro.
Note that a driver must define the local disk UCB extension or local tape UCB
extension, as described in Section 1.19, to use these error-logging routines.
3–11