ao.h (7aec1d6e) ao.h (a307a255)
1/*
2 * CDDL HEADER START
3 *
4 * The contents of this file are subject to the terms of the
1/*
2 * CDDL HEADER START
3 *
4 * The contents of this file are subject to the terms of the
5 * Common Development and Distribution License, Version 1.0 only
6 * (the "License"). You may not use this file except in compliance
7 * with the License.
5 * Common Development and Distribution License (the "License").
6 * You may not use this file except in compliance with the License.
8 *
9 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10 * or http://www.opensolaris.org/os/licensing.
11 * See the License for the specific language governing permissions
12 * and limitations under the License.
13 *
14 * When distributing Covered Code, include this CDDL HEADER in each
15 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.

--- 50 unchanged lines hidden (view full) ---

66 * minimize the number of ao_error_disp_t structures that must be created.
67 * For example, the dc.tag_par error can have r4 values drd or dwr. Rather
68 * than creating two ao_error_disp_t's, we use the separate aed_stat_r4_bits
69 * field to indicate both AO_MCA_R4_BIT_DRD and AO_MCA_R4_BIT_DWD. As the
70 * matching r4 values are drawn from aed_stat_r4_bits, we don't use the r4
71 * bits in aed_stat_code for matching. Similar reasoning lies behind the
72 * creation of the pp and ii fields.
73 */
7 *
8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9 * or http://www.opensolaris.org/os/licensing.
10 * See the License for the specific language governing permissions
11 * and limitations under the License.
12 *
13 * When distributing Covered Code, include this CDDL HEADER in each
14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.

--- 50 unchanged lines hidden (view full) ---

65 * minimize the number of ao_error_disp_t structures that must be created.
66 * For example, the dc.tag_par error can have r4 values drd or dwr. Rather
67 * than creating two ao_error_disp_t's, we use the separate aed_stat_r4_bits
68 * field to indicate both AO_MCA_R4_BIT_DRD and AO_MCA_R4_BIT_DWD. As the
69 * matching r4 values are drawn from aed_stat_r4_bits, we don't use the r4
70 * bits in aed_stat_code for matching. Similar reasoning lies behind the
71 * creation of the pp and ii fields.
72 */
74#define AO_AED_PANIC_NEVER 0x00000000
75#define AO_AED_PANIC_PRIV 0x00000001
76#define AO_AED_PANIC_USER 0x00000002
77#define AO_AED_PANIC_ALWAYS 0x00000003
73#define AO_AED_PANIC_NEVER 0x00
74#define AO_AED_PANIC_IFMCE 0x01
75#define AO_AED_PANIC_ALWAYS 0x80
78
76
79#define AO_AED_F_CORRECTABLE 0x00000001
80#define AO_AED_F_LOFAULT_OK 0x00000002
77#define AO_AED_F_CORRECTABLE 0x01
78#define AO_AED_F_LOFAULT_OK 0x02
81
82typedef struct ao_error_disp {
83 const char *aed_class; /* ereport class for use if match */
84 uint64_t aed_ereport_members; /* ereport contents flags if match */
85 uint64_t aed_stat_mask; /* status msr bits for match */
86 uint64_t aed_stat_mask_res; /* status mask result for match */
87 uint16_t aed_stat_code; /* status code for match */
88 uint8_t aed_stat_extcode; /* extended status code for match */

--- 147 unchanged lines hidden ---
79
80typedef struct ao_error_disp {
81 const char *aed_class; /* ereport class for use if match */
82 uint64_t aed_ereport_members; /* ereport contents flags if match */
83 uint64_t aed_stat_mask; /* status msr bits for match */
84 uint64_t aed_stat_mask_res; /* status mask result for match */
85 uint16_t aed_stat_code; /* status code for match */
86 uint8_t aed_stat_extcode; /* extended status code for match */

--- 147 unchanged lines hidden ---