blob: 95a4de023efd639e78c8866e4c8921ad7b29b424 [file] [log] [blame]
Graeme Russ9933d602008-12-07 10:29:01 +11001/*
Graeme Russabf0cd32009-02-24 21:13:40 +11002 * (C) Copyright 2009
Graeme Russ9933d602008-12-07 10:29:01 +11003 * Graeme Russ, graeme.russ@gmail.com
4 *
Graeme Russabf0cd32009-02-24 21:13:40 +11005 * (C) Copyright 2002
Albert ARIBAUDfa82f872011-08-04 18:45:45 +02006 * Daniel Engström, Omicron Ceti AB, daniel@omicron.se
Graeme Russabf0cd32009-02-24 21:13:40 +11007 *
Wolfgang Denk1a459662013-07-08 09:37:19 +02008 * SPDX-License-Identifier: GPL-2.0+
Graeme Russ9933d602008-12-07 10:29:01 +11009 */
10
11#ifndef __ASM_INTERRUPT_H_
12#define __ASM_INTERRUPT_H_ 1
13
Graeme Russ7228efa2010-10-07 20:03:23 +110014#include <asm/types.h>
15
Bin Meng6c505272015-10-22 19:13:26 -070016#define SYS_NUM_IRQS 16
17
Bin Meng013cf482015-07-10 10:38:32 +080018/* Architecture defined exceptions */
19enum x86_exception {
20 EXC_DE = 0,
21 EXC_DB,
22 EXC_NMI,
23 EXC_BP,
24 EXC_OF,
25 EXC_BR,
26 EXC_UD,
27 EXC_NM,
28 EXC_DF,
29 EXC_CSO,
30 EXC_TS,
31 EXC_NP,
32 EXC_SS,
33 EXC_GP,
34 EXC_PF,
35 EXC_MF = 16,
36 EXC_AC,
37 EXC_MC,
38 EXC_XM,
39 EXC_VE
40};
41
Graeme Russfea25722011-04-13 19:43:28 +100042/* arch/x86/cpu/interrupts.c */
Graeme Russabf0cd32009-02-24 21:13:40 +110043void set_vector(u8 intnum, void *routine);
44
Graeme Russabf0cd32009-02-24 21:13:40 +110045/* Architecture specific functions */
46void mask_irq(int irq);
47void unmask_irq(int irq);
48void specific_eoi(int irq);
49
50extern char exception_stack[];
51
Simon Glassa0bd8512014-11-14 18:18:31 -070052/**
53 * configure_irq_trigger() - Configure IRQ triggering
54 *
55 * Switch the given interrupt to be level / edge triggered
56 *
57 * @param int_num legacy interrupt number (3-7, 9-15)
58 * @param is_level_triggered true for level triggered interrupt, false for
59 * edge triggered interrupt
60 */
61void configure_irq_trigger(int int_num, bool is_level_triggered);
62
Simon Glass6f41e0e7b2015-04-28 20:25:16 -060063void *x86_get_idt(void);
64
Graeme Russ9933d602008-12-07 10:29:01 +110065#endif