linux/arch/alpha/kernel/err_impl.h
<<
>>
Prefs
   1/*
   2 *      linux/arch/alpha/kernel/err_impl.h
   3 *
   4 *      Copyright (C) 2000 Jeff Wiedemeier (Compaq Computer Corporation)
   5 *
   6 *      Contains declarations and macros to support Alpha error handling
   7 *      implementations.
   8 */
   9
  10union el_timestamp;
  11struct el_subpacket;
  12struct ev7_lf_subpackets;
  13
  14struct el_subpacket_annotation {
  15        struct el_subpacket_annotation *next;
  16        u16 class;
  17        u16 type;
  18        u16 revision;
  19        char *description;
  20        char **annotation;
  21};
  22#define SUBPACKET_ANNOTATION(c, t, r, d, a) {NULL, (c), (t), (r), (d), (a)}
  23
  24struct el_subpacket_handler {
  25        struct el_subpacket_handler *next;
  26        u16 class;
  27        struct el_subpacket *(*handler)(struct el_subpacket *);
  28};
  29#define SUBPACKET_HANDLER_INIT(c, h) {NULL, (c), (h)}
  30
  31/*
  32 * Manipulate a field from a register given it's name. defines
  33 * for the LSB (__S - shift count) and bitmask (__M) are required
  34 *
  35 * EXTRACT(u, f) - extracts the field and places it at bit position 0
  36 * GEN_MASK(f) - creates an in-position mask for the field
  37 */
  38#define EXTRACT(u, f) (((u) >> f##__S) & f##__M)
  39#define GEN_MASK(f) ((u64)f##__M << f##__S)
  40
  41/*
  42 * err_common.c
  43 */
  44extern char *err_print_prefix;
  45
  46extern void mchk_dump_mem(void *, size_t, char **);
  47extern void mchk_dump_logout_frame(struct el_common *);
  48extern void el_print_timestamp(union el_timestamp *);
  49extern void el_process_subpackets(struct el_subpacket *, int);
  50extern struct el_subpacket *el_process_subpacket(struct el_subpacket *);
  51extern void el_annotate_subpacket(struct el_subpacket *);
  52extern void cdl_check_console_data_log(void);
  53extern int cdl_register_subpacket_annotation(struct el_subpacket_annotation *);
  54extern int cdl_register_subpacket_handler(struct el_subpacket_handler *);
  55
  56/*
  57 * err_ev7.c
  58 */
  59extern struct ev7_lf_subpackets *
  60ev7_collect_logout_frame_subpackets(struct el_subpacket *,
  61                                    struct ev7_lf_subpackets *);
  62extern void ev7_register_error_handlers(void);
  63extern void ev7_machine_check(unsigned long, unsigned long);
  64
  65/*
  66 * err_ev6.c
  67 */
  68extern void ev6_register_error_handlers(void);
  69extern int ev6_process_logout_frame(struct el_common *, int);
  70extern void ev6_machine_check(unsigned long, unsigned long);
  71
  72/*
  73 * err_marvel.c
  74 */
  75extern void marvel_machine_check(unsigned long, unsigned long);
  76extern void marvel_register_error_handlers(void);
  77
  78/*
  79 * err_titan.c
  80 */
  81extern int titan_process_logout_frame(struct el_common *, int);
  82extern void titan_machine_check(unsigned long, unsigned long);
  83extern void titan_register_error_handlers(void);
  84extern int privateer_process_logout_frame(struct el_common *, int);
  85extern void privateer_machine_check(unsigned long, unsigned long);
  86