diff options
author | Zheng Da <zhengda1936@gmail.com> | 2009-11-17 10:29:23 +0100 |
---|---|---|
committer | Zheng Da <zhengda1936@gmail.com> | 2009-11-17 10:29:23 +0100 |
commit | 9290f1fe99c91ba6c57dec956ff73d1741d81b45 (patch) | |
tree | 5627d7980a4e0496ae1eaf77ee2f3634bb10b0cc /libddekit/include/ddekit/.svn/text-base/interrupt.h.svn-base | |
parent | a3eba19470c09f42272dac5ca1a34bd8a5cbe834 (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-base | 57 |
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 |