kernel: removing duplicated headers for k1om
authorReto Achermann <reto.achermann@inf.ethz.ch>
Thu, 18 Jun 2015 16:37:20 +0000 (18:37 +0200)
committerReto Achermann <reto.achermann@inf.ethz.ch>
Fri, 19 Jun 2015 10:09:30 +0000 (12:09 +0200)
merging the k1om and x86_64 headers in the kernel.

Signed-off-by: Reto Achermann <reto.achermann@inf.ethz.ch>

kernel/include/arch/k1om/arch_gdb_stub.h [deleted file]
kernel/include/arch/k1om/cpuid_spaces.h [deleted file]
kernel/include/arch/k1om/fpu.h [deleted file]
kernel/include/arch/k1om/init.h
kernel/include/arch/k1om/irq.h [deleted file]
kernel/include/arch/k1om/kernel_multiboot.h [deleted file]
kernel/include/arch/k1om/misc.h [deleted file]
kernel/include/arch/k1om/paging_kernel_arch.h [deleted file]
kernel/include/arch/k1om/vmkit.h [deleted file]

diff --git a/kernel/include/arch/k1om/arch_gdb_stub.h b/kernel/include/arch/k1om/arch_gdb_stub.h
deleted file mode 100644 (file)
index 3a04117..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-/**
- * \file
- * \brief Header for x86-specific GDB stub code.
- */
-
-/*
- * Copyright (c) 2007, 2008, ETH Zurich.
- * All rights reserved.
- *
- * This file is distributed under the terms in the attached LICENSE file.
- * If you do not find this file, copies can be found by writing to:
- * ETH Zurich D-INFK, Haldeneggsteig 4, CH-8092 Zurich. Attn: Systems Group.
- */
-
-#include <x86.h>
-
-/**
- * \brief X86_64 register set
- *
- * As defined by GDB.
- */
-enum gdb_x86_64_register_nums {
-    GDB_X86_64_RAX_REG, GDB_X86_64_RBX_REG, GDB_X86_64_RCX_REG, GDB_X86_64_RDX_REG,
-    GDB_X86_64_RSI_REG, GDB_X86_64_RDI_REG, GDB_X86_64_RBP_REG, GDB_X86_64_RSP_REG,
-    GDB_X86_64_R8_REG, GDB_X86_64_R9_REG, GDB_X86_64_R10_REG, GDB_X86_64_R11_REG,
-    GDB_X86_64_R12_REG, GDB_X86_64_R13_REG, GDB_X86_64_R14_REG, GDB_X86_64_R15_REG,
-    GDB_X86_64_RIP_REG, GDB_X86_64_EFLAGS_REG, GDB_X86_64_CS_REG, GDB_X86_64_SS_REG,
-
-/* these are not saved/used in 64-bit mode, and currently avoided
-    DS_REG, ES_REG, FS_REG, GS_REG,
-*/
-
-/* these are not used yet:
-    ST0_REG, ST1_REG, ST2_REG, ST3_REG, ST4_REG, ST5_REG, ST6_REG, ST7_REG,
-
-    FCTRL_REG, FSTAT_REG, FTAG_REG, FISEG_REG,
-    FIOFF_REG, FOSEG_REG, FOOFF_REG, FOP_REG,
-
-    XMM0_REG, XMM1_REG, XMM2_REG, XMM3_REG, XMM4_REG, XMM5_REG,
-    XMM6_REG, XMM7_REG, XMM8_REG, XMM9_REG, XMM10_REG, XMM11_REG,
-    XMM12_REG, XMM13_REG, XMM14_REG, XMM15_REG,
-    MXCSR_REG
-*/
-
-    GDB_X86_64_NUM_REGS /* not a real register; must be last! */
-};
-
-extern uintptr_t *gdb_arch_registers;
-
-/** Address of saved registers as void * */
-#define GDB_ARCH_REGADDR    ((void*)gdb_arch_registers)
-
-/** Number of bytes saved in GDB frame */
-#define GDB_ARCH_REGBYTES   (sizeof(uintptr_t) * GDB_X86_64_NUM_REGS)
diff --git a/kernel/include/arch/k1om/cpuid_spaces.h b/kernel/include/arch/k1om/cpuid_spaces.h
deleted file mode 100644 (file)
index 39c0858..0000000
+++ /dev/null
@@ -1,104 +0,0 @@
-/**
- * \file
- * \brief Address-space support for Mackerel CPUID device definitions
- */
-
-/*
- * Copyright (c) 2007, 2008, 2010, ETH Zurich.
- * All rights reserved.
- *
- * This file is distributed under the terms in the attached LICENSE file.
- * If you do not find this file, copies can be found by writing to:
- * ETH Zurich D-INFK, Haldeneggsteig 4, CH-8092 Zurich. Attn: Systems Group.
- */
-
-#ifndef CPUID_SPACES_H
-#define CPUID_SPACES_H
-
-#define CPUID(offset, reg) \
-    __asm volatile("cpuid" : reg : "a" (offset))
-
-static inline uint32_t cpuid_eax_read_32(cpuid_t *dev, size_t offset)
-{
-    uint32_t eax;
-    CPUID(offset, "=a" (eax));
-    return eax;
-}
-
-static inline uint32_t cpuid_ebx_read_32(cpuid_t *dev, size_t offset)
-{
-    uint32_t ebx;
-    CPUID(offset, "=b" (ebx));
-    return ebx;
-}
-
-static inline uint32_t cpuid_ecx_read_32(cpuid_t *dev, size_t offset)
-{
-    uint32_t ecx;
-    CPUID(offset, "=c" (ecx));
-    return ecx;
-}
-
-static inline uint32_t cpuid_edx_read_32(cpuid_t *dev, size_t offset)
-{
-    uint32_t edx;
-    CPUID(offset, "=d" (edx));
-    return edx;
-}
-
-static inline uint32_t cpuid_dcpa_read_32(cpuid_t *dev, size_t offset)
-{
-    // Unimplemented
-    return 0;
-}
-
-static inline uint32_t cpuid_dcpb_read_32(cpuid_t *dev, size_t offset)
-{
-    return 0;
-}
-
-static inline uint32_t cpuid_dcpc_read_32(cpuid_t *dev, size_t offset)
-{
-    return 0;
-}
-
-// Writing is not possible, but has to be here anyway
-
-static inline void cpuid_eax_write_32(cpuid_t *dev, size_t offset,
-                                      uint32_t value)
-{
-}
-
-static inline void cpuid_ebx_write_32(cpuid_t *dev, size_t offset,
-                                      uint32_t value)
-{
-}
-
-static inline void cpuid_ecx_write_32(cpuid_t *dev, size_t offset,
-                                      uint32_t value)
-{
-}
-
-static inline void cpuid_edx_write_32(cpuid_t *dev, size_t offset,
-                                      uint32_t value)
-{
-}
-
-static inline void cpuid_dcpa_write_32(cpuid_t *dev, size_t offset,
-                                       uint32_t value)
-{
-}
-
-static inline void cpuid_dcpb_write_32(cpuid_t *dev, size_t offset,
-                                       uint32_t value)
-{
-}
-
-static inline void cpuid_dcpc_write_32(cpuid_t *dev, size_t offset,
-                                       uint32_t value)
-{
-}
-
-#undef CPUID
-
-#endif // CPUID_SPACES_H
diff --git a/kernel/include/arch/k1om/fpu.h b/kernel/include/arch/k1om/fpu.h
deleted file mode 100644 (file)
index 303089c..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-/**
- * \file
- * \brief FPU lazy context switch support
- */
-
-/*
- * Copyright (c) 2007, 2008, 2010, 2011, ETH Zurich.
- * All rights reserved.
- *
- * This file is distributed under the terms in the attached LICENSE file.
- * If you do not find this file, copies can be found by writing to:
- * ETH Zurich D-INFK, Haldeneggsteig 4, CH-8092 Zurich. Attn: Systems Group.
- */
-
-#ifndef __FPU_H
-#define __FPU_H
-
-static inline void fpu_trap_on(void)
-{
-    uint64_t cr0;
-    __asm volatile("mov %%cr0, %%rax" : "=a" (cr0));
-    cr0 |= (1 << 3);        // Set TS
-    __asm volatile("mov %%rax,%%cr0" :: "a" (cr0));
-}
-
-static inline bool fpu_trap_get(void)
-{
-    uint64_t cr0;
-    __asm volatile("mov %%cr0, %%rax" : "=a" (cr0));
-    return cr0 & (1 << 3);
-}
-
-static inline void fpu_trap_off(void)
-{
-    clts();
-}
-
-#endif
index c590568..e6ff3e5 100644 (file)
  * ETH Zurich D-INFK, Haldeneggsteig 4, CH-8092 Zurich. Attn: Systems Group.
  */
 
-#ifndef INIT_H
-#define INIT_H
-
-/// Magic value passed when kernel is booted by itself (and not bootloader)
-#define KERNEL_BOOT_MAGIC       0x33e1f154
+#ifndef K1OM_INIT_H
+#define K1OM_INIT_H 1
 
+///< boot magic when the first kernel of the Xeon Phi gets booted
 #define K1OM_BOOT_MAGIC         0xB001B001
 
+#include <arch/x86_64/init.h>
 
-#ifndef __ASSEMBLER__
-
-extern bool idt_initialized;
-
-void arch_init(uint64_t magic, void *pointer) __attribute__ ((noreturn));
-
-/**
- * Fast system call entry point (in Assembler).
- */
-extern void syscall_entry(void);
-
-#endif
-
-#endif
+#endif /* K1OM_INIT_H */
diff --git a/kernel/include/arch/k1om/irq.h b/kernel/include/arch/k1om/irq.h
deleted file mode 100644 (file)
index 95801bf..0000000
+++ /dev/null
@@ -1,167 +0,0 @@
-/**
- * \file
- * \brief x86-64 interrupt/exception handling
- */
-
-/*
- * Copyright (c) 2007, 2008, 2009, 2010, ETH Zurich.
- * All rights reserved.
- *
- * This file is distributed under the terms in the attached LICENSE file.
- * If you do not find this file, copies can be found by writing to:
- * ETH Zurich D-INFK, Haldeneggsteig 4, CH-8092 Zurich. Attn: Systems Group.
- */
-
-/*-
- * Copyright (c) 1989, 1990 William F. Jolitz
- * Copyright (c) 1990 The Regents of the University of California.
- * All rights reserved.
- *
- * This code is derived from software contributed to Berkeley by
- * William Jolitz.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- *      from: @(#)segments.h    7.1 (Berkeley) 5/9/91
- * $FreeBSD$
- */
-
-#ifndef KERNEL_IRQ_H
-#define KERNEL_IRQ_H
-
-/*
- * AMD64 Segmentation Data Structures and definitions
- */
-
-/*
- * Selectors
- */
-
-#define SEL_RPL_MASK    3       /* requester priv level */
-#define ISPL(s) ((s)&3)         /* what is the priority level of a selector */
-#define SEL_KPL 0               /* kernel priority level */
-#define SEL_UPL 3               /* user priority level */
-#define ISLDT(s)        ((s)&SEL_LDT)   /* is it local or global */
-#define SEL_LDT 4               /* local descriptor table */
-#define IDXSEL(s)       (((s)>>3) & 0x1fff)             /* index of selector */
-#define LSEL(s,r)       (((s)<<3) | SEL_LDT | r)        /* a local selector */
-#define GSEL(s,r)       (((s)<<3) | r)                  /* a global selector */
-
-/**
- * Gate descriptors (e.g. indirect descriptors, trap, interrupt etc. 128 bit)
- * Only interrupt and trap gates have gd_ist.
- */
-struct  gate_descriptor {
-    uint64_t gd_looffset:16;       /* gate offset (lsb) */
-    uint64_t gd_selector:16;       /* gate segment selector */
-    uint64_t gd_ist:3;             /* IST table index */
-    uint64_t gd_xx:5;              /* unused */
-    uint64_t gd_type:5;            /* segment type */
-    uint64_t gd_dpl:2;             /* segment descriptor priority level */
-    uint64_t gd_p:1;               /* segment descriptor present */
-    uint64_t gd_hioffset:48;       /* gate offset (msb) */
-    uint64_t sd_xx1:32;
-} __attribute__((packed));
-
-/* system segments and gate types */
-#define SDT_SYSNULL      0      /* system null */
-#define SDT_SYSLDT       2      /* system 64 bit local descriptor table */
-#define SDT_SYSTSS       9      /* system available 64 bit TSS */
-#define SDT_SYSBSY      11      /* system busy 64 bit TSS */
-#define SDT_SYSCGT      12      /* system 64 bit call gate */
-#define SDT_SYSIGT      14      /* system 64 bit interrupt gate */
-#define SDT_SYSTGT      15      /* system 64 bit trap gate */
-
-/* memory segment types */
-#define SDT_MEMRO       16      /* memory read only */
-#define SDT_MEMROA      17      /* memory read only accessed */
-#define SDT_MEMRW       18      /* memory read write */
-#define SDT_MEMRWA      19      /* memory read write accessed */
-#define SDT_MEMROD      20      /* memory read only expand dwn limit */
-#define SDT_MEMRODA     21      /* memory read only expand dwn limit accessed */
-#define SDT_MEMRWD      22      /* memory read write expand dwn limit */
-#define SDT_MEMRWDA     23      /* memory read write expand dwn limit accessed */
-#define SDT_MEME        24      /* memory execute only */
-#define SDT_MEMEA       25      /* memory execute only accessed */
-#define SDT_MEMER       26      /* memory execute read */
-#define SDT_MEMERA      27      /* memory execute read accessed */
-#define SDT_MEMEC       28      /* memory execute only conforming */
-#define SDT_MEMEAC      29      /* memory execute only accessed conforming */
-#define SDT_MEMERC      30      /* memory execute read conforming */
-#define SDT_MEMERAC     31      /* memory execute read accessed conforming */
-
-/*
- * Size of IDT table
- */
-#define NIDT    256             /* 32 reserved, 16 h/w, 0 s/w, linux's 0x80 */
-
-/// Number of (reserved) hardware exceptions
-#define NEXCEPTIONS             32
-
-/// Size of hardware IRQ dispatch table == #NIDT - #NEXCEPTIONS exceptions
-#define NDISPATCH               (NIDT - NEXCEPTIONS)
-
-
-/*
- * Entries in the Global Descriptor Table (GDT)
- */
-#define NULL_SEL        0       /**< Null descriptor */
-#define KCODE_SEL       1       /**< Kernel code descriptor */
-#define KSTACK_SEL      2       /**< Shared user/kernel stack descriptor */
-#define USTACK_SEL      3       /**< User stack descriptor */
-#define UCODE_SEL       4       /**< User code descriptor */
-#define TSS_LO_SEL      5       /**< Task State Segment (TSS) -- low 64bit */
-#define TSS_HI_SEL      6       /**< Task State Segment (TSS) -- high 64bit */
-#define LDT_LO_SEL      7       /**< Local descriptor table (LDT) -- low */
-#define LDT_HI_SEL      8       /**< Local descriptor table (LDT) -- high */
-#define NGDT_MEM        9       /**< Number of descriptors */
-
-/**
- * region descriptors, used to load gdt/idt tables before segments yet exist.
- */
-struct region_descriptor {
-    uint16_t rd_limit;          /**< segment extent */
-    uint64_t rd_base;           /**< base address  */
-} __attribute__((packed));
-
-struct task_state_segment {
-    uint32_t    reserved;
-    uint64_t    rsp[3];
-    uint64_t    reserved2;
-    uint64_t    ist[7];
-    uint64_t    reserved3;
-    uint16_t    reserved4;
-    uint16_t    iomap_base;
-} __attribute__ ((packed));
-
-void setup_default_idt(void);
-
-errval_t irq_table_alloc(int *outvec);
-errval_t irq_table_set(unsigned int nidt, capaddr_t endpoint);
-errval_t irq_table_delete(unsigned int nidt);
-struct kcb;
-errval_t irq_table_notify_domains(struct kcb *kcb);
-
-#endif
diff --git a/kernel/include/arch/k1om/kernel_multiboot.h b/kernel/include/arch/k1om/kernel_multiboot.h
deleted file mode 100644 (file)
index 0c3cd06..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-/**
- * \file
- * \brief Relay header for multiboot structures and kernel-specific
- * function definitions.
- */
-
-/*
- * Copyright (c) 2007, 2008, 2009, 2010, ETH Zurich.
- * All rights reserved.
- *
- * This file is distributed under the terms in the attached LICENSE file.
- * If you do not find this file, copies can be found by writing to:
- * ETH Zurich D-INFK, Haldeneggsteig 4, CH-8092 Zurich. Attn: Systems Group.
- */
-
-#ifndef KERNEL_MULTIBOOT_H
-#define KERNEL_MULTIBOOT_H
-
-#include <multiboot.h>
-
-/**
- * Convert a 32bit address from the Multiboot header to a native virtual
- * address as a char pointer.
- */
-#define MBADDR_ASSTRING(vaddr)  (char * NTS)TC((uintptr_t)(local_phys_to_mem(vaddr)))
-
-void multiboot_info_print(struct multiboot_info *mb);
-struct multiboot_modinfo *multiboot_find_module(const char *basename);
-uintptr_t multiboot_end_addr(struct multiboot_info *mi);
-
-
-
-#endif
diff --git a/kernel/include/arch/k1om/misc.h b/kernel/include/arch/k1om/misc.h
deleted file mode 100644 (file)
index 5b92217..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-/**
- * \file
- * \brief Miscellaneous architecture-specific functions
- */
-
-/*
- * Copyright (c) 2008, 2009, ETH Zurich.
- * All rights reserved.
- *
- * This file is distributed under the terms in the attached LICENSE file.
- * If you do not find this file, copies can be found by writing to:
- * ETH Zurich D-INFK, Haldeneggsteig 4, CH-8092 Zurich. Attn: Systems Group.
- */
-
-#ifndef ARCH_MISC_H
-#define ARCH_MISC_H
-
-#include <x86.h>
-#include <irq.h>
-
-void maybe_reload_ldt(struct dcb *dcb, bool force_reload);
-
-/**
- * \brief Set thread-local-storage register.
- */
-static inline void arch_set_thread_register(uintptr_t val)
-{
-    panic("shouldn't be called for x64 -AB");
-#if 0
-    curdisp->d.lo_base = val & ((1 << 24) - 1);
-    curdisp->d.hi_base = val >> 24;
-    __asm volatile("mov %[fs], %%fs" :: [fs] "r" (GSEL(DISP_SEL, SEL_UPL)));
-#else
-    wrmsr(MSR_IA32_FSBASE, val);
-#endif
-}
-
-#define arch_get_cycle_count() rdtscp()
-
-#endif
diff --git a/kernel/include/arch/k1om/paging_kernel_arch.h b/kernel/include/arch/k1om/paging_kernel_arch.h
deleted file mode 100644 (file)
index b5f1d75..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-/**
- * \file
- * \brief Architecture specific kernel page table definitions
- */
-
-/*
- * Copyright (c) 2007, 2008, 2009, 2010, ETH Zurich.
- * All rights reserved.
- *
- * This file is distributed under the terms in the attached LICENSE file.
- * If you do not find this file, copies can be found by writing to:
- * ETH Zurich D-INFK, Haldeneggsteig 4, CH-8092 Zurich. Attn: Systems Group.
- */
-
-#ifndef KERNEL_ARCH_K1OM_PAGING_H
-#define KERNEL_ARCH_K1OM_PAGING_H
-
-#include <arch/x86_64/paging_kernel_arch.h>
-
-#endif // KERNEL_ARCH_X86_64_PAGING_H
diff --git a/kernel/include/arch/k1om/vmkit.h b/kernel/include/arch/k1om/vmkit.h
deleted file mode 100644 (file)
index 97b4037..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-/**
- * \file
- * \brief VMKit Kernel interface.
- */
-
-/*
- * Copyright (c) 2009, ETH Zurich.
- * All rights reserved.
- *
- * This file is distributed under the terms in the attached LICENSE file.
- * If you do not find this file, copies can be found by writing to:
- * ETH Zurich D-INFK, Haldeneggsteig 4, CH-8092 Zurich. Attn: Systems Group.
- */
-
-#ifndef VMKIT_H
-#define VMKIT_H
-
-#define VMKIT_ERR_OK        0
-#define VMKIT_ERR_UNAVAIL   (-1)
-
-errval_t vmkit_enable_virtualization (void);
-int vmkit_disable_virtualization (void);
-void __attribute__ ((noreturn)) vmkit_vmenter (struct dcb *dcb);
-
-#endif // _VMKIT_H