xref: /openbmc/u-boot/arch/x86/cpu/x86_64/interrupts.c (revision 83d290c56fab2d38cd1ab4c4cc7099559c1d5046)
1*83d290c5STom Rini // SPDX-License-Identifier: GPL-2.0+
293031595SSimon Glass /*
393031595SSimon Glass  * (C) Copyright 2016 Google, Inc
493031595SSimon Glass  * Written by Simon Glass <sjg@chromium.org>
593031595SSimon Glass  */
693031595SSimon Glass 
793031595SSimon Glass #include <common.h>
893031595SSimon Glass #include <asm/processor-flags.h>
993031595SSimon Glass 
enable_interrupts(void)1093031595SSimon Glass void enable_interrupts(void)
1193031595SSimon Glass {
1293031595SSimon Glass 	asm("sti\n");
1393031595SSimon Glass }
1493031595SSimon Glass 
disable_interrupts(void)1593031595SSimon Glass int disable_interrupts(void)
1693031595SSimon Glass {
1793031595SSimon Glass 	long flags;
1893031595SSimon Glass 
1993031595SSimon Glass 	asm volatile ("pushfq ; popq %0 ; cli\n" : "=g" (flags) : );
2093031595SSimon Glass 
2193031595SSimon Glass 	return flags & X86_EFLAGS_IF;
2293031595SSimon Glass }
2393031595SSimon Glass 
interrupt_init(void)2493031595SSimon Glass int interrupt_init(void)
2593031595SSimon Glass {
2693031595SSimon Glass 	/* Nothing to do - this was already done in SPL */
2793031595SSimon Glass 	return 0;
2893031595SSimon Glass }
29