diff options
Diffstat (limited to 'i386/util')
35 files changed, 0 insertions, 1876 deletions
diff --git a/i386/util/NOTES b/i386/util/NOTES deleted file mode 100644 index 770bbef..0000000 --- a/i386/util/NOTES +++ /dev/null @@ -1,35 +0,0 @@ - -raw_switch: - - Provides the code to switch between real and protected mode. - Switches between the environments "completely": - e.g. when switching to protected mode, - all the normal protected-mode state for that environment is set up. - -raw_pmode: - - i16_raw_enter_pmode() - Enters protoected mode from real mode. - Does not initialize IDT or TSS or anything else; - just gets the system into protected mode - with a simple temporary GDT. - Returns with interrupts turned off - (and they'd better stay off until there's a valid pmode IDT!) - - i16_raw_leave_pmode() - Assumes paging is turned off. - Returns with interrupts turned off; - they can probably be turned back on at any time. - - Depends on: - i16_die() - A20 enable/disable code (e.g. raw_a20). - gdt.h: KERNEL_16_CS, KERNEL_16_DS - - - -vm_param.h: - - Must export kvtolin(), lintokv() - - diff --git a/i386/util/anno.c b/i386/util/anno.c deleted file mode 100644 index 0137fe8..0000000 --- a/i386/util/anno.c +++ /dev/null @@ -1,92 +0,0 @@ -/* - * Copyright (c) 1995 The University of Utah and - * the Computer Systems Laboratory at the University of Utah (CSL). - * All rights reserved. - * - * Permission to use, copy, modify and distribute this software is hereby - * granted provided that (1) source code retains these copyright, permission, - * and disclaimer notices, and (2) redistributions including binaries - * reproduce the notices in supporting documentation, and (3) all advertising - * materials mentioning features or use of this software display the following - * acknowledgement: ``This product includes software developed by the - * Computer Systems Laboratory at the University of Utah.'' - * - * THE UNIVERSITY OF UTAH AND CSL ALLOW FREE USE OF THIS SOFTWARE IN ITS "AS - * IS" CONDITION. THE UNIVERSITY OF UTAH AND CSL DISCLAIM ANY LIABILITY OF - * ANY KIND FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. - * - * CSL requests users of this software to return to csl-dist@cs.utah.edu any - * improvements that they make and grant CSL redistribution rights. - * - * Author: Bryan Ford, University of Utah CSL - */ - -#include "anno.h" -#include "debug.h" - -#ifdef ENABLE_ANNO - -void anno_init() -{ - extern struct anno_entry __ANNO_START__[], __ANNO_END__[]; - struct anno_entry *base; - - /* Sort the tables using a slow, simple selection sort; - it only needs to be done once. */ - for (base = __ANNO_START__; base < __ANNO_END__; base++) - { - struct anno_entry *cur, *low, tmp; - - /* Select the lowermost remaining entry, - and swap it into the base slot. - Sort by table first, then by val1, val2, val3. */ - low = base; - for (cur = base+1; cur < __ANNO_END__; cur++) - if ((cur->table < low->table) - || ((cur->table == low->table) - && ((cur->val1 < low->val1) - || ((cur->val1 == low->val1) - && ((cur->val2 < low->val2) - || ((cur->val2 == low->val2) - && (cur->val3 < low->val3))))))) - low = cur; - tmp = *base; - *base = *low; - *low = tmp; - } - - /* Initialize each anno_table structure with entries in the array. */ - for (base = __ANNO_START__; base < __ANNO_END__; ) - { - struct anno_entry *end; - - for (end = base; - (end < __ANNO_END__) && (end->table == base->table); - end++); - base->table->start = base; - base->table->end = end; - - base = end; - } - -#if 0 /* debugging code */ - { - struct anno_table *t = 0; - - for (base = __ANNO_START__; base < __ANNO_END__; base++) - { - if (t != base->table) - { - t = base->table; - printf("table %08x: %08x-%08x (%d entries)\n", - t, t->start, t->end, t->end - t->start); - assert(t->start == base); - } - printf(" vals %08x %08x %08x\n", - base->table, base->val1, base->val2, base->val3); - } - } -#endif -} - -#endif ENABLE_ANNO diff --git a/i386/util/anno.h b/i386/util/anno.h deleted file mode 100644 index 67e2778..0000000 --- a/i386/util/anno.h +++ /dev/null @@ -1,92 +0,0 @@ -/* - * Copyright (c) 1995-1994 The University of Utah and - * the Computer Systems Laboratory at the University of Utah (CSL). - * All rights reserved. - * - * Permission to use, copy, modify and distribute this software is hereby - * granted provided that (1) source code retains these copyright, permission, - * and disclaimer notices, and (2) redistributions including binaries - * reproduce the notices in supporting documentation, and (3) all advertising - * materials mentioning features or use of this software display the following - * acknowledgement: ``This product includes software developed by the - * Computer Systems Laboratory at the University of Utah.'' - * - * THE UNIVERSITY OF UTAH AND CSL ALLOW FREE USE OF THIS SOFTWARE IN ITS "AS - * IS" CONDITION. THE UNIVERSITY OF UTAH AND CSL DISCLAIM ANY LIABILITY OF - * ANY KIND FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. - * - * CSL requests users of this software to return to csl-dist@cs.utah.edu any - * improvements that they make and grant CSL redistribution rights. - * - * Author: Bryan Ford, University of Utah CSL - */ -#ifndef _I386_KERNEL_UTIL_ANNO_H_ -#define _I386_KERNEL_UTIL_ANNO_H_ - -#ifndef ASSEMBLER - - -struct anno_table -{ - struct anno_entry *start; - struct anno_entry *end; -}; - -struct anno_entry -{ - int val1; - int val2; - int val3; - struct anno_table *table; -}; - - -#else /* ASSEMBLER */ - - -/* Create an arbitrary annotation entry. - Must switch back to an appropriate segment afterward. */ -#define ANNO_ENTRY(table, val1, val2, val3) \ - .section .anno,"aw",@progbits ;\ - .long val1,val2,val3,table - -/* Create an annotation entry for code in a text segment. */ -#define ANNO_TEXT(table, val2, val3) \ -9: ANNO_ENTRY(table, 9b, val2, val3) ;\ - .text - - - -/* The following are for common annotation tables. - These don't have to be used in any given kernel, - and others can be defined as convenient. */ - - -/* The anno_intr table is generally accessed - on hardware interrupts that occur while running in kernel mode. - The value is a routine for the trap handler in interrupt.S - to jump to before processing the hardware interrupt. - This routine applies to all code from this address - up to but not including the address of the next ANNO_INTR. - To disable interrupt redirection for a piece of code, - place an ANNO_INTR(0) before it. */ - -#define ANNO_INTR(routine) \ - ANNO_TEXT(anno_intr, routine, 0) - - -/* The anno_trap table is accessed - on processor traps that occur in kernel mode. - If a match is found in this table, - the specified alternate handler is run instead of the generic handler. - A match is found only if the EIP exactly matches an ANNO_TRAP entry - (i.e. these entries apply to individual instructions, not groups), - and if the trap type that occurred matches the type specified. */ - -#define ANNO_TRAP(type, routine) \ - ANNO_TEXT(anno_trap, type, routine) - - -#endif /* ASSEMBLER */ - -#endif _I386_KERNEL_UTIL_ANNO_H_ diff --git a/i386/util/cpu.h b/i386/util/cpu.h deleted file mode 100644 index d90c6f8..0000000 --- a/i386/util/cpu.h +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Copyright (c) 1995-1994 The University of Utah and - * the Computer Systems Laboratory at the University of Utah (CSL). - * All rights reserved. - * - * Permission to use, copy, modify and distribute this software is hereby - * granted provided that (1) source code retains these copyright, permission, - * and disclaimer notices, and (2) redistributions including binaries - * reproduce the notices in supporting documentation, and (3) all advertising - * materials mentioning features or use of this software display the following - * acknowledgement: ``This product includes software developed by the - * Computer Systems Laboratory at the University of Utah.'' - * - * THE UNIVERSITY OF UTAH AND CSL ALLOW FREE USE OF THIS SOFTWARE IN ITS "AS - * IS" CONDITION. THE UNIVERSITY OF UTAH AND CSL DISCLAIM ANY LIABILITY OF - * ANY KIND FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. - * - * CSL requests users of this software to return to csl-dist@cs.utah.edu any - * improvements that they make and grant CSL redistribution rights. - * - * Author: Bryan Ford, University of Utah CSL - */ -#ifndef _I386_UTIL_CPU_H_ -#define _I386_UTIL_CPU_H_ - -#include <mach/machine/tss.h> - -#include "config.h" -#include "gdt.h" -#include "ldt.h" -#include "idt.h" - -/* - * Multiprocessor i386/i486 systems use a separate copy of the - * GDT, IDT, LDT, and kernel TSS per processor. The first three - * are separate to avoid lock contention: the i386 uses locked - * memory cycles to access the descriptor tables. The TSS is - * separate since each processor needs its own kernel stack, - * and since using a TSS marks it busy. - */ - -/* This structure holds the processor tables for this cpu. */ -struct cpu_tables -{ - struct i386_gate idt[IDTSZ]; - struct i386_descriptor gdt[GDTSZ]; -#ifdef ENABLE_KERNEL_LDT - struct i386_descriptor ldt[LDTSZ]; -#endif -#ifdef ENABLE_KERNEL_TSS - struct i386_tss tss; -#endif -}; - -#include_next "cpu.h" - -#endif _I386_UTIL_CPU_H_ diff --git a/i386/util/cpu_subs.h b/i386/util/cpu_subs.h deleted file mode 100644 index f814d93..0000000 --- a/i386/util/cpu_subs.h +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Copyright (c) 1995-1994 The University of Utah and - * the Computer Systems Laboratory at the University of Utah (CSL). - * All rights reserved. - * - * Permission to use, copy, modify and distribute this software is hereby - * granted provided that (1) source code retains these copyright, permission, - * and disclaimer notices, and (2) redistributions including binaries - * reproduce the notices in supporting documentation, and (3) all advertising - * materials mentioning features or use of this software display the following - * acknowledgement: ``This product includes software developed by the - * Computer Systems Laboratory at the University of Utah.'' - * - * THE UNIVERSITY OF UTAH AND CSL ALLOW FREE USE OF THIS SOFTWARE IN ITS "AS - * IS" CONDITION. THE UNIVERSITY OF UTAH AND CSL DISCLAIM ANY LIABILITY OF - * ANY KIND FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. - * - * CSL requests users of this software to return to csl-dist@cs.utah.edu any - * improvements that they make and grant CSL redistribution rights. - * - * Author: Bryan Ford, University of Utah CSL - */ - -cpu_sub(tables) - -#include_next "cpu_subs.h" diff --git a/i386/util/cpu_tables_init.c b/i386/util/cpu_tables_init.c deleted file mode 100644 index 48e840d..0000000 --- a/i386/util/cpu_tables_init.c +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Copyright (c) 1995-1994 The University of Utah and - * the Computer Systems Laboratory at the University of Utah (CSL). - * All rights reserved. - * - * Permission to use, copy, modify and distribute this software is hereby - * granted provided that (1) source code retains these copyright, permission, - * and disclaimer notices, and (2) redistributions including binaries - * reproduce the notices in supporting documentation, and (3) all advertising - * materials mentioning features or use of this software display the following - * acknowledgement: ``This product includes software developed by the - * Computer Systems Laboratory at the University of Utah.'' - * - * THE UNIVERSITY OF UTAH AND CSL ALLOW FREE USE OF THIS SOFTWARE IN ITS "AS - * IS" CONDITION. THE UNIVERSITY OF UTAH AND CSL DISCLAIM ANY LIABILITY OF - * ANY KIND FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. - * - * CSL requests users of this software to return to csl-dist@cs.utah.edu any - * improvements that they make and grant CSL redistribution rights. - * - * Author: Bryan Ford, University of Utah CSL - */ - -#include "cpu.h" - -void cpu_tables_init(struct cpu *cpu) -{ - cpu_idt_init(cpu); - cpu_gdt_init(cpu); -#ifdef ENABLE_KERNEL_LDT - cpu_ldt_init(cpu); -#endif -#ifdef ENABLE_KERNEL_TSS - cpu_tss_init(cpu); -#endif -} - diff --git a/i386/util/cpu_tables_load.c b/i386/util/cpu_tables_load.c deleted file mode 100644 index 2237b33..0000000 --- a/i386/util/cpu_tables_load.c +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Copyright (c) 1995-1994 The University of Utah and - * the Computer Systems Laboratory at the University of Utah (CSL). - * All rights reserved. - * - * Permission to use, copy, modify and distribute this software is hereby - * granted provided that (1) source code retains these copyright, permission, - * and disclaimer notices, and (2) redistributions including binaries - * reproduce the notices in supporting documentation, and (3) all advertising - * materials mentioning features or use of this software display the following - * acknowledgement: ``This product includes software developed by the - * Computer Systems Laboratory at the University of Utah.'' - * - * THE UNIVERSITY OF UTAH AND CSL ALLOW FREE USE OF THIS SOFTWARE IN ITS "AS - * IS" CONDITION. THE UNIVERSITY OF UTAH AND CSL DISCLAIM ANY LIABILITY OF - * ANY KIND FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. - * - * CSL requests users of this software to return to csl-dist@cs.utah.edu any - * improvements that they make and grant CSL redistribution rights. - * - * Author: Bryan Ford, University of Utah CSL - */ - -#include <mach/machine/proc_reg.h> - -#include "cpu.h" -#include "vm_param.h" - -void cpu_tables_load(struct cpu *cpu) -{ - struct pseudo_descriptor pdesc; - - /* Load the final GDT. - If paging is now on, - then this will point the processor to the GDT - at its new linear address in the kernel linear space. */ - pdesc.limit = sizeof(cpu->tables.gdt)-1; - pdesc.linear_base = kvtolin(&cpu->tables.gdt); - set_gdt(&pdesc); - - /* Reload all the segment registers from the new GDT. */ - asm volatile(" - ljmp %0,$1f - 1: - " : : "i" (KERNEL_CS)); - set_ds(KERNEL_DS); - set_es(KERNEL_DS); - set_fs(0); - set_gs(0); - set_ss(KERNEL_DS); - - /* Load the IDT. */ - pdesc.limit = sizeof(cpu[0].tables.idt)-1; - pdesc.linear_base = kvtolin(&cpu->tables.idt); - set_idt(&pdesc); - -#ifdef DEFAULT_LDT - /* Load the default LDT. */ - set_ldt(DEFAULT_LDT); -#endif - -#ifdef DEFAULT_TSS - /* Make sure it isn't marked busy. */ - cpu->tables.gdt[DEFAULT_TSS_IDX].access &= ~ACC_TSS_BUSY; - - /* Load the default TSS. */ - set_tr(DEFAULT_TSS); -#endif -} - diff --git a/i386/util/crtn.S b/i386/util/crtn.S deleted file mode 100644 index 6a89150..0000000 --- a/i386/util/crtn.S +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright (c) 1995 The University of Utah and - * the Computer Systems Laboratory at the University of Utah (CSL). - * All rights reserved. - * - * Permission to use, copy, modify and distribute this software is hereby - * granted provided that (1) source code retains these copyright, permission, - * and disclaimer notices, and (2) redistributions including binaries - * reproduce the notices in supporting documentation, and (3) all advertising - * materials mentioning features or use of this software display the following - * acknowledgement: ``This product includes software developed by the - * Computer Systems Laboratory at the University of Utah.'' - * - * THE UNIVERSITY OF UTAH AND CSL ALLOW FREE USE OF THIS SOFTWARE IN ITS "AS - * IS" CONDITION. THE UNIVERSITY OF UTAH AND CSL DISCLAIM ANY LIABILITY OF - * ANY KIND FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. - * - * CSL requests users of this software to return to csl-dist@cs.utah.edu any - * improvements that they make and grant CSL redistribution rights. - * - * Author: Bryan Ford, University of Utah CSL - */ - -#ifdef __ELF__ - -#include <mach/machine/asm.h> - - - .section .anno,"aw",@progbits - .globl __ANNO_END__ -__ANNO_END__: - -#endif /* __ELF__ */ diff --git a/i386/util/debug.h b/i386/util/debug.h deleted file mode 100644 index 15ebac5..0000000 --- a/i386/util/debug.h +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Copyright (c) 1995-1994 The University of Utah and - * the Computer Systems Laboratory at the University of Utah (CSL). - * All rights reserved. - * - * Permission to use, copy, modify and distribute this software is hereby - * granted provided that (1) source code retains these copyright, permission, - * and disclaimer notices, and (2) redistributions including binaries - * reproduce the notices in supporting documentation, and (3) all advertising - * materials mentioning features or use of this software display the following - * acknowledgement: ``This product includes software developed by the - * Computer Systems Laboratory at the University of Utah.'' - * - * THE UNIVERSITY OF UTAH AND CSL ALLOW FREE USE OF THIS SOFTWARE IN ITS "AS - * IS" CONDITION. THE UNIVERSITY OF UTAH AND CSL DISCLAIM ANY LIABILITY OF - * ANY KIND FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. - * - * CSL requests users of this software to return to csl-dist@cs.utah.edu any - * improvements that they make and grant CSL redistribution rights. - * - * Author: Bryan Ford, University of Utah CSL - */ -#ifndef _UTIL_I386_DEBUG_H_ -#define _UTIL_I386_DEBUG_H_ - -#ifdef ASSEMBLER -#ifdef DEBUG - - -#define A(cond,a,b) \ - a,b ;\ - j##cond 8f ;\ - int $0xda ;\ -8: - - -#else !DEBUG - - -#define A(cond,a,b) - - -#endif !DEBUG -#else !ASSEMBLER - -#include_next "debug.h" - -#endif !ASSEMBLER - -#endif _UTIL_I386_DEBUG_H_ diff --git a/i386/util/gdt.c b/i386/util/gdt.c deleted file mode 100644 index 7bfa6aa..0000000 --- a/i386/util/gdt.c +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Mach Operating System - * Copyright (c) 1991,1990 Carnegie Mellon University - * Copyright (c) 1991 IBM Corporation - * All Rights Reserved. - * - * Permission to use, copy, modify and distribute this software and its - * documentation is hereby granted, provided that both the copyright - * notice and this permission notice appear in all copies of the - * software, derivative works or modified versions, and any portions - * thereof, and that both notices appear in supporting documentation, - * and that the name IBM not be used in advertising or publicity - * pertaining to distribution of the software without specific, written - * prior permission. - * - * CARNEGIE MELLON AND IBM ALLOW FREE USE OF THIS SOFTWARE IN ITS "AS IS" - * CONDITION. CARNEGIE MELLON AND IBM DISCLAIM ANY LIABILITY OF ANY KIND FOR - * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. - * - * Carnegie Mellon requests users of this software to return to - * - * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU - * School of Computer Science - * Carnegie Mellon University - * Pittsburgh PA 15213-3890 - * - * any improvements or extensions that they make and grant Carnegie Mellon - * the rights to redistribute these changes. - */ - -#include "cpu.h" -#include "vm_param.h" - - -/* Initialize the 32-bit kernel code and data segment descriptors - to point to the base of the kernel linear space region. */ -gdt_desc_initializer(KERNEL_CS, - kvtolin(0), 0xffffffff, - ACC_PL_K|ACC_CODE_R, SZ_32); -gdt_desc_initializer(KERNEL_DS, - kvtolin(0), 0xffffffff, - ACC_PL_K|ACC_DATA_W, SZ_32); - -/* Initialize the 16-bit real-mode code and data segment descriptors. */ -gdt_desc_initializer(KERNEL_16_CS, - kvtolin(0), 0xffff, - ACC_PL_K|ACC_CODE_R, SZ_16); -gdt_desc_initializer(KERNEL_16_DS, - kvtolin(0), 0xffff, - ACC_PL_K|ACC_DATA_W, SZ_16); - -/* Initialize the linear-space data segment descriptor. */ -gdt_desc_initializer(LINEAR_CS, - 0, 0xffffffff, - ACC_PL_K|ACC_CODE_R, SZ_32); -gdt_desc_initializer(LINEAR_DS, - 0, 0xffffffff, - ACC_PL_K|ACC_DATA_W, SZ_32); - -/* Initialize the master LDT and TSS descriptors. */ -#ifdef ENABLE_KERNEL_LDT -gdt_desc_initializer(KERNEL_LDT, - kvtolin(&cpu->tables.ldt), sizeof(cpu->tables.ldt)-1, - ACC_PL_K|ACC_LDT, 0); -#endif -#ifdef ENABLE_KERNEL_TSS -gdt_desc_initializer(KERNEL_TSS, - kvtolin(&cpu->tables.tss), sizeof(cpu->tables.tss)-1, - ACC_PL_K|ACC_TSS, 0); -#endif - - -void cpu_gdt_init(struct cpu *cpu) -{ - /* Initialize all the selectors of the GDT. */ -#define gdt_sel(name) cpu_gdt_init_##name(cpu); -#include "gdt_sels.h" -#undef gdt_sel -} - diff --git a/i386/util/gdt.h b/i386/util/gdt.h deleted file mode 100644 index 5b422ae..0000000 --- a/i386/util/gdt.h +++ /dev/null @@ -1,88 +0,0 @@ -/* - * Copyright (c) 1995-1994 The University of Utah and - * the Computer Systems Laboratory at the University of Utah (CSL). - * All rights reserved. - * - * Permission to use, copy, modify and distribute this software is hereby - * granted provided that (1) source code retains these copyright, permission, - * and disclaimer notices, and (2) redistributions including binaries - * reproduce the notices in supporting documentation, and (3) all advertising - * materials mentioning features or use of this software display the following - * acknowledgement: ``This product includes software developed by the - * Computer Systems Laboratory at the University of Utah.'' - * - * THE UNIVERSITY OF UTAH AND CSL ALLOW FREE USE OF THIS SOFTWARE IN ITS "AS - * IS" CONDITION. THE UNIVERSITY OF UTAH AND CSL DISCLAIM ANY LIABILITY OF - * ANY KIND FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. - * - * CSL requests users of this software to return to csl-dist@cs.utah.edu any - * improvements that they make and grant CSL redistribution rights. - * - * Author: Bryan Ford, University of Utah CSL - */ -#ifndef _I386_GDT_ -#define _I386_GDT_ - -#include <mach/machine/seg.h> - -/* - * Collect and define the GDT segment selectors. - * xxx_IDX is the index number of the selector; - * xxx is the actual selector value (index * 8). - */ -enum gdt_idx -{ - GDT_NULL_IDX = 0, - -#define gdt_sel(name) name##_IDX, -#include "gdt_sels.h" -#undef gdt_sel - - GDT_FIRST_FREE_IDX -}; - -enum gdt_sel -{ - GDT_NULL = 0, - -#define gdt_sel(name) name = name##_IDX * 8, -#include "gdt_sels.h" -#undef gdt_sel -}; - -#define GDTSZ GDT_FIRST_FREE_IDX - - -/* If we have a KERNEL_TSS, use that as our DEFAULT_TSS if none is defined yet. - (The DEFAULT_TSS gets loaded by cpu_tables_load() upon switching to pmode.) - Similarly with DEFAULT_LDT. */ -#if defined(ENABLE_KERNEL_TSS) && !defined(DEFAULT_TSS) -#define DEFAULT_TSS KERNEL_TSS -#define DEFAULT_TSS_IDX KERNEL_TSS_IDX -#endif -#if defined(ENABLE_KERNEL_LDT) && !defined(DEFAULT_LDT) -#define DEFAULT_LDT KERNEL_LDT -#define DEFAULT_LDT_IDX KERNEL_LDT_IDX -#endif - - -/* Fill a segment descriptor in a CPU's GDT. */ -#define fill_gdt_descriptor(cpu, segment, base, limit, access, sizebits) \ - fill_descriptor(&(cpu)->tables.gdt[segment/8], \ - base, limit, access, sizebits) - -#define i16_fill_gdt_descriptor(cpu, segment, base, limit, access, sizebits) \ - i16_fill_descriptor(&(cpu)->tables.gdt[segment/8], \ - base, limit, access, sizebits) - - -/* This automatically defines GDT descriptor initialization functions. */ -#define gdt_desc_initializer(segment, base, limit, access, sizebits) \ - void cpu_gdt_init_##segment(struct cpu *cpu) \ - { \ - fill_gdt_descriptor(cpu, segment, base, limit, \ - access, sizebits); \ - } - - -#endif _I386_GDT_ diff --git a/i386/util/gdt_sels.h b/i386/util/gdt_sels.h deleted file mode 100644 index e9b33fe..0000000 --- a/i386/util/gdt_sels.h +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright (c) 1995-1994 The University of Utah and - * the Computer Systems Laboratory at the University of Utah (CSL). - * All rights reserved. - * - * Permission to use, copy, modify and distribute this software is hereby - * granted provided that (1) source code retains these copyright, permission, - * and disclaimer notices, and (2) redistributions including binaries - * reproduce the notices in supporting documentation, and (3) all advertising - * materials mentioning features or use of this software display the following - * acknowledgement: ``This product includes software developed by the - * Computer Systems Laboratory at the University of Utah.'' - * - * THE UNIVERSITY OF UTAH AND CSL ALLOW FREE USE OF THIS SOFTWARE IN ITS "AS - * IS" CONDITION. THE UNIVERSITY OF UTAH AND CSL DISCLAIM ANY LIABILITY OF - * ANY KIND FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. - * - * CSL requests users of this software to return to csl-dist@cs.utah.edu any - * improvements that they make and grant CSL redistribution rights. - * - * Author: Bryan Ford, University of Utah CSL - */ - -#include "config.h" - -/* Kernel segment descriptors (32-bit flat address space). */ -gdt_sel(KERNEL_CS) -gdt_sel(KERNEL_DS) - -/* Corresponding 16-bit descriptors for protected-mode entry and exit. */ -gdt_sel(KERNEL_16_CS) -gdt_sel(KERNEL_16_DS) - -/* Code and data segments that always maps directly to flat, linear memory. */ -gdt_sel(LINEAR_CS) -gdt_sel(LINEAR_DS) - -/* Standard LDT and TSS descriptors. */ -#ifdef ENABLE_KERNEL_LDT -gdt_sel(KERNEL_LDT) -#endif -#ifdef ENABLE_KERNEL_TSS -gdt_sel(KERNEL_TSS) -#endif - diff --git a/i386/util/i16/debug.h b/i386/util/i16/debug.h deleted file mode 100644 index 6bce9d2..0000000 --- a/i386/util/i16/debug.h +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright (c) 1995 The University of Utah and - * the Computer Systems Laboratory at the University of Utah (CSL). - * All rights reserved. - * - * Permission to use, copy, modify and distribute this software is hereby - * granted provided that (1) source code retains these copyright, permission, - * and disclaimer notices, and (2) redistributions including binaries - * reproduce the notices in supporting documentation, and (3) all advertising - * materials mentioning features or use of this software display the following - * acknowledgement: ``This product includes software developed by the - * Computer Systems Laboratory at the University of Utah.'' - * - * THE UNIVERSITY OF UTAH AND CSL ALLOW FREE USE OF THIS SOFTWARE IN ITS "AS - * IS" CONDITION. THE UNIVERSITY OF UTAH AND CSL DISCLAIM ANY LIABILITY OF - * ANY KIND FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. - * - * CSL requests users of this software to return to csl-dist@cs.utah.edu any - * improvements that they make and grant CSL redistribution rights. - * - * Author: Bryan Ford, University of Utah CSL - */ -#ifndef _UTIL_I386_I16_DEBUG_H_ -#define _UTIL_I386_I16_DEBUG_H_ - -#include_next "debug.h" - -#ifdef DEBUG - -#define i16_assert(v) \ - MACRO_BEGIN \ - if (!(v)) \ - i16_die(__FILE__":?: failed assertion `"#v"'"); \ - MACRO_END - -#else /* !DEBUG */ - -#define i16_assert(v) (0) - -#endif /* !DEBUG */ - -#endif /* _UTIL_I386_I16_DEBUG_H_ */ diff --git a/i386/util/i16/i16.h b/i386/util/i16/i16.h deleted file mode 100644 index 0eae59a..0000000 --- a/i386/util/i16/i16.h +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Copyright (c) 1995-1994 The University of Utah and - * the Computer Systems Laboratory at the University of Utah (CSL). - * All rights reserved. - * - * Permission to use, copy, modify and distribute this software is hereby - * granted provided that (1) source code retains these copyright, permission, - * and disclaimer notices, and (2) redistributions including binaries - * reproduce the notices in supporting documentation, and (3) all advertising - * materials mentioning features or use of this software display the following - * acknowledgement: ``This product includes software developed by the - * Computer Systems Laboratory at the University of Utah.'' - * - * THE UNIVERSITY OF UTAH AND CSL ALLOW FREE USE OF THIS SOFTWARE IN ITS "AS - * IS" CONDITION. THE UNIVERSITY OF UTAH AND CSL DISCLAIM ANY LIABILITY OF - * ANY KIND FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. - * - * CSL requests users of this software to return to csl-dist@cs.utah.edu any - * improvements that they make and grant CSL redistribution rights. - * - * Author: Bryan Ford, University of Utah CSL - */ -#ifndef _I386_I16_ -#define _I386_I16_ - -#include <mach/machine/code16.h> - -#include "gdt.h" - - -/* Macros to switch between 16-bit and 32-bit code - in the middle of a C function. - Be careful with these! */ -#define i16_switch_to_32bit() asm volatile(" - ljmp %0,$1f - .code32 - 1: - " : : "i" (KERNEL_CS)); -#define switch_to_16bit() asm volatile(" - ljmp %0,$1f - .code16 - 1: - " : : "i" (KERNEL_16_CS)); - - -/* From within one type of code, execute 'stmt' in the other. - These are safer and harder to screw up with than the above macros. */ -#define i16_do_32bit(stmt) \ - ({ i16_switch_to_32bit(); \ - { stmt; } \ - switch_to_16bit(); }) -#define do_16bit(stmt) \ - ({ switch_to_16bit(); \ - { stmt; } \ - i16_switch_to_32bit(); }) - - -#endif _I386_I16_ diff --git a/i386/util/i16/i16_die.c b/i386/util/i16/i16_die.c deleted file mode 100644 index e3cd533..0000000 --- a/i386/util/i16/i16_die.c +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright (c) 1995-1994 The University of Utah and - * the Computer Systems Laboratory at the University of Utah (CSL). - * All rights reserved. - * - * Permission to use, copy, modify and distribute this software is hereby - * granted provided that (1) source code retains these copyright, permission, - * and disclaimer notices, and (2) redistributions including binaries - * reproduce the notices in supporting documentation, and (3) all advertising - * materials mentioning features or use of this software display the following - * acknowledgement: ``This product includes software developed by the - * Computer Systems Laboratory at the University of Utah.'' - * - * THE UNIVERSITY OF UTAH AND CSL ALLOW FREE USE OF THIS SOFTWARE IN ITS "AS - * IS" CONDITION. THE UNIVERSITY OF UTAH AND CSL DISCLAIM ANY LIABILITY OF - * ANY KIND FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. - * - * CSL requests users of this software to return to csl-dist@cs.utah.edu any - * improvements that they make and grant CSL redistribution rights. - * - * Author: Bryan Ford, University of Utah CSL - */ - -#include <mach/machine/code16.h> - -CODE16 - -void i16_die(char *mes) -{ - if (mes) - i16_puts(mes); - - i16_exit(mes != 0); -} diff --git a/i386/util/i16/i16_gdt_init_temp.c b/i386/util/i16/i16_gdt_init_temp.c deleted file mode 100644 index 14f2d0e..0000000 --- a/i386/util/i16/i16_gdt_init_temp.c +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Copyright (c) 1995-1994 The University of Utah and - * the Computer Systems Laboratory at the University of Utah (CSL). - * All rights reserved. - * - * Permission to use, copy, modify and distribute this software is hereby - * granted provided that (1) source code retains these copyright, permission, - * and disclaimer notices, and (2) redistributions including binaries - * reproduce the notices in supporting documentation, and (3) all advertising - * materials mentioning features or use of this software display the following - * acknowledgement: ``This product includes software developed by the - * Computer Systems Laboratory at the University of Utah.'' - * - * THE UNIVERSITY OF UTAH AND CSL ALLOW FREE USE OF THIS SOFTWARE IN ITS "AS - * IS" CONDITION. THE UNIVERSITY OF UTAH AND CSL DISCLAIM ANY LIABILITY OF - * ANY KIND FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. - * - * CSL requests users of this software to return to csl-dist@cs.utah.edu any - * improvements that they make and grant CSL redistribution rights. - * - * Author: Bryan Ford, University of Utah CSL - */ - -#include <mach/machine/code16.h> -#include <mach/machine/seg.h> - -#include "vm_param.h" -#include "cpu.h" - - -CODE16 - -/* This 16-bit function initializes CPU 0's GDT - just enough to get in and out of protected (and possibly paged) mode, - with all addresses assuming identity-mapped memory. */ -void i16_gdt_init_temp() -{ - /* Create temporary kernel code and data segment descriptors. - (They'll be reinitialized later after paging is enabled.) */ - i16_fill_gdt_descriptor(&cpu[0], KERNEL_CS, - boot_image_pa, 0xffffffff, - ACC_PL_K|ACC_CODE_R, SZ_32); - i16_fill_gdt_descriptor(&cpu[0], KERNEL_DS, - boot_image_pa, 0xffffffff, - ACC_PL_K|ACC_DATA_W, SZ_32); - i16_fill_gdt_descriptor(&cpu[0], KERNEL_16_CS, - boot_image_pa, 0xffff, - ACC_PL_K|ACC_CODE_R, SZ_16); - i16_fill_gdt_descriptor(&cpu[0], KERNEL_16_DS, - boot_image_pa, 0xffff, - ACC_PL_K|ACC_DATA_W, SZ_16); -} - diff --git a/i386/util/i16/i16_nanodelay.c b/i386/util/i16/i16_nanodelay.c deleted file mode 100644 index 7b23cb5..0000000 --- a/i386/util/i16/i16_nanodelay.c +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Copyright (c) 1995-1994 The University of Utah and - * the Computer Systems Laboratory at the University of Utah (CSL). - * All rights reserved. - * - * Permission to use, copy, modify and distribute this software is hereby - * granted provided that (1) source code retains these copyright, permission, - * and disclaimer notices, and (2) redistributions including binaries - * reproduce the notices in supporting documentation, and (3) all advertising - * materials mentioning features or use of this software display the following - * acknowledgement: ``This product includes software developed by the - * Computer Systems Laboratory at the University of Utah.'' - * - * THE UNIVERSITY OF UTAH AND CSL ALLOW FREE USE OF THIS SOFTWARE IN ITS "AS - * IS" CONDITION. THE UNIVERSITY OF UTAH AND CSL DISCLAIM ANY LIABILITY OF - * ANY KIND FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. - * - * CSL requests users of this software to return to csl-dist@cs.utah.edu any - * improvements that they make and grant CSL redistribution rights. - * - * Author: Bryan Ford, University of Utah CSL - */ - -#include <mach/machine/code16.h> - -CODE16 - -/* XXX */ -void i16_nanodelay(int ns) -{ - asm("jmp 1f; 1:"); - asm("jmp 1f; 1:"); - asm("jmp 1f; 1:"); -} - diff --git a/i386/util/i16/i16_puts.c b/i386/util/i16/i16_puts.c deleted file mode 100644 index c43a3e1..0000000 --- a/i386/util/i16/i16_puts.c +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright (c) 1995-1994 The University of Utah and - * the Computer Systems Laboratory at the University of Utah (CSL). - * All rights reserved. - * - * Permission to use, copy, modify and distribute this software is hereby - * granted provided that (1) source code retains these copyright, permission, - * and disclaimer notices, and (2) redistributions including binaries - * reproduce the notices in supporting documentation, and (3) all advertising - * materials mentioning features or use of this software display the following - * acknowledgement: ``This product includes software developed by the - * Computer Systems Laboratory at the University of Utah.'' - * - * THE UNIVERSITY OF UTAH AND CSL ALLOW FREE USE OF THIS SOFTWARE IN ITS "AS - * IS" CONDITION. THE UNIVERSITY OF UTAH AND CSL DISCLAIM ANY LIABILITY OF - * ANY KIND FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. - * - * CSL requests users of this software to return to csl-dist@cs.utah.edu any - * improvements that they make and grant CSL redistribution rights. - * - * Author: Bryan Ford, University of Utah CSL - */ - -#include <mach/machine/code16.h> - -CODE16 - -void i16_puts(const char *mes) -{ - while (*mes) - i16_putchar(*mes++); - i16_putchar('\n'); -} - diff --git a/i386/util/i16/i16_writehex.c b/i386/util/i16/i16_writehex.c deleted file mode 100644 index 4a1b2af..0000000 --- a/i386/util/i16/i16_writehex.c +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Copyright (c) 1995-1994 The University of Utah and - * the Computer Systems Laboratory at the University of Utah (CSL). - * All rights reserved. - * - * Permission to use, copy, modify and distribute this software is hereby - * granted provided that (1) source code retains these copyright, permission, - * and disclaimer notices, and (2) redistributions including binaries - * reproduce the notices in supporting documentation, and (3) all advertising - * materials mentioning features or use of this software display the following - * acknowledgement: ``This product includes software developed by the - * Computer Systems Laboratory at the University of Utah.'' - * - * THE UNIVERSITY OF UTAH AND CSL ALLOW FREE USE OF THIS SOFTWARE IN ITS "AS - * IS" CONDITION. THE UNIVERSITY OF UTAH AND CSL DISCLAIM ANY LIABILITY OF - * ANY KIND FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. - * - * CSL requests users of this software to return to csl-dist@cs.utah.edu any - * improvements that they make and grant CSL redistribution rights. - * - * Author: Bryan Ford, University of Utah CSL - */ - -#include <mach/machine/code16.h> - -CODE16 - -void i16_writehexdigit(unsigned char digit) -{ - digit &= 0xf; - i16_putchar(digit < 10 ? digit+'0' : digit-10+'A'); -} - -void i16_writehexb(unsigned char val) -{ - i16_writehexdigit(val >> 4); - i16_writehexdigit(val); -} - -void i16_writehexw(unsigned short val) -{ - i16_writehexb(val >> 8); - i16_writehexb(val); -} - -void i16_writehexl(unsigned long val) -{ - i16_writehexw(val >> 16); - i16_writehexw(val); -} - -void i16_writehexll(unsigned long long val) -{ - i16_writehexl(val >> 32); - i16_writehexl(val); -} - diff --git a/i386/util/i386_asm.sym b/i386/util/i386_asm.sym deleted file mode 100644 index 9de12c3..0000000 --- a/i386/util/i386_asm.sym +++ /dev/null @@ -1,36 +0,0 @@ -/* - * MOSS - DOS extender built from the Mach 4 source tree - * Copyright (C) 1995-1994 Sleepless Software - * - * 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, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - * Author: Bryan Ford - */ - -#include <mach/machine/tss.h> - -#include "gdt.h" - -offset i386_tss tss esp0 -offset i386_tss tss ss -size i386_tss tss - -expr KERNEL_CS -expr KERNEL_DS -expr KERNEL_16_CS -expr KERNEL_16_DS -expr LINEAR_CS -expr LINEAR_DS - diff --git a/i386/util/idt.c b/i386/util/idt.c deleted file mode 100644 index 234b60e..0000000 --- a/i386/util/idt.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Copyright (c) 1995-1994 The University of Utah and - * the Computer Systems Laboratory at the University of Utah (CSL). - * All rights reserved. - * - * Permission to use, copy, modify and distribute this software is hereby - * granted provided that (1) source code retains these copyright, permission, - * and disclaimer notices, and (2) redistributions including binaries - * reproduce the notices in supporting documentation, and (3) all advertising - * materials mentioning features or use of this software display the following - * acknowledgement: ``This product includes software developed by the - * Computer Systems Laboratory at the University of Utah.'' - * - * THE UNIVERSITY OF UTAH AND CSL ALLOW FREE USE OF THIS SOFTWARE IN ITS "AS - * IS" CONDITION. THE UNIVERSITY OF UTAH AND CSL DISCLAIM ANY LIABILITY OF - * ANY KIND FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. - * - * CSL requests users of this software to return to csl-dist@cs.utah.edu any - * improvements that they make and grant CSL redistribution rights. - * - * Author: Bryan Ford, University of Utah CSL - */ - -#include <mach/machine/seg.h> -#include <mach/machine/proc_reg.h> - -#include "vm_param.h" -#include "cpu.h" - -struct idt_init_entry -{ - unsigned entrypoint; - unsigned short vector; - unsigned short type; -}; -extern struct idt_init_entry idt_inittab[]; - -void cpu_idt_init(struct cpu *cpu) -{ - struct idt_init_entry *iie = idt_inittab; - - /* Initialize the trap/interrupt vectors from the idt_inittab. */ - while (iie->entrypoint) - { - fill_idt_gate(cpu, iie->vector, iie->entrypoint, - KERNEL_CS, iie->type); - iie++; - } -} - diff --git a/i386/util/idt.h b/i386/util/idt.h deleted file mode 100644 index a94019f..0000000 --- a/i386/util/idt.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Copyright (c) 1995-1994 The University of Utah and - * the Computer Systems Laboratory at the University of Utah (CSL). - * All rights reserved. - * - * Permission to use, copy, modify and distribute this software is hereby - * granted provided that (1) source code retains these copyright, permission, - * and disclaimer notices, and (2) redistributions including binaries - * reproduce the notices in supporting documentation, and (3) all advertising - * materials mentioning features or use of this software display the following - * acknowledgement: ``This product includes software developed by the - * Computer Systems Laboratory at the University of Utah.'' - * - * THE UNIVERSITY OF UTAH AND CSL ALLOW FREE USE OF THIS SOFTWARE IN ITS "AS - * IS" CONDITION. THE UNIVERSITY OF UTAH AND CSL DISCLAIM ANY LIABILITY OF - * ANY KIND FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. - * - * CSL requests users of this software to return to csl-dist@cs.utah.edu any - * improvements that they make and grant CSL redistribution rights. - * - * Author: Bryan Ford, University of Utah CSL - */ -#ifndef _I386_IDT_ -#define _I386_IDT_ - -#include <mach/vm_param.h> -#include <mach/machine/seg.h> - -#include "irq.h" - -/* On a standard PC, we only need 16 interrupt vectors, - because that's all the PIC hardware supports. */ -#ifndef IDTSZ -#define IDTSZ (IDT_IRQ_BASE+IRQ_COUNT) -#endif - - -/* Fill a gate in a CPU's IDT. */ -#define fill_idt_gate(cpu, int_num, entry, selector, access) \ - fill_gate(&(cpu)->tables.idt[int_num], \ - entry, selector, access, 0) - -#endif _I386_IDT_ diff --git a/i386/util/idt_inittab.S b/i386/util/idt_inittab.S deleted file mode 100644 index 3fc6b5c..0000000 --- a/i386/util/idt_inittab.S +++ /dev/null @@ -1,128 +0,0 @@ -/* - * Mach Operating System - * Copyright (c) 1993,1992,1991,1990 Carnegie Mellon University - * Copyright (c) 1991 IBM Corporation - * All Rights Reserved. - * - * Permission to use, copy, modify and distribute this software and its - * documentation is hereby granted, provided that both the copyright - * notice and this permission notice appear in all copies of the - * software, derivative works or modified versions, and any portions - * thereof, and that both notices appear in supporting documentation, - * and that the nema IBM not be used in advertising or publicity - * pertaining to distribution of the software without specific, written - * prior permission. - * - * CARNEGIE MELLON AND IBM ALLOW FREE USE OF THIS SOFTWARE IN ITS "AS IS" - * CONDITION. CARNEGIE MELLON AND IBM DISCLAIM ANY LIABILITY OF ANY KIND FOR - * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. - * - * Carnegie Mellon requests users of this software to return to - * - * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU - * School of Computer Science - * Carnegie Mellon University - * Pittsburgh PA 15213-3890 - * - * any improvements or extensions that they make and grant Carnegie Mellon - * the rights to redistribute these changes. - */ - -#include <mach/machine/asm.h> -#include <mach/machine/eflags.h> -#include <mach/machine/trap.h> -#include <mach/machine/seg.h> - -#include "trap.h" -#include "idt_inittab.h" -#include "debug.h" - -/* - * This is a default idt_inittab - * that simply invokes panic_trap on any trap. - * All gates are interrupt gates, - * so that interrupts will be immediately turned off. - */ - - -/* - * No error code. Clear error code and push trap number. - */ -#define EXCEPTION(n,name) \ - IDT_ENTRY(n,EXT(name),ACC_PL_K|ACC_INTR_GATE);\ -ENTRY(name) ;\ - pushl $(0) ;\ - pushl $(n) ;\ - jmp alltraps - -/* - * User-accessible exception. Otherwise, same as above. - */ -#define EXCEP_USR(n,name) \ - IDT_ENTRY(n,EXT(name),ACC_PL_U|ACC_INTR_GATE);\ -ENTRY(name) ;\ - pushl $(0) ;\ - pushl $(n) ;\ - jmp alltraps - -/* - * Error code has been pushed. Just push trap number. - */ -#define EXCEP_ERR(n,name) \ - IDT_ENTRY(n,EXT(name),ACC_PL_K|ACC_INTR_GATE);\ -ENTRY(name) ;\ - pushl $(n) ;\ - jmp alltraps - -/* - * Special interrupt code: dispatches to a unique entrypoint, - * not defined automatically here. - */ -#define EXCEP_SPC(n,name) \ - IDT_ENTRY(n,EXT(name),ACC_PL_K|ACC_INTR_GATE) - - -IDT_INITTAB_BEGIN - -EXCEPTION(0x00,t_zero_div) -EXCEPTION(0x01,t_debug) -EXCEP_USR(0x03,t_int3) -EXCEP_USR(0x04,t_into) -EXCEP_USR(0x05,t_bounds) -EXCEPTION(0x06,t_invop) -EXCEPTION(0x07,t_nofpu) -EXCEPTION(0x08,a_dbl_fault) -EXCEPTION(0x09,a_fpu_over) -EXCEP_ERR(0x0a,a_inv_tss) -EXCEP_ERR(0x0b,t_segnp) -EXCEP_ERR(0x0c,t_stack_fault) -EXCEP_ERR(0x0d,t_gen_prot) -EXCEP_ERR(0x0e,t_page_fault) -EXCEPTION(0x0f,t_trap_0f) -EXCEPTION(0x10,t_fpu_err) -EXCEPTION(0x11,t_trap_11) -EXCEPTION(0x12,t_trap_12) -EXCEPTION(0x13,t_trap_13) -EXCEPTION(0x14,t_trap_14) -EXCEPTION(0x15,t_trap_15) -EXCEPTION(0x16,t_trap_16) -EXCEPTION(0x17,t_trap_17) -EXCEPTION(0x18,t_trap_18) -EXCEPTION(0x19,t_trap_19) -EXCEPTION(0x1a,t_trap_1a) -EXCEPTION(0x1b,t_trap_1b) -EXCEPTION(0x1c,t_trap_1c) -EXCEPTION(0x1d,t_trap_1d) -EXCEPTION(0x1e,t_trap_1e) -EXCEPTION(0x1f,t_trap_1f) - -IDT_INITTAB_END - -alltraps: - pusha - pushl %ds - pushl %es - pushl %fs - pushl %gs - jmp EXT(trap_handler) - diff --git a/i386/util/idt_inittab.h b/i386/util/idt_inittab.h deleted file mode 100644 index 9cb994f..0000000 --- a/i386/util/idt_inittab.h +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Mach Operating System - * Copyright (c) 1991,1990 Carnegie Mellon University - * All Rights Reserved. - * - * Permission to use, copy, modify and distribute this software and its - * documentation is hereby granted, provided that both the copyright - * notice and this permission notice appear in all copies of the - * software, derivative works or modified versions, and any portions - * thereof, and that both notices appear in supporting documentation. - * - * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" - * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR - * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. - * - * Carnegie Mellon requests users of this software to return to - * - * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU - * School of Computer Science - * Carnegie Mellon University - * Pittsburgh PA 15213-3890 - * - * any improvements or extensions that they make and grant Carnegie Mellon - * the rights to redistribute these changes. - */ -#ifndef _I386_UTIL_IDT_INITTAB_H_ - - - -/* We'll be using macros to fill in a table in data hunk 2 - while writing trap entrypoint routines at the same time. - Here's the header that comes before everything else. */ -#define IDT_INITTAB_BEGIN \ - .data 2 ;\ -ENTRY(idt_inittab) ;\ - .text - -/* - * Interrupt descriptor table and code vectors for it. - */ -#define IDT_ENTRY(n,entry,type) \ - .data 2 ;\ - .long entry ;\ - .word n ;\ - .word type ;\ - .text - -/* - * Terminator for the end of the table. - */ -#define IDT_INITTAB_END \ - .data 2 ;\ - .long 0 ;\ - .text - - -#endif _I386_UTIL_IDT_INITTAB_H_ diff --git a/i386/util/ldt.h b/i386/util/ldt.h deleted file mode 100644 index 135632f..0000000 --- a/i386/util/ldt.h +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright (c) 1995-1994 The University of Utah and - * the Computer Systems Laboratory at the University of Utah (CSL). - * All rights reserved. - * - * Permission to use, copy, modify and distribute this software is hereby - * granted provided that (1) source code retains these copyright, permission, - * and disclaimer notices, and (2) redistributions including binaries - * reproduce the notices in supporting documentation, and (3) all advertising - * materials mentioning features or use of this software display the following - * acknowledgement: ``This product includes software developed by the - * Computer Systems Laboratory at the University of Utah.'' - * - * THE UNIVERSITY OF UTAH AND CSL ALLOW FREE USE OF THIS SOFTWARE IN ITS "AS - * IS" CONDITION. THE UNIVERSITY OF UTAH AND CSL DISCLAIM ANY LIABILITY OF - * ANY KIND FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. - * - * CSL requests users of this software to return to csl-dist@cs.utah.edu any - * improvements that they make and grant CSL redistribution rights. - * - * Author: Bryan Ford, University of Utah CSL - */ -#ifndef _I386_UTIL_LDT_ -#define _I386_UTIL_LDT_ - -#include "config.h" - -/* If more-specific code wants a standard LDT, - then it should define ENABLE_KERNEL_LDT in config.h. */ -#ifdef ENABLE_KERNEL_LDT - -#include <mach/machine/seg.h> - -/* Fill a segment descriptor in a CPU's master LDT. */ -#define fill_ldt_descriptor(cpu, selector, base, limit, access, sizebits) \ - fill_descriptor(&(cpu)->tables.ldt[(selector)/8], \ - base, limit, access, sizebits) - -#define fill_ldt_gate(cpu, selector, offset, dest_selector, access, word_count) \ - fill_gate((struct i386_gate*)&(cpu)->tables.ldt[(selector)/8], \ - offset, dest_selector, access, word_count) - -#endif ENABLE_KERNEL_LDT - -#endif _I386_UTIL_LDT_ diff --git a/i386/util/trap.h b/i386/util/trap.h deleted file mode 100644 index 98d586c..0000000 --- a/i386/util/trap.h +++ /dev/null @@ -1,100 +0,0 @@ -/* - * Mach Operating System - * Copyright (c) 1991,1990,1989 Carnegie Mellon University. - * Copyright (c) 1994 The University of Utah and - * the Center for Software Science (CSS). - * All rights reserved. - * - * Permission to use, copy, modify and distribute this software and its - * documentation is hereby granted, provided that both the copyright - * notice and this permission notice appear in all copies of the - * software, derivative works or modified versions, and any portions - * thereof, and that both notices appear in supporting documentation. - * - * CARNEGIE MELLON, THE UNIVERSITY OF UTAH AND CSS ALLOW FREE USE OF - * THIS SOFTWARE IN ITS "AS IS" CONDITION, AND DISCLAIM ANY LIABILITY - * OF ANY KIND FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF - * THIS SOFTWARE. - * - * Carnegie Mellon requests users of this software to return to - * - * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU - * School of Computer Science - * Carnegie Mellon University - * Pittsburgh PA 15213-3890 - * - * any improvements or extensions that they make and grant Carnegie Mellon - * the rights to redistribute these changes. - */ -#ifndef _I386_MOSS_TRAP_H_ -#define _I386_MOSS_TRAP_H_ - -#ifndef ASSEMBLER - - -/* This structure corresponds to the state of user registers - as saved upon kernel trap/interrupt entry. - As always, it is only a default implementation; - a well-optimized microkernel will probably want to override it - with something that allows better optimization. */ - -struct trap_state { - - /* Saved segment registers */ - unsigned int gs; - unsigned int fs; - unsigned int es; - unsigned int ds; - - /* PUSHA register state frame */ - unsigned int edi; - unsigned int esi; - unsigned int ebp; - unsigned int cr2; /* we save cr2 over esp for page faults */ - unsigned int ebx; - unsigned int edx; - unsigned int ecx; - unsigned int eax; - - unsigned int trapno; - unsigned int err; - - /* Processor state frame */ - unsigned int eip; - unsigned int cs; - unsigned int eflags; - unsigned int esp; - unsigned int ss; - - /* Virtual 8086 segment registers */ - unsigned int v86_es; - unsigned int v86_ds; - unsigned int v86_fs; - unsigned int v86_gs; -}; - -/* The actual trap_state frame pushed by the processor - varies in size depending on where the trap came from. */ -#define TR_KSIZE ((int)&((struct trap_state*)0)->esp) -#define TR_USIZE ((int)&((struct trap_state*)0)->v86_es) -#define TR_V86SIZE sizeof(struct trap_state) - - -#else ASSEMBLER - -#include <mach/machine/asm.h> - -#define UNEXPECTED_TRAP \ - movw %ss,%ax ;\ - movw %ax,%ds ;\ - movw %ax,%es ;\ - movl %esp,%eax ;\ - pushl %eax ;\ - call EXT(trap_dump_die) ;\ - - -#endif ASSEMBLER - -#include <mach/machine/trap.h> - -#endif _I386_MOSS_TRAP_H_ diff --git a/i386/util/trap_asm.sym b/i386/util/trap_asm.sym deleted file mode 100644 index ef95638..0000000 --- a/i386/util/trap_asm.sym +++ /dev/null @@ -1,45 +0,0 @@ -/* - * MOSS - DOS extender built from the Mach 4 source tree - * Copyright (C) 1995-1994 Sleepless Software - * - * 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, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - * Author: Bryan Ford - */ - -#include "trap.h" - -offset trap_state tr edi -offset trap_state tr esi -offset trap_state tr ebp -offset trap_state tr ebx -offset trap_state tr edx -offset trap_state tr ecx -offset trap_state tr eax -offset trap_state tr trapno -offset trap_state tr err -offset trap_state tr eip -offset trap_state tr cs -offset trap_state tr eflags -offset trap_state tr esp -offset trap_state tr ss -offset trap_state tr v86_es -offset trap_state tr v86_ds -offset trap_state tr v86_fs -offset trap_state tr v86_gs -expr TR_KSIZE -expr TR_USIZE -expr TR_V86SIZE - diff --git a/i386/util/trap_dump.c b/i386/util/trap_dump.c deleted file mode 100644 index 62540d5..0000000 --- a/i386/util/trap_dump.c +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Copyright (c) 1994 The University of Utah and - * the Center for Software Science (CSS). All rights reserved. - * - * Permission to use, copy, modify and distribute this software and its - * documentation is hereby granted, provided that both the copyright - * notice and this permission notice appear in all copies of the - * software, derivative works or modified versions, and any portions - * thereof, and that both notices appear in supporting documentation. - * - * THE UNIVERSITY OF UTAH AND CSS ALLOW FREE USE OF THIS SOFTWARE IN ITS "AS - * IS" CONDITION. THE UNIVERSITY OF UTAH AND CSS DISCLAIM ANY LIABILITY OF - * ANY KIND FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. - * - * CSS requests users of this software to return to css-dist@cs.utah.edu any - * improvements that they make and grant CSS redistribution rights. - * - * Author: Bryan Ford, University of Utah CSS - */ - -#include <mach/machine/eflags.h> -#include <mach/machine/proc_reg.h> - -#include "vm_param.h" -#include "trap.h" - -void trap_dump(struct trap_state *st) -{ - short flags; - int from_user = (st->cs & 3) || (st->eflags & EFL_VM); - unsigned *dump_sp = 0; - int i; - - printf("Dump of trap_state at %08x:\n", st); - printf("EAX %08x EBX %08x ECX %08x EDX %08x\n", - st->eax, st->ebx, st->ecx, st->edx); - printf("ESI %08x EDI %08x EBP %08x ESP %08x\n", - st->esi, st->edi, st->ebp, - from_user ? st->esp : (unsigned)&st->esp); - printf("EIP %08x EFLAGS %08x\n", st->eip, st->eflags); - printf("CS %04x SS %04x DS %04x ES %04x FS %04x GS %04x\n", - st->cs & 0xffff, from_user ? st->ss & 0xffff : get_ss(), - st->ds & 0xffff, st->es & 0xffff, - st->fs & 0xffff, st->gs & 0xffff); - printf("v86: DS %04x ES %04x FS %04x GS %04x\n", - st->v86_ds & 0xffff, st->v86_es & 0xffff, - st->v86_gs & 0xffff, st->v86_gs & 0xffff); - printf("trapno %d, error %08x, from %s mode\n", - st->trapno, st->err, from_user ? "user" : "kernel"); - if (st->trapno == T_PAGE_FAULT) - printf("page fault linear address %08x\n", st->cr2); - - /* Dump the top of the stack too. */ - if (!from_user) - { - for (i = 0; i < 32; i++) - { - printf("%08x%c", (&st->esp)[i], - ((i & 7) == 7) ? '\n' : ' '); - } - } -} - diff --git a/i386/util/trap_dump_die.c b/i386/util/trap_dump_die.c deleted file mode 100644 index 0407657..0000000 --- a/i386/util/trap_dump_die.c +++ /dev/null @@ -1,12 +0,0 @@ - -#include "trap.h" - -void trap_dump_die(struct trap_state *st) -{ - about_to_die(1); - - trap_dump(st); - - die("terminated due to trap\n"); -} - diff --git a/i386/util/trap_handler.S b/i386/util/trap_handler.S deleted file mode 100644 index f11ba10..0000000 --- a/i386/util/trap_handler.S +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Copyright (c) 1995-1994 The University of Utah and - * the Computer Systems Laboratory at the University of Utah (CSL). - * All rights reserved. - * - * Permission to use, copy, modify and distribute this software is hereby - * granted provided that (1) source code retains these copyright, permission, - * and disclaimer notices, and (2) redistributions including binaries - * reproduce the notices in supporting documentation, and (3) all advertising - * materials mentioning features or use of this software display the following - * acknowledgement: ``This product includes software developed by the - * Computer Systems Laboratory at the University of Utah.'' - * - * THE UNIVERSITY OF UTAH AND CSL ALLOW FREE USE OF THIS SOFTWARE IN ITS "AS - * IS" CONDITION. THE UNIVERSITY OF UTAH AND CSL DISCLAIM ANY LIABILITY OF - * ANY KIND FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. - * - * CSL requests users of this software to return to csl-dist@cs.utah.edu any - * improvements that they make and grant CSL redistribution rights. - * - * Author: Bryan Ford, University of Utah CSL - */ - -#include <mach/machine/asm.h> - -#include "trap.h" - - .text - -ENTRY(trap_handler) - UNEXPECTED_TRAP - diff --git a/i386/util/trap_return.S b/i386/util/trap_return.S deleted file mode 100644 index b122312..0000000 --- a/i386/util/trap_return.S +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Copyright (c) 1995-1994 The University of Utah and - * the Computer Systems Laboratory at the University of Utah (CSL). - * All rights reserved. - * - * Permission to use, copy, modify and distribute this software is hereby - * granted provided that (1) source code retains these copyright, permission, - * and disclaimer notices, and (2) redistributions including binaries - * reproduce the notices in supporting documentation, and (3) all advertising - * materials mentioning features or use of this software display the following - * acknowledgement: ``This product includes software developed by the - * Computer Systems Laboratory at the University of Utah.'' - * - * THE UNIVERSITY OF UTAH AND CSL ALLOW FREE USE OF THIS SOFTWARE IN ITS "AS - * IS" CONDITION. THE UNIVERSITY OF UTAH AND CSL DISCLAIM ANY LIABILITY OF - * ANY KIND FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. - * - * CSL requests users of this software to return to csl-dist@cs.utah.edu any - * improvements that they make and grant CSL redistribution rights. - * - * Author: Bryan Ford, University of Utah CSL - */ - -#include <mach/machine/asm.h> - -#include "trap.h" - - .text - -ENTRY(trap_return) - popl %gs - popl %fs - popl %es - popl %ds - popa - addl $4*2,%esp - iret - - diff --git a/i386/util/tss.c b/i386/util/tss.c deleted file mode 100644 index a9be7bf..0000000 --- a/i386/util/tss.c +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright (c) 1995-1994 The University of Utah and - * the Computer Systems Laboratory at the University of Utah (CSL). - * All rights reserved. - * - * Permission to use, copy, modify and distribute this software is hereby - * granted provided that (1) source code retains these copyright, permission, - * and disclaimer notices, and (2) redistributions including binaries - * reproduce the notices in supporting documentation, and (3) all advertising - * materials mentioning features or use of this software display the following - * acknowledgement: ``This product includes software developed by the - * Computer Systems Laboratory at the University of Utah.'' - * - * THE UNIVERSITY OF UTAH AND CSL ALLOW FREE USE OF THIS SOFTWARE IN ITS "AS - * IS" CONDITION. THE UNIVERSITY OF UTAH AND CSL DISCLAIM ANY LIABILITY OF - * ANY KIND FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. - * - * CSL requests users of this software to return to csl-dist@cs.utah.edu any - * improvements that they make and grant CSL redistribution rights. - * - * Author: Bryan Ford, University of Utah CSL - */ - -#include <mach/machine/tss.h> -#include <mach/machine/proc_reg.h> - -#include "cpu.h" - -#ifdef ENABLE_KERNEL_TSS - -void -cpu_tss_init(struct cpu *cpu) -{ - /* Only initialize once. */ - if (!cpu->tables.tss.ss0) - { - /* Initialize the master TSS. */ - cpu->tables.tss.ss0 = KERNEL_DS; - cpu->tables.tss.esp0 = get_esp(); /* only temporary */ - cpu->tables.tss.io_bit_map_offset = sizeof(cpu->tables.tss); - } -} - -#endif - diff --git a/i386/util/tss.h b/i386/util/tss.h deleted file mode 100644 index 8ecabf5..0000000 --- a/i386/util/tss.h +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Copyright (c) 1995-1994 The University of Utah and - * the Computer Systems Laboratory at the University of Utah (CSL). - * All rights reserved. - * - * Permission to use, copy, modify and distribute this software is hereby - * granted provided that (1) source code retains these copyright, permission, - * and disclaimer notices, and (2) redistributions including binaries - * reproduce the notices in supporting documentation, and (3) all advertising - * materials mentioning features or use of this software display the following - * acknowledgement: ``This product includes software developed by the - * Computer Systems Laboratory at the University of Utah.'' - * - * THE UNIVERSITY OF UTAH AND CSL ALLOW FREE USE OF THIS SOFTWARE IN ITS "AS - * IS" CONDITION. THE UNIVERSITY OF UTAH AND CSL DISCLAIM ANY LIABILITY OF - * ANY KIND FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. - * - * CSL requests users of this software to return to csl-dist@cs.utah.edu any - * improvements that they make and grant CSL redistribution rights. - * - * Author: Bryan Ford, University of Utah CSL - */ -#ifndef _I386_KTSS_ -#define _I386_KTSS_ - -#include <mach/machine/tss.h> - -extern struct i386_tss ktss; - -#endif _I386_KTSS_ diff --git a/i386/util/tss_dump.c b/i386/util/tss_dump.c deleted file mode 100644 index 037774e..0000000 --- a/i386/util/tss_dump.c +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright (c) 1994 The University of Utah and - * the Center for Software Science (CSS). All rights reserved. - * - * Permission to use, copy, modify and distribute this software and its - * documentation is hereby granted, provided that both the copyright - * notice and this permission notice appear in all copies of the - * software, derivative works or modified versions, and any portions - * thereof, and that both notices appear in supporting documentation. - * - * THE UNIVERSITY OF UTAH AND CSS ALLOW FREE USE OF THIS SOFTWARE IN ITS "AS - * IS" CONDITION. THE UNIVERSITY OF UTAH AND CSS DISCLAIM ANY LIABILITY OF - * ANY KIND FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. - * - * CSS requests users of this software to return to css-dist@cs.utah.edu any - * improvements that they make and grant CSS redistribution rights. - * - * Author: Bryan Ford, University of Utah CSS - */ - -#include <mach/machine/tss.h> - -void tss_dump(struct i386_tss *tss) -{ - printf("Dump of TSS at %08x:\n", tss); - printf("back_link %04x\n", tss->back_link & 0xffff); - printf("ESP0 %08x SS0 %04x\n", tss->esp0, tss->ss0 & 0xffff); - printf("ESP1 %08x SS1 %04x\n", tss->esp1, tss->ss1 & 0xffff); - printf("ESP2 %08x SS2 %04x\n", tss->esp2, tss->ss2 & 0xffff); - printf("CR3 %08x\n", tss->cr3); - printf("EIP %08x EFLAGS %08x\n", tss->eip, tss->eflags); - printf("EAX %08x EBX %08x ECX %08x EDX %08x\n", - tss->eax, tss->ebx, tss->ecx, tss->edx); - printf("ESI %08x EDI %08x EBP %08x ESP %08x\n", - tss->esi, tss->edi, tss->ebp, tss->esp); - printf("CS %04x SS %04x DS %04x ES %04x FS %04x GS %04x\n", - tss->cs & 0xffff, tss->ss & 0xffff, - tss->ds & 0xffff, tss->es & 0xffff, - tss->fs & 0xffff, tss->gs & 0xffff); - printf("LDT %04x\n", tss->ldt & 0xffff); - printf("trace_trap %04x\n", tss->trace_trap); - printf("IOPB offset %04x\n", tss->io_bit_map_offset); -} - diff --git a/i386/util/vm_param.h b/i386/util/vm_param.h deleted file mode 100644 index c24ed07..0000000 --- a/i386/util/vm_param.h +++ /dev/null @@ -1,89 +0,0 @@ -/* - * Mach Operating System - * Copyright (c) 1991,1990,1989,1988 Carnegie Mellon University - * All Rights Reserved. - * - * Permission to use, copy, modify and distribute this software and its - * documentation is hereby granted, provided that both the copyright - * notice and this permission notice appear in all copies of the - * software, derivative works or modified versions, and any portions - * thereof, and that both notices appear in supporting documentation. - * - * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" - * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR - * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. - * - * Carnegie Mellon requests users of this software to return to - * - * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU - * School of Computer Science - * Carnegie Mellon University - * Pittsburgh PA 15213-3890 - * - * any improvements or extensions that they make and grant Carnegie Mellon - * the rights to redistribute these changes. - */ -/* - * File: vm_param.h - * Author: Avadis Tevanian, Jr. - * Date: 1985 - * - * I386 machine dependent virtual memory parameters. - * Most of the declarations are preceeded by I386_ (or i386_) - * which is OK because only I386 specific code will be using - * them. - */ - -#ifndef _I386_KERNEL_UTIL_VM_PARAM_H_ -#define _I386_KERNEL_UTIL_VM_PARAM_H_ - -#include <mach/vm_param.h> - - -/* This variable is expected always to contain - the kernel virtual address at which physical memory is mapped. - It may change as paging is turned on or off. */ -extern vm_offset_t phys_mem_va; - - -/* Calculate a kernel virtual address from a physical address. */ -#define phystokv(pa) ((vm_offset_t)(pa) + phys_mem_va) - -/* Same, but in reverse. - This only works for the region of kernel virtual addresses - that directly map physical addresses. */ -#define kvtophys(va) ((vm_offset_t)(va) - phys_mem_va) - - -/* This variable contains the kernel virtual address - corresponding to linear address 0. - In the absence of paging, - linear addresses are always the same as physical addresses. */ -#ifndef linear_base_va -#define linear_base_va phys_mem_va -#endif - -/* Convert between linear and kernel virtual addresses. */ -#define lintokv(la) ((vm_offset_t)(la) + linear_base_va) -#define kvtolin(va) ((vm_offset_t)(va) - linear_base_va) - - -/* This variable keeps track of where in physical memory - our boot image was loaded. - It holds the physical address - corresponding to the boot image's virtual address 0. - When paging is disabled, this is simply -phys_mem_va. - However, when paging is enabled, - phys_mem_va points to the place physical memory is mapped into exec space, - and has no relationship to where in physical memory the boot image is. - Thus, this variable always contains the location of the boot image - whether or not paging is enabled. */ -extern vm_offset_t boot_image_pa; - -/* Code segment we originally had when we started in real mode. - Always equal to boot_image_pa >> 4. */ -extern unsigned short real_cs; - - - -#endif /* _I386_KERNEL_UTIL_VM_PARAM_H_ */ |