Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ () — Motorola System V 88k Release 3.2 Version 1.2C

Media Vault

Software Library

Restoration Projects

Artifacts Sought



  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
       default 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     etype;  /* record type */
            short     elen; /* bytes in record (inc hdr) */
            timet       etime;    /* time of day */
       };

       The permissible record types are as follows:

              #define EGOTS    010    /* start */
              #define EGORT    011    /* start for RT */
              #define ESTOP    012    /* stop */
              #define ETCHG    013    /* time change */
              #define ECCHG    014    /* configuration change */
              #define EBLK     020    /* block device error */
              #define ESTRAY    030   /* stray interrupt */
              #define EPRTY    031    /* memory parity */

       Some records in the error file are of an administrative
       nature.  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            ecpu;   /* CPU type */


  Page 1                                                   May 1989


















  ERRFILE(4)                                             ERRFILE(4)



                             struct utsname   ename;   /* system names */
       };
       #define eend errhdr                    /* record header */
       struct   etimchg {
                timet      entime;   /* new time */
       };

       Stray interrupts cause a record with the following format to
       be logged:

       struct   estray {
                uint       esaddr;   /* stray loc or device addr */
       };

       Generation of memory subsystem errors is not supported in
       this release.

       Error records for block devices have the following format:

  struct eblock {
                    devt             edev;      /* "true" major + minor dev no */
                    physadr           eregloc;   /* controller address */
                    short             ebacty;    /* other block I/O activity */
                    struct iostat {
                       long           ioops;     /* number read/writes */
                       long           iomisc;    /* number "other" operations */
                       ushort         iounlog;   /* number unlogged errors */
                     }                estats;
                    short             ebflags;   /* read/write, error, etc */
                    short             ecyloff;   /* logical dev start cyl */
                    daddrt           ebnum;     /* logical block number */
                    ushort            ebytes;    /* number bytes to transfer */
                    paddrt           ememadd;   /* buffer memory address */
                    ushort            ertry;     /* number retries */
                    short             enreg;     /* number device registers */
  };

       The following values are used in the e_bflags word:




  Page 2                                                   May 1989


















  ERRFILE(4)                                             ERRFILE(4)



       #define EWRITE    0     /* write operation */
       #define EREAD     1     /* read operation */
       #define ENOIO     02    /* no I/O pending */
       #define EPHYS     04    /* physical I/O */
       #define EFORMAT   010   /* Formatting Disk*/
       #define EERROR    020   /* I/O failed */

  SEE ALSO
       errdemon(1M).

































  Page 3                                                   May 1989
















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