diff options
Diffstat (limited to 'debian/patches/700001-i386-add-parts-of-cpu.h-from-x15.patch')
-rw-r--r-- | debian/patches/700001-i386-add-parts-of-cpu.h-from-x15.patch | 144 |
1 files changed, 0 insertions, 144 deletions
diff --git a/debian/patches/700001-i386-add-parts-of-cpu.h-from-x15.patch b/debian/patches/700001-i386-add-parts-of-cpu.h-from-x15.patch deleted file mode 100644 index 247ef17..0000000 --- a/debian/patches/700001-i386-add-parts-of-cpu.h-from-x15.patch +++ /dev/null @@ -1,144 +0,0 @@ -From 55b55f51325893542005763a7e50adcf60548112 Mon Sep 17 00:00:00 2001 -From: Justus Winter <justus@gnupg.org> -Date: Fri, 26 Feb 2016 17:48:27 +0100 -Subject: [PATCH gnumach 1/2] i386: add parts of cpu.h from x15 - -* i386/Makefrag.am (libkernel_a_SOURCES): Add new file. -* i386/i386/cpu.h: New file. ---- - i386/Makefrag.am | 1 + - i386/i386/cpu.h | 110 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ - 2 files changed, 111 insertions(+) - create mode 100644 i386/i386/cpu.h - -diff --git a/i386/Makefrag.am b/i386/Makefrag.am -index 0c5faa3..4e56543 100644 ---- a/i386/Makefrag.am -+++ b/i386/Makefrag.am -@@ -97,6 +97,7 @@ libkernel_a_SOURCES += \ - i386/i386/ast.h \ - i386/i386/ast_check.c \ - i386/i386/ast_types.h \ -+ i386/i386/cpu.h \ - i386/i386/cpu_number.h \ - i386/i386/cswitch.S \ - i386/i386/db_disasm.c \ -diff --git a/i386/i386/cpu.h b/i386/i386/cpu.h -new file mode 100644 -index 0000000..1bf40dc ---- /dev/null -+++ b/i386/i386/cpu.h -@@ -0,0 +1,110 @@ -+/* -+ * Copyright (c) 2010-2014 Richard Braun. -+ * -+ * This program is free software: you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation, either version 2 of the License, or -+ * (at your option) any later version. -+ * -+ * This program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with this program. If not, see <http://www.gnu.org/licenses/>. -+ */ -+ -+#ifndef _X86_CPU_H -+#define _X86_CPU_H -+ -+#include <kern/macros.h> -+ -+/* -+ * EFLAGS register flags. -+ */ -+#define CPU_EFL_ONE 0x00000002 -+#define CPU_EFL_IF 0x00000200 -+ -+/* -+ * Return the content of the EFLAGS register. -+ * -+ * Implies a compiler barrier. -+ */ -+static __always_inline unsigned long -+cpu_get_eflags(void) -+{ -+ unsigned long eflags; -+ -+ asm volatile("pushf\n" -+ "pop %0\n" -+ : "=r" (eflags) -+ : : "memory"); -+ -+ return eflags; -+} -+ -+/* -+ * Enable local interrupts. -+ * -+ * Implies a compiler barrier. -+ */ -+static __always_inline void -+cpu_intr_enable(void) -+{ -+ asm volatile("sti" : : : "memory"); -+} -+ -+/* -+ * Disable local interrupts. -+ * -+ * Implies a compiler barrier. -+ */ -+static __always_inline void -+cpu_intr_disable(void) -+{ -+ asm volatile("cli" : : : "memory"); -+} -+ -+/* -+ * Restore the content of the EFLAGS register, possibly enabling interrupts. -+ * -+ * Implies a compiler barrier. -+ */ -+static __always_inline void -+cpu_intr_restore(unsigned long flags) -+{ -+ asm volatile("push %0\n" -+ "popf\n" -+ : : "r" (flags) -+ : "memory"); -+} -+ -+/* -+ * Disable local interrupts, returning the previous content of the EFLAGS -+ * register. -+ * -+ * Implies a compiler barrier. -+ */ -+static __always_inline void -+cpu_intr_save(unsigned long *flags) -+{ -+ *flags = cpu_get_eflags(); -+ cpu_intr_disable(); -+} -+ -+/* -+ * Return true if interrupts are enabled. -+ * -+ * Implies a compiler barrier. -+ */ -+static __always_inline int -+cpu_intr_enabled(void) -+{ -+ unsigned long eflags; -+ -+ eflags = cpu_get_eflags(); -+ return (eflags & CPU_EFL_IF) ? 1 : 0; -+} -+ -+#endif /* _X86_CPU_H */ --- -2.1.4 - |