aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHuang Ying <ying.huang@intel.com>2008-12-05 17:48:36 +0100
committerAndi Kleen <ak@linux.intel.com>2008-12-05 17:48:36 +0100
commitf504d0f400a5ccb2a206f8a4b7d67ee7ca19543f (patch)
tree96c2c0685fe0870d082929c91c3c48bf5a2f85c8
parent27b8ebad35e9925952a512b4cb611678d3c578b2 (diff)
downloadmce-inject-f504d0f400a5ccb2a206f8a4b7d67ee7ca19543f.tar.gz
Add a flag IN_IRQ to MCE syntax
to specify that the MCE should be injected in IRQ context. Signed-off-by: Huang Ying <ying.huang@intel.com>
-rw-r--r--mce.lex1
-rw-r--r--mce.y3
-rw-r--r--parser.h4
3 files changed, 7 insertions, 1 deletions
diff --git a/mce.lex b/mce.lex
index 41ccf3f..a439526 100644
--- a/mce.lex
+++ b/mce.lex
@@ -49,6 +49,7 @@ static struct key {
KEY(MCGSTATUS),
KEY(NOBROADCAST),
KEY(HOLD),
+ KEY(IN_IRQ),
KEYVAL(CORRECTED, MCI_STATUS_VAL), // checkme
KEYVAL(UNCORRECTED, MCI_STATUS_VAL|MCI_STATUS_UC|MCI_STATUS_EN),
KEYVAL(FATAL, MCI_STATUS_VAL|MCI_STATUS_UC|MCI_STATUS_EN
diff --git a/mce.y b/mce.y
index 436796d..0ce3913 100644
--- a/mce.y
+++ b/mce.y
@@ -18,7 +18,7 @@ static void init(void);
%}
-%token STATUS RIP TSC ADDR MISC CPU BANK MCGSTATUS NOBROADCAST HOLD
+%token STATUS RIP TSC ADDR MISC CPU BANK MCGSTATUS NOBROADCAST HOLD IN_IRQ
%token CORRECTED UNCORRECTED FATAL MCE
%token NUMBER
%token SYMBOL
@@ -61,6 +61,7 @@ mce_term: STATUS status_list { m.status = $2; }
| MISC NUMBER { m.misc = $2; m.status |= MCI_STATUS_MISCV; }
| NOBROADCAST { mce_flags |= MCE_NOBROADCAST; }
| HOLD { mce_flags |= MCE_HOLD; }
+ | IN_IRQ { m.pad = MCEC_IRQ; }
;
mcgstatus_list: /* empty */
diff --git a/parser.h b/parser.h
index 36dd504..d033dbf 100644
--- a/parser.h
+++ b/parser.h
@@ -17,3 +17,7 @@ enum mceflags {
extern enum mceflags mce_flags;
+enum mce_context {
+ MCEC_PROCESS,
+ MCEC_IRQ,
+};