ERRFILE(4) ERRFILE(4) НАЗВАНИЕ errfile - формат файла фиксации аппаратных ошибок ОПИСАНИЕ При обнаружении системой аппаратных сбоев порождается запись, которая передается демону, фиксирующему ошибки и заносящему записи в соответствующий файл для последу- ющего анализа. По умолчанию, таким файлом является /usr/adm/errfile. Формат записи об ошибке зависит от типа обнаруженной ошибки. Каждая запись, однако, имеет заголовок следую- щего формата: |struct errhdr { | short e_type; /* Тип записи */ | short e_len; /* Кол-во байт в записи (вкл. заголо- | вок) */ | time_t e_time; /* Дата ошибки */ |}; Перечень допустимых типов записей: |#define E_GOTS 010 /* Старт UNIX/TS */ |#define E_GORT 011 /* Старт UNIX/RT */ |#define E_STOP 012 /* Стоп */ |#define E_TCHG 013 /* Изменение времени */ |#define E_CCHG 014 /* Переконфигурация */ |#define E_BLK 020 /* Ошибка блочного устройства */ |#define E_STRAY 030 /* Случайное прерывание */ |#define E_PRTY 031 /* Четность памяти */ Некоторые записи в файле ошибок имеют администраторское происхождение. Сюда входит инициализационная запись об активации процесса сбора ошибок, завершающая запись при успешном завершении работы демона, а также записи об изменении времени, которые используются для фиксации изменений системного времени. Эти записи имеют следую- щий формат: |struct estart { | short e_cpu; /* Тип ЦП */ | struct utsname e_name; /* Имя системы */ |#define eend errhdr /* Заголовок записи */ |struct etimchg { | time_t e_ntime; /* Новое значение времени */ |}; При случайном прерывании порождается запись следующего формата: |struct estray { | uint e_saddr; /* Адрес прерывания или устройства */ |}; Фиксация ошибок памяти не поддерживается в данной реа- лизации. Записи для блочных устройств имеют следующий формат: |struct eblock { | dev_t e_dev; /* Старший+младший ном. уст-ва */ | physadr e_regloc; /* Адрес контроллера */ | short e_bacty; /* Прочие опер. ввода/вывода */ | struct iostat { | long io_ops; /* Кол-во чтений/записей */ | long io_misc; /* Кол-во прочих операций */ | ushort io_unlog; /* Кол-во незафикс. ошибок */ | } e_stats; | short e_bflags; /* Чтение/запись, ошибка и т.д. */ | short e_cyloff; /* Начальный цилиндр уст-ва */ | daddr_t e_bnum; /* Номер логического блока */ | ushort e_bytes; /* Кол-во передаваемых байт */ | paddr_t e_memadd; /* Адрес буфера */ | ushort e_rtry; /* Кол-во повторных попыток */ | short e_nreg; /* Кол-во регистров уст-ва */ |}; Следующие значения используются в поле флагов e_bflags: |#define E_WRITE 0 /* Операция записи */ |#define E_READ 1 /* Операция чтения */ |#define E_NOIO 02 /* Нет запросов, ожидающих в/в */ |#define E_PHYS 04 /* Физический ввод/вывод */ |#define E_FORMAT 010 /* Форматирование диска */ |#define E_ERROR 020 /* Неудачный ввод/вывод */ СМ. ТАКЖЕ errdemon(1M) в Справочнике администратора.