Lines Matching +full:local +full:- +full:ipi +full:- +full:id
1 /* loapic.h - public LOAPIC APIs */
6 * SPDX-License-Identifier: Apache-2.0
16 /* Local APIC Register Offset */
18 #define LOAPIC_ID 0x020 /* Local APIC ID Reg */
19 #define LOAPIC_VER 0x030 /* Local APIC Version Reg */
27 #define LOAPIC_ISR 0x100 /* In-service Reg */
42 #define LOAPIC_SELF_IPI 0x3f0 /* Self IPI Reg, only support in X2APIC mode */
46 #define LOAPIC_ICR_IPI_OTHERS 0x000C4000U /* normal IPI to other CPUs */
70 * @brief Read 64-bit value from the local APIC in x2APIC mode.
81 * @brief Read 32-bit value from the local APIC in xAPIC (MMIO) mode.
93 * @brief Read value from the local APIC using the default mode.
95 * Returns a 32-bit value read from the local APIC, using the access
97 * that 64-bit reads are only allowed in x2APIC mode and can only be
112 * @brief Write 64-bit value to the local APIC in x2APIC mode.
115 * @param val 64-bit value to write
124 * @brief Write 32-bit value to the local APIC in xAPIC (MMIO) mode.
127 * @param val 32-bit value to write
137 * @brief Write 32-bit value to the local APIC using the default mode.
139 * Write a 32-bit value to the local APIC, using the access method
141 * 64-bit writes are only available in x2APIC mode and can only be
145 * @param val 32-bit value to write
157 * @brief Send an IPI.
159 * @param apic_id If applicable, the target CPU APIC ID (0 otherwise).
160 * @param ipi Type of IPI: one of the LOAPIC_ICR_IPI_* constants.
163 static inline void z_loapic_ipi(uint8_t apic_id, uint32_t ipi, uint8_t vector) in z_loapic_ipi() argument
165 ipi |= vector; in z_loapic_ipi()
169 * Legacy xAPIC mode: first wait for any previous IPI to be delivered. in z_loapic_ipi()
176 x86_write_xapic(LOAPIC_ICRLO, ipi); in z_loapic_ipi()
182 x86_write_x2apic(LOAPIC_ICRLO, (((uint64_t) apic_id) << 32) | ipi); in z_loapic_ipi()