summaryrefslogtreecommitdiff
path: root/libddekit/include/ddekit/.svn/text-base/interrupt.h.svn-base
diff options
context:
space:
mode:
authorZheng Da <zhengda1936@gmail.com>2009-11-17 10:29:23 +0100
committerZheng Da <zhengda1936@gmail.com>2009-11-17 10:29:23 +0100
commit9290f1fe99c91ba6c57dec956ff73d1741d81b45 (patch)
tree5627d7980a4e0496ae1eaf77ee2f3634bb10b0cc /libddekit/include/ddekit/.svn/text-base/interrupt.h.svn-base
parenta3eba19470c09f42272dac5ca1a34bd8a5cbe834 (diff)
Add DDEKit headers.
Diffstat (limited to 'libddekit/include/ddekit/.svn/text-base/interrupt.h.svn-base')
-rw-r--r--libddekit/include/ddekit/.svn/text-base/interrupt.h.svn-base57
1 files changed, 57 insertions, 0 deletions
diff --git a/libddekit/include/ddekit/.svn/text-base/interrupt.h.svn-base b/libddekit/include/ddekit/.svn/text-base/interrupt.h.svn-base
new file mode 100644
index 00000000..bbabedb2
--- /dev/null
+++ b/libddekit/include/ddekit/.svn/text-base/interrupt.h.svn-base
@@ -0,0 +1,57 @@
+/*
+ * \brief Hardware-interrupt subsystem
+ * \author Thomas Friebel <tf13@os.inf.tu-dresden.de>
+ * \author Christian Helmuth <ch12@os.inf.tu-dresden.de>
+ * \date 2007-01-26
+ *
+ * DDEKit supports registration of one handler function per interrupt. If any
+ * specific DDE implementation needs to register more than one handler,
+ * multiplexing has to be implemented there!
+ */
+
+#ifndef _ddekit_interrupt_h
+#define _ddekit_interrupt_h
+
+#include <l4/dde/ddekit/thread.h>
+
+#define DDEKIT_IRQ_PRIO 0x11
+
+/**
+ * Attach to hardware interrupt
+ *
+ * \param irq IRQ number to attach to
+ * \param shared set to 1 if interrupt sharing is supported; set to 0
+ * otherwise
+ * \param thread_init called just after DDEKit internal init and before any
+ * other function
+ * \param handler IRQ handler for interrupt irq
+ * \param priv private token (argument for thread_init and handler)
+ *
+ * \return pointer to interrupt thread created
+ */
+ddekit_thread_t *ddekit_interrupt_attach(int irq, int shared,
+ void(*thread_init)(void *),
+ void(*handler)(void *), void *priv);
+
+/**
+ * Detach from a previously attached interrupt.
+ *
+ * \param irq IRQ number
+ */
+void ddekit_interrupt_detach(int irq);
+
+/**
+ * Block interrupt.
+ *
+ * \param irq IRQ number to block
+ */
+void ddekit_interrupt_disable(int irq);
+
+/**
+ * Enable interrupt.
+ *
+ * \param irq IRQ number to block
+ */
+void ddekit_interrupt_enable(int irq);
+
+#endif