diff options
author | Robin Getz <robin.getz@analog.com> | 2010-03-11 17:24:18 +0100 |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2010-05-21 15:40:17 +0200 |
commit | 2a12c4632db1c0c548a7023e63869b27c7789a92 (patch) | |
tree | 518ec2b9379886d5fe7301cf3d5eed959f0452ca /arch/blackfin/kernel/exception.c | |
parent | Blackfin: punt Blackfin-specific GPIO wakeup API (diff) | |
download | linux-2a12c4632db1c0c548a7023e63869b27c7789a92.tar.xz linux-2a12c4632db1c0c548a7023e63869b27c7789a92.zip |
Blackfin: split kernel/traps.c
The current kernel/traps.c file has grown a bit unwieldy as more debugging
functionality has been added over time, so split it up into more logical
files. There should be no functional changes here, just minor whitespace
tweaking. This should make future extensions easier to manage.
Signed-off-by: Robin Getz <robin.getz@analog.com>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Diffstat (limited to 'arch/blackfin/kernel/exception.c')
-rw-r--r-- | arch/blackfin/kernel/exception.c | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/arch/blackfin/kernel/exception.c b/arch/blackfin/kernel/exception.c new file mode 100644 index 000000000000..9208b5fd5186 --- /dev/null +++ b/arch/blackfin/kernel/exception.c @@ -0,0 +1,45 @@ +/* Basic functions for adding/removing custom exception handlers + * + * Copyright 2004-2009 Analog Devices Inc. + * + * Licensed under the GPL-2 or later + */ + +#include <linux/module.h> +#include <asm/irq_handler.h> + +int bfin_request_exception(unsigned int exception, void (*handler)(void)) +{ + void (*curr_handler)(void); + + if (exception > 0x3F) + return -EINVAL; + + curr_handler = ex_table[exception]; + + if (curr_handler != ex_replaceable) + return -EBUSY; + + ex_table[exception] = handler; + + return 0; +} +EXPORT_SYMBOL(bfin_request_exception); + +int bfin_free_exception(unsigned int exception, void (*handler)(void)) +{ + void (*curr_handler)(void); + + if (exception > 0x3F) + return -EINVAL; + + curr_handler = ex_table[exception]; + + if (curr_handler != handler) + return -EBUSY; + + ex_table[exception] = ex_replaceable; + + return 0; +} +EXPORT_SYMBOL(bfin_free_exception); |