xref: /rk3399_rockchip-uboot/arch/x86/cpu/x86_64/interrupts.c (revision 93031595ede1c8a0ee1f7820ab9d719b0e9e51c7)
1*93031595SSimon Glass /*
2*93031595SSimon Glass  * (C) Copyright 2016 Google, Inc
3*93031595SSimon Glass  * Written by Simon Glass <sjg@chromium.org>
4*93031595SSimon Glass  *
5*93031595SSimon Glass  * SPDX-License-Identifier:	GPL-2.0+
6*93031595SSimon Glass  */
7*93031595SSimon Glass 
8*93031595SSimon Glass #include <common.h>
9*93031595SSimon Glass #include <asm/processor-flags.h>
10*93031595SSimon Glass 
enable_interrupts(void)11*93031595SSimon Glass void enable_interrupts(void)
12*93031595SSimon Glass {
13*93031595SSimon Glass 	asm("sti\n");
14*93031595SSimon Glass }
15*93031595SSimon Glass 
disable_interrupts(void)16*93031595SSimon Glass int disable_interrupts(void)
17*93031595SSimon Glass {
18*93031595SSimon Glass 	long flags;
19*93031595SSimon Glass 
20*93031595SSimon Glass 	asm volatile ("pushfq ; popq %0 ; cli\n" : "=g" (flags) : );
21*93031595SSimon Glass 
22*93031595SSimon Glass 	return flags & X86_EFLAGS_IF;
23*93031595SSimon Glass }
24*93031595SSimon Glass 
interrupt_init(void)25*93031595SSimon Glass int interrupt_init(void)
26*93031595SSimon Glass {
27*93031595SSimon Glass 	/* Nothing to do - this was already done in SPL */
28*93031595SSimon Glass 	return 0;
29*93031595SSimon Glass }
30