summaryrefslogtreecommitdiffstats
path: root/src/include/usr/intr/interrupt.H
diff options
context:
space:
mode:
authorDoug Gilbert <dgilbert@us.ibm.com>2011-11-04 12:12:01 -0500
committerA. Patrick Williams III <iawillia@us.ibm.com>2012-01-05 11:06:04 -0600
commit7de0708eac63bb81786c2a5e794c5d6fbef069c4 (patch)
treeb47aeb4c9827851d61b44d5cb922704f73257693 /src/include/usr/intr/interrupt.H
parent048789fdce6b406de3b7149f8171afd63eea1829 (diff)
downloadblackbird-hostboot-7de0708eac63bb81786c2a5e794c5d6fbef069c4.tar.gz
blackbird-hostboot-7de0708eac63bb81786c2a5e794c5d6fbef069c4.zip
Interrupt presenter implementation
Change-Id: If6b499d819b71298b8a64e096e1eb83c639ad645 Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/517 Tested-by: Jenkins Server Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com> Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Diffstat (limited to 'src/include/usr/intr/interrupt.H')
-rw-r--r--src/include/usr/intr/interrupt.H79
1 files changed, 79 insertions, 0 deletions
diff --git a/src/include/usr/intr/interrupt.H b/src/include/usr/intr/interrupt.H
new file mode 100644
index 000000000..142917df2
--- /dev/null
+++ b/src/include/usr/intr/interrupt.H
@@ -0,0 +1,79 @@
+// IBM_PROLOG_BEGIN_TAG
+// This is an automatically generated prolog.
+//
+// $Source: src/include/usr/intr/interrupt.H $
+//
+// IBM CONFIDENTIAL
+//
+// COPYRIGHT International Business Machines Corp. 2011
+//
+// p1
+//
+// Object Code Only (OCO) source materials
+// Licensed Internal Code Source Materials
+// IBM HostBoot Licensed Internal Code
+//
+// The source code for this program is not published or other-
+// wise divested of its trade secrets, irrespective of what has
+// been deposited with the U.S. Copyright Office.
+//
+// Origin: 30
+//
+// IBM_PROLOG_END
+#ifndef INTERRUPT_H
+#define INTERRUPT_H
+
+#include <sys/msg.h>
+#include <errl/errltypes.H>
+#include <sys/interrupt.h>
+
+namespace INTR
+{
+
+
+ /**
+ * External Interrupt Types (XISR)
+ */
+ enum ext_intr_t
+ {
+ NO_INTERRUPT = 0, //!< no interrupt present
+ INTERPROC = 2, //!< Inter processor interrupt
+ FSP_MAILBOX = 0x25, //!< TODO find this value
+ ATTENTION = 0x26, //!< TODO find this value
+ };
+
+ /**
+ * Msg types for intrRp from usr space
+ */
+ enum msg_intr_types_t
+ {
+ MSG_INTR_ADD_CPU_USR = 1, //!< Add cpu core, data[0] = cpuid (PIR)
+ MSG_INTR_REGISTER_MSGQ, //!< Register a msgQ
+ MSG_INTR_ENABLE, //!< Enable external Interrupts
+ MSG_INTR_DISABLE, //!< Disable external interrupts
+ };
+
+
+ /**
+ * Register a message queue to recieve external interrupts
+ * @param[in] i_msgQ The message queue
+ * @param[in] i_type The type of interrupt (XISR value)
+ * @return errlHndl_t on error.
+ */
+ errlHndl_t registerMsgQ(msg_q_t i_msgQ, ext_intr_t i_type);
+
+ /**
+ * Enable hardware to report external interrupts
+ * @return errlHndl_t on error.
+ */
+ errlHndl_t enableExternalInterrupts();
+
+ /**
+ * Disable hardware from reporting external interrupts
+ * @return errlHndl_t on error.
+ */
+ errlHndl_t disableExternalInterrupts();
+
+};
+
+#endif
OpenPOWER on IntegriCloud