blob: a9e244f9f197c8cfd80d706a2a02c48cfb3f8f98 [file] [log] [blame]
Arve Hjønnevåg8a052672010-09-27 17:50:00 -07001/*
2 * Copyright (C) 2010 Google, Inc.
3 *
4 * This software is licensed under the terms of the GNU General Public
5 * License version 2, as published by the Free Software Foundation, and
6 * may be copied, distributed, and modified under those terms.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 */
13
14#ifndef __ASM_FIQ_GLUE_H
15#define __ASM_FIQ_GLUE_H
16
17struct fiq_glue_handler {
18 void (*fiq)(struct fiq_glue_handler *h, void *regs, void *svc_sp);
19 void (*resume)(struct fiq_glue_handler *h);
20};
Arve Hjønnevåg6c0dda22013-06-24 18:02:05 -070021typedef void (*fiq_return_handler_t)(void);
Arve Hjønnevåg8a052672010-09-27 17:50:00 -070022
23int fiq_glue_register_handler(struct fiq_glue_handler *handler);
Arve Hjønnevåg6c0dda22013-06-24 18:02:05 -070024int fiq_glue_set_return_handler(fiq_return_handler_t fiq_return);
25int fiq_glue_clear_return_handler(fiq_return_handler_t fiq_return);
Arve Hjønnevåg8a052672010-09-27 17:50:00 -070026
27#ifdef CONFIG_FIQ_GLUE
28void fiq_glue_resume(void);
29#else
30static inline void fiq_glue_resume(void) {}
31#endif
32
33#endif