/* SPDX-License-Identifier: GPL-2.0 */ /* * include/asm/irqflags.h * * IRQ flags handling * * This file gets included from lowlevel asm headers too, to provide * wrapped versions of the local_irq_*() APIs, based on the * arch_local_irq_*() functions from the lowlevel headers.
*/ #ifndef _ASM_IRQFLAGS_H #define _ASM_IRQFLAGS_H
/* Disable interrupts to PIL_NORMAL_MAX unless we already * are using PIL_NMI, in which case PIL_NMI is retained. * * The only values we ever program into the %pil are 0, * PIL_NORMAL_MAX and PIL_NMI. * * Since PIL_NMI is the largest %pil value and all bits are * set in it (0xf), it doesn't matter what PIL_NORMAL_MAX * actually is.
*/
__asm__ __volatile__( "rdpr %%pil, %0\n\t" "or %0, %2, %1\n\t" "wrpr %1, 0x0, %%pil"
: "=r" (flags), "=r" (tmp)
: "i" (PIL_NORMAL_MAX)
: "memory"
);
return flags;
}
#endif/* (__ASSEMBLY__) */
#endif/* !(_ASM_IRQFLAGS_H) */
Messung V0.5
¤ Dauer der Verarbeitung: 0.1 Sekunden
(vorverarbeitet)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.