mirror of
				https://github.com/smaeul/u-boot.git
				synced 2025-11-03 21:48:15 +00:00 
			
		
		
		
	It is useful for this command to show the address of the interrupt table. Add support for this. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
		
			
				
	
	
		
			82 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			82 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/* SPDX-License-Identifier: GPL-2.0+ */
 | 
						|
/*
 | 
						|
 * (C) Copyright 2009
 | 
						|
 * Graeme Russ, graeme.russ@gmail.com
 | 
						|
 *
 | 
						|
 * (C) Copyright 2002
 | 
						|
 * Daniel Engström, Omicron Ceti AB, daniel@omicron.se
 | 
						|
 */
 | 
						|
 | 
						|
#ifndef __ASM_INTERRUPT_H_
 | 
						|
#define __ASM_INTERRUPT_H_ 1
 | 
						|
 | 
						|
#include <asm/types.h>
 | 
						|
 | 
						|
#define SYS_NUM_IRQS	16
 | 
						|
 | 
						|
/* Architecture defined exceptions */
 | 
						|
enum x86_exception {
 | 
						|
	EXC_DE = 0,
 | 
						|
	EXC_DB,
 | 
						|
	EXC_NMI,
 | 
						|
	EXC_BP,
 | 
						|
	EXC_OF,
 | 
						|
	EXC_BR,
 | 
						|
	EXC_UD,
 | 
						|
	EXC_NM,
 | 
						|
	EXC_DF,
 | 
						|
	EXC_CSO,
 | 
						|
	EXC_TS,
 | 
						|
	EXC_NP,
 | 
						|
	EXC_SS,
 | 
						|
	EXC_GP,
 | 
						|
	EXC_PF,
 | 
						|
	EXC_MF = 16,
 | 
						|
	EXC_AC,
 | 
						|
	EXC_MC,
 | 
						|
	EXC_XM,
 | 
						|
	EXC_VE
 | 
						|
};
 | 
						|
 | 
						|
/**
 | 
						|
 * struct idt_ptr - Holds the IDT (Interrupt Descriptor Table)
 | 
						|
 *
 | 
						|
 * @size: Size of IDT in bytes
 | 
						|
 */
 | 
						|
struct idt_ptr {
 | 
						|
	unsigned short size;
 | 
						|
	unsigned long address;
 | 
						|
} __packed;
 | 
						|
 | 
						|
/* arch/x86/cpu/interrupts.c */
 | 
						|
void set_vector(u8 intnum, void *routine);
 | 
						|
 | 
						|
/* Architecture specific functions */
 | 
						|
void mask_irq(int irq);
 | 
						|
void unmask_irq(int irq);
 | 
						|
void specific_eoi(int irq);
 | 
						|
 | 
						|
extern char exception_stack[];
 | 
						|
 | 
						|
/**
 | 
						|
 * configure_irq_trigger() - Configure IRQ triggering
 | 
						|
 *
 | 
						|
 * Switch the given interrupt to be level / edge triggered
 | 
						|
 *
 | 
						|
 * @param int_num legacy interrupt number (3-7, 9-15)
 | 
						|
 * @param is_level_triggered true for level triggered interrupt, false for
 | 
						|
 *	edge triggered interrupt
 | 
						|
 */
 | 
						|
void configure_irq_trigger(int int_num, bool is_level_triggered);
 | 
						|
 | 
						|
void *x86_get_idt(void);
 | 
						|
 | 
						|
/**
 | 
						|
 * interrupt_read_idt() - Read the IDT
 | 
						|
 *
 | 
						|
 * @ptr: Place to put IDT contents
 | 
						|
 */
 | 
						|
void interrupt_read_idt(struct idt_ptr *ptr);
 | 
						|
 | 
						|
#endif
 |