Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ errfile(4) — A/UX 2.0

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

errdemon(1M)




errfile(4) errfile(4)
NAME errfile - error-log file format DESCRIPTION When hardware errors are detected by the system, an error record is generated and passed to the error-logging daemon for recording in the error log for later analysis. The de- fault error log is /usr/adm/errfile. The format of an error record depends on the type of error that was encountered. Every record, however, has a header with the following format: struct errhdr { short e_type; /* record type */ short e_len; /* bytes in record (inc hdr) */ time_t e_time; /* time of day */ }; The permissible record types are as follows: #define E_GOTS 010 /* start for the UNIX/TS */ #define E_GORT 011 /* start for the UNIX/RT */ #define E_STOP 012 /* stop */ #define E_TCHG 013 /* time change */ #define E_CCHG 014 /* configuration change */ #define E_BLK 020 /* block device error */ #define E_STRAY 030 /* stray interrupt */ #define E_PRTY 031 /* memory parity */ Some records in the error file are of an administrative na- ture. These include the startup record that is entered into the file when logging is activated, the stop record that is written if the daemon is terminated ``gracefully'', and the time-change record that is used to account for changes in the system's time-of-day. These records have the following formats: struct estart { short e_cpu; /* CPU type */ struct utsname e_name; /* system names */ }; #define eend errhdr /* record header */ struct etimchg { time_t e_ntime; /* new time */ }; Stray interrupts cause a record with the following format to be logged: struct estray { uint e_saddr; /* stray loc or device addr */ April, 1990 1



errfile(4) errfile(4)
}; Generation of memory subsystem errors is not supported in this release. Error records for block devices have the following format: struct eblock { dev_t e_dev; /* ``true'' major + minor dev no */ physadr e_regloc; /* controller address */ short e_bacty; /* other block I/O activity */ struct iostat { long io_ops; /* number read/writes */ long io_misc; /* number ``other'' operations */ ushort io_unlog; /* number unlogged errors */ } e_stats; short e_bflags; /* read/write, error, etc */ short e_cyloff; /* logical dev start cyl */ daddr_t e_bnum; /* logical block number */ ushort e_bytes; /* number bytes to transfer */ paddr_t e_memadd; /* buffer memory address */ ushort e_rtry; /* number retries */ short e_nreg; /* number device registers */ }; The following values are used in the e_bflags word: #define E_WRITE 0 /* write operation */ #define E_READ 1 /* read operation */ #define E_NOIO 02 /* no I/O pending */ #define E_PHYS 04 /* physical I/O */ #define E_FORMAT 010 /* Formatting Disk*/ #define E_ERROR 020 /* I/O failed */ SEE ALSO errdemon(1M). 2 April, 1990

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026