Line data Source code
1 0 : /* ioapic.h - public IOAPIC APIs */ 2 : 3 : /* 4 : * Copyright (c) 2012-2015 Wind River Systems, Inc. 5 : * 6 : * SPDX-License-Identifier: Apache-2.0 7 : */ 8 : 9 : #ifndef ZEPHYR_INCLUDE_DRIVERS_IOAPIC_H_ 10 : #define ZEPHYR_INCLUDE_DRIVERS_IOAPIC_H_ 11 : 12 : #ifdef __cplusplus 13 : extern "C" { 14 : #endif 15 : 16 : /* 17 : * Redirection table entry bits: lower 32 bit 18 : * Used as flags argument in ioapic_irq_set 19 : */ 20 : 21 0 : #define IOAPIC_INT_MASK 0x00010000 22 0 : #define IOAPIC_TRIGGER_MASK 0x00008000 23 0 : #define IOAPIC_LEVEL 0x00008000 24 0 : #define IOAPIC_EDGE 0x00000000 25 0 : #define IOAPIC_REMOTE 0x00004000 26 0 : #define IOAPIC_POLARITY_MASK 0x00002000 27 0 : #define IOAPIC_LOW 0x00002000 28 0 : #define IOAPIC_HIGH 0x00000000 29 0 : #define IOAPIC_LOGICAL 0x00000800 30 0 : #define IOAPIC_PHYSICAL 0x00000000 31 0 : #define IOAPIC_DELIVERY_MODE_MASK 0x00000700 32 0 : #define IOAPIC_FIXED 0x00000000 33 0 : #define IOAPIC_LOWEST 0x00000100 34 0 : #define IOAPIC_SMI 0x00000200 35 0 : #define IOAPIC_NMI 0x00000400 36 0 : #define IOAPIC_INIT 0x00000500 37 0 : #define IOAPIC_EXTINT 0x00000700 38 : 39 : #ifndef _ASMLANGUAGE 40 : uint32_t z_ioapic_num_rtes(void); 41 : void z_ioapic_irq_enable(unsigned int irq); 42 : void z_ioapic_irq_disable(unsigned int irq); 43 : void z_ioapic_int_vec_set(unsigned int irq, unsigned int vector); 44 : void z_ioapic_irq_set(unsigned int irq, unsigned int vector, uint32_t flags); 45 : #endif /* _ASMLANGUAGE */ 46 : 47 : #ifdef __cplusplus 48 : } 49 : #endif 50 : 51 : #endif /* ZEPHYR_INCLUDE_DRIVERS_IOAPIC_H_ */