From 3b63a701914144419a52061a8087e2643f817928 Mon Sep 17 00:00:00 2001 From: Jonas 'Sortie' Termansen Date: Fri, 13 Apr 2012 17:42:21 +0200 Subject: [PATCH] Added Interrupt::SetEnabled(bool). --- sortix/interrupt.h | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/sortix/interrupt.h b/sortix/interrupt.h index 6f6e9762..64769973 100644 --- a/sortix/interrupt.h +++ b/sortix/interrupt.h @@ -52,6 +52,12 @@ extern "C" unsigned long asm_interrupts_are_enabled(); inline bool IsEnabled() { return asm_interrupts_are_enabled(); } inline void Enable() { asm volatile("sti"); } inline void Disable() { asm volatile("cli"); } +inline bool SetEnabled(bool isenabled) +{ + bool wasenabled = IsEnabled(); + if ( isenabled ) { Enable(); } else { Disable(); } + return wasenabled; +} typedef void (*Handler)(CPU::InterruptRegisters* regs, void* user); void RegisterHandler(unsigned index, Handler handler, void* user);