diff options
author | Miod Vallat <miod@cvs.openbsd.org> | 2004-04-26 12:34:06 +0000 |
---|---|---|
committer | Miod Vallat <miod@cvs.openbsd.org> | 2004-04-26 12:34:06 +0000 |
commit | aa994f703c162d95d4deb49c03c3a1db2d112bfe (patch) | |
tree | 84b0a710f435f1e25b7250a36ba58938d79a9b9e /sys/arch/luna88k | |
parent | cdbfc97159f36439e647d02962c2945d39ca1576 (diff) |
Start factorizing luna88k and mvme88k common parts.
For now, include files only.
Diffstat (limited to 'sys/arch/luna88k')
38 files changed, 115 insertions, 3157 deletions
diff --git a/sys/arch/luna88k/conf/GENERIC b/sys/arch/luna88k/conf/GENERIC index 97100bc3e9f..6be78a4d132 100644 --- a/sys/arch/luna88k/conf/GENERIC +++ b/sys/arch/luna88k/conf/GENERIC @@ -1,6 +1,6 @@ -# $OpenBSD: GENERIC,v 1.1 2004/04/21 15:23:44 aoyama Exp $ +# $OpenBSD: GENERIC,v 1.2 2004/04/26 12:34:02 miod Exp $ -machine luna88k +machine luna88k m88k include "../../../conf/GENERIC" diff --git a/sys/arch/luna88k/conf/RAMDISK b/sys/arch/luna88k/conf/RAMDISK index 2d3639d4a99..d579558fd61 100644 --- a/sys/arch/luna88k/conf/RAMDISK +++ b/sys/arch/luna88k/conf/RAMDISK @@ -1,6 +1,6 @@ -# $OpenBSD: RAMDISK,v 1.1 2004/04/21 18:40:21 miod Exp $ +# $OpenBSD: RAMDISK,v 1.2 2004/04/26 12:34:02 miod Exp $ -machine luna88k +machine luna88k m88k # 4 meg ramdisk option MINIROOTSIZE=4096 diff --git a/sys/arch/luna88k/include/ansi.h b/sys/arch/luna88k/include/ansi.h index f720f0420e4..f8c0b3f0235 100644 --- a/sys/arch/luna88k/include/ansi.h +++ b/sys/arch/luna88k/include/ansi.h @@ -1,83 +1,3 @@ -/* $OpenBSD: ansi.h,v 1.1 2004/04/21 15:23:56 aoyama Exp $ */ -/*- - * Copyright (c) 1990, 1993 - * The Regents of the University of California. All rights reserved. - * - * 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. - * 3. 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: @(#)ansi.h 8.2 (Berkeley) 1/4/94 - */ - -#ifndef __MACHINE_ANSI_H__ -#define __MACHINE_ANSI_H__ - -/* - * Types which are fundamental to the implementation and may appear in - * more than one standard header are defined here. Standard headers - * then use: - * #ifdef _BSD_SIZE_T_ - * typedef _BSD_SIZE_T_ size_t; - * #undef _BSD_SIZE_T_ - * #endif - */ -#define _BSD_CLOCK_T_ unsigned long /* clock() */ -#define _BSD_PTRDIFF_T_ int /* ptr1 - ptr2 */ -#define _BSD_SIZE_T_ unsigned int /* sizeof() */ -#define _BSD_SSIZE_T_ int /* byte count or error */ -#define _BSD_TIME_T_ int /* time() */ -struct __va_list_tag; -#if defined(__GNUC__) && __GNUC__ >= 3 -#define _BSD_VA_LIST_ __builtin_va_list -#else -#define _BSD_VA_LIST_ struct __va_list_tag * /* va_list */ -#endif -#define _BSD_CLOCKID_T_ int -#define _BSD_TIMER_T_ int - -/* - * Runes (wchar_t) is declared to be an ``int'' instead of the more natural - * ``unsigned long'' or ``long''. Two things are happening here. It is not - * unsigned so that EOF (-1) can be naturally assigned to it and used. Also, - * it looks like 10646 will be a 31 bit standard. This means that if your - * ints cannot hold 32 bits, you will be in trouble. The reason an int was - * chosen over a long is that the is*() and to*() routines take ints (says - * ANSI C), but they use _RUNE_T_ instead of int. By changing it here, you - * lose a bit of ANSI conformance, but your programs will still work. - * - * Note that _WCHAR_T_ and _RUNE_T_ must be of the same type. When wchar_t - * and rune_t are typedef'd, _WCHAR_T_ will be undef'd, but _RUNE_T remains - * defined for ctype.h. - */ -#define _BSD_WCHAR_T_ int /* wchar_t */ -#define _BSD_WINT_T_ int /* wint_t */ -#define _BSD_RUNE_T_ int /* rune_t */ - -/* - * We describe off_t here so its declaration can be visible to - * stdio without pulling in all of <sys/type.h>, thus appeasing ANSI. - */ -#define _BSD_OFF_T_ long long /* file offset */ - -#endif /* __MACHINE_ANSI_H__ */ +/* $OpenBSD */ +/* public domain */ +#include <m88k/ansi.h> diff --git a/sys/arch/luna88k/include/asm.h b/sys/arch/luna88k/include/asm.h index 37e414359c7..d4edacc3046 100644 --- a/sys/arch/luna88k/include/asm.h +++ b/sys/arch/luna88k/include/asm.h @@ -1,310 +1,3 @@ -/* $OpenBSD: asm.h,v 1.1 2004/04/21 15:23:56 aoyama Exp $ */ - -/* - * Mach Operating System - * Copyright (c) 1993-1992 Carnegie Mellon University - * Copyright (c) 1991 OMRON 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. - * - * CARNEGIE MELLON AND OMRON ALLOW FREE USE OF THIS SOFTWARE IN ITS "AS IS" - * CONDITION. CARNEGIE MELLON AND OMRON 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 the - * rights to redistribute these changes. - */ - -#ifndef __MACHINE_M88K_ASM_H__ -#define __MACHINE_M88K_ASM_H__ - -#ifdef __STDC__ -#define _C_LABEL(name) _ ## name -#else -#define _C_LABEL(name) _/**/name -#endif - -#define _ASM_LABEL(name) name - -#define _ENTRY(name) \ - .text; .align 8; .globl name; name: - -#define ENTRY(name) _ENTRY(_C_LABEL(name)) -#define ASENTRY(name) _ENTRY(_ASM_LABEL(name)) - -#define GLOBAL(name) \ - .globl _C_LABEL(name); _C_LABEL(name): - -#define ASGLOBAL(name) \ - .globl _ASM_LABEL(name); _ASM_LABEL(name): - -#define LOCAL(name) \ - _C_LABEL(name): - -#define ASLOCAL(name) \ - _ASM_LABEL(name): - -#define BSS(name, size) \ - .comm _C_LABEL(name), size - -#define ASBSS(name, size) \ - .comm _ASM_LABEL(name), size - -#ifdef __ELF__ -#define WEAK_ALIAS(alias,sym) \ - .weak alias; \ - alias = sym -#else -#ifdef __STDC__ -#define WEAK_ALIAS(alias,sym) \ - .weak _##alias; \ - _##alias = _##sym -#else -#define WEAK_ALIAS(alias,sym) \ - .weak _/**/alias; \ - _/**/alias = _/**/sym -#endif -#endif - -#ifdef _KERNEL - -/* - * Control register symbolic names - */ - -#define PID cr0 -#define PSR cr1 -#define EPSR cr2 -#define SSBR cr3 -#define SXIP cr4 -#define SNIP cr5 -#define SFIP cr6 -#define VBR cr7 -#define DMT0 cr8 -#define DMD0 cr9 -#define DMA0 cr10 -#define DMT1 cr11 -#define DMD1 cr12 -#define DMA1 cr13 -#define DMT2 cr14 -#define DMD2 cr15 -#define DMA2 cr16 -#define SR0 cr17 -#define SR1 cr18 -#define SR2 cr19 -#define SR3 cr20 - -/* MVME197 only */ -#define SRX cr16 -#define EXIP cr4 -#define ENIP cr5 -#define ICMD cr25 -#define ICTL cr26 -#define ISAR cr27 -#define ISAP cr28 -#define IUAP cr29 -#define IIR cr30 -#define IBP cr31 -#define IPPU cr32 -#define IPPL cr33 -#define ISR cr34 -#define ILAR cr35 -#define IPAR cr36 -#define DCMD cr40 -#define DCTL cr41 -#define DSAR cr42 -#define DSAP cr43 -#define DUAP cr44 -#define DIR cr45 -#define DBP cr46 -#define DPPU cr47 -#define DPPL cr48 -#define DSR cr49 -#define DLAR cr50 -#define DPAR cr51 -/* end MVME197 only */ - -#define FPECR fcr0 -#define FPHS1 fcr1 -#define FPLS1 fcr2 -#define FPHS2 fcr3 -#define FPLS2 fcr4 -#define FPPT fcr5 -#define FPRH fcr6 -#define FPRL fcr7 -#define FPIT fcr8 -#define FPSR fcr62 -#define FPCR fcr63 - -/* - * At various times, there is the need to clear the pipeline (i.e. - * synchronize). A "tb1 0, r0, foo" will do that (because a trap - * instruction always synchronizes, and this particular instruction - * will never actually take the trap). - */ -#if 0 -#define FLUSH_PIPELINE tcnd ne0, r0, 0 -#define FLUSH_PIPELINE_STRING "tcnd ne0, r0, 0" -#else -#define FLUSH_PIPELINE tb1 0, r0, 0 -#define FLUSH_PIPELINE_STRING "tb1 0, r0, 0" -#endif -#define NOP or r0, r0, r0 -#define NOP_STRING "or r0, r0, r0" - -#define RTE NOP ; rte - -/* - * Useful in some situations. - */ -#define CALL(NAME, ARG1, ARG2) \ - subu r31, r31, 32; \ - or r2, r0, ARG1; \ - bsr.n NAME; \ - or r3, r0, ARG2; \ - addu r31, r31, 32 - -/* This define is similar to CALL, but accepts a function pointer XXX smurph */ -#define CALLP(NAME, ARG1, ARG2) \ - subu r31, r31, 32; \ - or.u r5, r0, hi16(NAME); \ - ld r4, r5, lo16(NAME); \ - or r2, r0, ARG1; \ - jsr.n r4; \ - or r3, r0, ARG2; \ - addu r31, r31, 32 - -/* - * SR1 - CPU FLAGS REGISTER - * XXX clean this when the trap handler is reworked. Among the things - * I like to see is having the trap frame on the kernel stack instead - * of putting in the PCB. If done properly, we don't need SR1 for doing - * anything special. nivas - * - * SR1 contains flags about the current CPU status. - * - * The bit FLAG_IGNORE_DATA_EXCEPTION indicates that any data exceptions - * should be ignored (well, at least treated in a special way). - * The bit FLAG_ENABLING_FPU indicates that the exception handler is - * in the process of enabling the FPU (so that an exception can - * be serviced). This is needed because enabling the FPU can - * cause other exceptions to happen, and the whole system is - * in a rather precarious state and so special cautions must - * be taken. - */ -#define FLAG_CPU_FIELD_WIDTH 2 /* must be <= 12 */ -#define FLAG_IGNORE_DATA_EXCEPTION 5 -#define FLAG_ENABLING_FPU 7 -#define FLAG_FROM_KERNEL 8 - -/* REGister OFFset into the E.F. (exception frame) */ -#define REG_OFF(reg_num) ((reg_num) * 4) /* (num * sizeof(register_t)) */ -#define GENREG_OFF(num) (REG_OFF(EF_R0 + (num))) /* GENeral REGister OFFset */ - -/* - * Some registers used during the setting up of the new exception frame. - * Don't choose r1, r30, or r31 for any of them. - * - * Also, if any are 'r2' or 'r3', be careful using with CALL above! - */ -#define FLAGS r2 -#define TMP r3 -#define TMP2 r10 -#define TMP3 r11 -#define SAVE_TMP2 st r10, r31, GENREG_OFF(10) -#define SAVE_TMP3 st r11, r31, GENREG_OFF(11) -#define RESTORE_TMP2 ld r10, r31, GENREG_OFF(10) -#define RESTORE_TMP3 ld r11, r31, GENREG_OFF(11) - -/* - * Info about the PSR - */ -#define PSR_SHADOW_FREEZE_BIT 0 -#define PSR_INTERRUPT_DISABLE_BIT 1 -#define PSR_FPU_DISABLE_BIT 3 -#define PSR_BIG_ENDIAN_MODE 30 -#define PSR_SUPERVISOR_MODE_BIT 31 -/* - * mc88110 PSR bit definitions (MVME197) - */ -#define PSR_GRAPHICS_DISABLE_BIT 4 -#define PSR_SERIAL_MODE_BIT 29 -#define PSR_CARRY_BIT 28 -#define PSR_SERIALIZE_BIT 25 - -/* - * Status bits for an SXIP/SNIP/SFIP address. - */ -#define RTE_VALID_BIT 1 -#define RTE_ERROR_BIT 0 - -/* - * Info about DMT0/DMT1/DMT2 - */ -#define DMT_VALID_BIT 0 -#define DMT_WRITE_BIT 1 -#define DMT_LOCK_BIT 12 -#define DMT_DOUBLE_BIT 13 -#define DMT_DAS_BIT 14 -#define DMT_DREG_OFFSET 7 -#define DMT_DREG_WIDTH 5 - -/* - * Bits for eh_debug. - */ -#define DEBUG_INTERRUPT_BIT 0 -#define DEBUG_DATA_BIT 1 -#define DEBUG_INSTRUCTION_BIT 2 -#define DEBUG_MISALIGN_BIT 3 -#define DEBUG_UNIMP_BIT 4 -#define DEBUG_DIVIDE_BIT 5 -#define DEBUG_OF_BIT 6 -#define DEBUG_FPp_BIT 7 -#define DEBUG_FPi_BIT 8 -#define DEBUG_SYSCALL_BIT 9 -#define DEBUG_MACHSYSCALL_BIT 10 -#define DEBUG_UNIMPLEMENTED_BIT 11 -#define DEBUG_PRIVILEGE_BIT 12 -#define DEBUG_BOUNDS_BIT 13 -#define DEBUG_OVERFLOW_BIT 14 -#define DEBUG_ERROR_BIT 15 -#define DEBUG_SIGSYS_BIT 16 -#define DEBUG_SIGTRAP_BIT 17 -#define DEBUG_BREAK_BIT 18 -#define DEBUG_TRACE_BIT 19 -#define DEBUG_KDB_BIT 20 -#define DEBUG_JKDB_BIT 21 -#define DEBUG_BUGCALL_BIT 22 -/* MVME197 Non-Maskable Interrupt */ -#define DEBUG_NON_MASK_BIT 23 -/* MVME197 Data Read Miss (Software Table Searches) */ -#define DEBUG_197_READ_BIT 25 -/* MVME197 Data Write Miss (Software Table Searches) */ -#define DEBUG_197_WRITE_BIT 26 -/* MVME197 Inst ATC Miss (Software Table Searches) */ -#define DEBUG_197_INST_BIT 27 - -#define DEBUG_UNKNOWN_BIT 31 - -/* exception vector marker */ -#define UNKNOWN_HANDLER 0xffffffff -#define END_OF_VECTOR_LIST 0xfffffffe - -#define VECTOR(x) \ - word _C_LABEL(x) - -#endif /* _KERNEL */ - -#endif /* __MACHINE_M88K_ASM_H__ */ +/* $OpenBSD */ +/* public domain */ +#include <m88k/asm.h> diff --git a/sys/arch/luna88k/include/asm_macro.h b/sys/arch/luna88k/include/asm_macro.h index 62e5b2465c9..dc01fb6389e 100644 --- a/sys/arch/luna88k/include/asm_macro.h +++ b/sys/arch/luna88k/include/asm_macro.h @@ -1,123 +1,3 @@ -/* $OpenBSD: asm_macro.h,v 1.1 2004/04/21 15:23:56 aoyama Exp $ */ -/* - * Mach Operating System - * Copyright (c) 1993-1991 Carnegie Mellon University - * Copyright (c) 1991 OMRON 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. - * - * CARNEGIE MELLON AND OMRON ALLOW FREE USE OF THIS SOFTWARE IN ITS "AS IS" - * CONDITION. CARNEGIE MELLON AND OMRON 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 the - * rights to redistribute these changes. - */ - -#ifndef __MACHINE_M88K_ASM_MACRO_H__ -#define __MACHINE_M88K_ASM_MACRO_H__ - -#include <machine/asm.h> -/* - * Various compiler macros used for speed and efficiency. - * Anyone can include. - */ - -/* - * Flushes the data pipeline. - */ -#define flush_pipeline() \ - __asm__ __volatile__ (FLUSH_PIPELINE_STRING) - -/* - * PSR_TYPE is the type of the Process Status Register. - */ -typedef unsigned long m88k_psr_type; - -/* - * disable_interrupts_return_psr() - * - * The INTERRUPT_DISABLE bit is set in the PSR and the *PREVIOUS* - * PSR is returned. Intended to be used with set_psr() [below] as in: - * - * { - * m88k_psr_type psr; - * . - * . - * psr = disable_interrupts_return_psr(); - * . - * SHORT [time-wise] CRITICAL SECTION HERE - * . - * set_psr(psr); - * . - * . - */ -static __inline__ m88k_psr_type disable_interrupts_return_psr(void) -{ - m88k_psr_type temp, oldpsr; - __asm__ __volatile__ ("ldcr %0, cr1" : "=r" (oldpsr)); - __asm__ __volatile__ ("set %1, %0, 1<1>" : "=r" (oldpsr), "=r" (temp)); - __asm__ __volatile__ ("stcr %0, cr1" : "=r" (temp)); - __asm__ __volatile__ (FLUSH_PIPELINE_STRING); - return oldpsr; -} -#define disable_interrupt() (void)disable_interrupts_return_psr() - -/* - * Sets the PSR. See comments above. - */ -static __inline__ void set_psr(m88k_psr_type psr) -{ - __asm__ __volatile__ ("stcr %0, cr1" :: "r" (psr)); - __asm__ __volatile__ (FLUSH_PIPELINE_STRING); -} - -/* - * Gets the PSR. See comments above. - */ -static __inline__ m88k_psr_type get_psr(void) -{ - m88k_psr_type psr; - __asm__ __volatile__ ("ldcr %0, cr1" : "=r" (psr)); - return psr; -} - -/* - * Enables interrupts. - */ -static __inline__ m88k_psr_type enable_interrupts_return_psr(void) -{ - m88k_psr_type temp, oldpsr; /* need a temporary register */ - __asm__ __volatile__ ("ldcr %0, cr1" : "=r" (oldpsr)); - __asm__ __volatile__ ("clr %1, %0, 1<1>" : "=r" (oldpsr), "=r" (temp)); - __asm__ __volatile__ ("stcr %0, cr1" : "=r" (temp)); - __asm__ __volatile__ (FLUSH_PIPELINE_STRING); - return oldpsr; -} -#define enable_interrupt() (void)enable_interrupts_return_psr() - -#define db_enable_interrupt enable_interrupt -#define db_disable_interrupt disable_interrupt - -/* - * Provide access from C code to the assembly instruction ff1 - */ -static __inline__ unsigned ff1(unsigned val) -{ - __asm__ __volatile__ ("ff1 %0, %0" : "=r" (val) : "0" (val)); - return val; -} - -#endif /* __MACHINE_M88K_ASM_MACRO_H__ */ +/* $OpenBSD */ +/* public domain */ +#include <m88k/asm_macro.h> diff --git a/sys/arch/luna88k/include/cdefs.h b/sys/arch/luna88k/include/cdefs.h index 3eb37b6b943..5a6bcc18157 100644 --- a/sys/arch/luna88k/include/cdefs.h +++ b/sys/arch/luna88k/include/cdefs.h @@ -1,40 +1,3 @@ -/* $OpenBSD: cdefs.h,v 1.1 2004/04/21 15:23:56 aoyama Exp $ */ -/* $NetBSD: cdefs.h,v 1.2 1995/03/23 20:10:48 jtc Exp $ */ - -/* - * Written by J.T. Conklin <jtc@wimsey.com> 01/17/95. - * Public domain. - */ - -#ifndef __MACHINE_CDEFS_H__ -#define __MACHINE_CDEFS_H__ - -#ifdef __STDC__ -#define _C_LABEL(name) _ ## name -#else -#define _C_LABEL(name) _/**/name -#endif - -#ifdef __GNUC__ -#ifdef __STDC__ -#define __indr_reference(sym,alias) \ - __asm__(".stabs \"_" #alias "\",11,0,0,0"); \ - __asm__(".stabs \"_" #sym "\",1,0,0,0") -#define __warn_references(sym,msg) \ - __asm__(".stabs \"" msg "\",30,0,0,0"); \ - __asm__(".stabs \"_" #sym "\",1,0,0,0") -#define __weak_alias(alias,sym) \ - __asm__(".weak _" #alias "; _" #alias "= _" __STRING(sym)) -#else -#define __indr_reference(sym,alias) \ - __asm__(".stabs \"_/**/alias\",11,0,0,0"); \ - __asm__(".stabs \"_/**/sym\",1,0,0,0") -#define __warn_references(sym,msg) \ - __asm__(".stabs msg,30,0,0,0"); \ - __asm__(".stabs \"_/**/sym\",1,0,0,0") -#define __weak_alias(alias,sym) \ - __asm__(".weak _/**/alias; _/**/alias = _/**/sym") -#endif -#endif - -#endif /* __MACHINE_CDEFS_H__ */ +/* $OpenBSD */ +/* public domain */ +#include <m88k/cdefs.h> diff --git a/sys/arch/luna88k/include/cmmu.h b/sys/arch/luna88k/include/cmmu.h index 95cc42031a2..9280fe59726 100644 --- a/sys/arch/luna88k/include/cmmu.h +++ b/sys/arch/luna88k/include/cmmu.h @@ -1,103 +1,3 @@ -/* $OpenBSD: cmmu.h,v 1.1 2004/04/21 15:23:56 aoyama Exp $ */ -/* - * Mach Operating System - * Copyright (c) 1993-1992 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 _MACHINE_CMMU_H_ -#define _MACHINE_CMMU_H_ - -#include <machine/mmu.h> - -#ifndef _LOCORE -/* - * Prototypes and stuff for cmmu.c. - */ -extern unsigned cpu_sets[MAX_CPUS]; -extern unsigned master_cpu; -extern int max_cpus, max_cmmus; - -/* - * This lock protects the cmmu SAR and SCR's; other ports - * can be accessed without locking it - * - * May be used from "db_interface.c". - */ -extern struct simplelock cmmu_cpu_lock; - -#define CMMU_LOCK simple_lock(&cmmu_cpu_lock) -#define CMMU_UNLOCK simple_unlock(&cmmu_cpu_lock) - -/* machine dependent cmmu function pointer structure */ -struct cmmu_p { - void (*cmmu_init_func)(void); - void (*setup_board_config_func)(void); - void (*cpu_configuration_print_func)(int); - void (*cmmu_shutdown_now_func)(void); - void (*cmmu_parity_enable_func)(void); - unsigned (*cmmu_cpu_number_func)(void); - void (*cmmu_set_sapr_func)(unsigned, unsigned); - void (*cmmu_set_uapr_func)(unsigned); - void (*cmmu_set_pair_batc_entry_func)(unsigned, unsigned, unsigned); - void (*cmmu_flush_tlb_func)(unsigned, unsigned, vaddr_t, vsize_t); - void (*cmmu_pmap_activate_func)(unsigned, unsigned, - u_int32_t i_batc[BATC_MAX], u_int32_t d_batc[BATC_MAX]); - void (*cmmu_flush_cache_func)(int, paddr_t, psize_t); - void (*cmmu_flush_inst_cache_func)(int, paddr_t, psize_t); - void (*cmmu_flush_data_cache_func)(int, paddr_t, psize_t); - void (*dma_cachectl_func)(vaddr_t, vsize_t, int); - /* DDB only */ - void (*cmmu_dump_config_func)(void); - void (*cmmu_show_translation_func)(unsigned, unsigned, unsigned, int); - /* DEBUG only */ - void (*show_apr_func)(unsigned); -}; - -/* THE pointer! */ -extern struct cmmu_p *cmmu; - -/* The macros... */ -#define cmmu_init (cmmu->cmmu_init_func) -#define setup_board_config (cmmu->setup_board_config_func) -#define cpu_configuration_print(a) (cmmu->cpu_configuration_print_func)(a) -#define cmmu_shutdown_now (cmmu->cmmu_shutdown_now_func) -#define cmmu_parity_enable (cmmu->cmmu_parity_enable_func) -#define cmmu_cpu_number (cmmu->cmmu_cpu_number_func) -#define cmmu_set_sapr(a, b) (cmmu->cmmu_set_sapr_func)(a, b) -#define cmmu_set_uapr(a) (cmmu->cmmu_set_uapr_func)(a) -#define cmmu_set_pair_batc_entry(a, b, c) (cmmu->cmmu_set_pair_batc_entry_func)(a, b, c) -#define cmmu_flush_tlb(a, b, c, d) (cmmu->cmmu_flush_tlb_func)(a, b, c, d) -#define cmmu_pmap_activate(a, b, c, d) (cmmu->cmmu_pmap_activate_func)(a, b, c, d) -#define cmmu_flush_cache(a, b, c) (cmmu->cmmu_flush_cache_func)(a, b, c) -#define cmmu_flush_inst_cache(a, b, c) (cmmu->cmmu_flush_inst_cache_func)(a, b, c) -#define cmmu_flush_data_cache(a, b, c) (cmmu->cmmu_flush_data_cache_func)(a, b, c) -#define dma_cachectl(a, b, c) (cmmu->dma_cachectl_func)(a, b, c) -#define cmmu_dump_config (cmmu->cmmu_dump_config_func) -#define cmmu_show_translation(a, b, c, d) (cmmu->cmmu_show_translation_func)(a, b, c, d) -#define show_apr(ap) (cmmu->show_apr_func)(ap) - -#endif /* _LOCORE */ - -#endif /* _MACHINE_CMMU_H_ */ - +/* $OpenBSD */ +/* public domain */ +#include <m88k/cmmu.h> diff --git a/sys/arch/luna88k/include/cpu.h b/sys/arch/luna88k/include/cpu.h index ef11194964a..e18ead9961e 100644 --- a/sys/arch/luna88k/include/cpu.h +++ b/sys/arch/luna88k/include/cpu.h @@ -1,198 +1,3 @@ -/* $OpenBSD: cpu.h,v 1.1 2004/04/21 15:23:57 aoyama Exp $ */ -/* - * Copyright (c) 1996 Nivas Madhur - * Copyright (c) 1992, 1993 - * The Regents of the University of California. All rights reserved. - * - * This software was developed by the Computer Systems Engineering group - * at Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and - * contributed to Berkeley. - * - * All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Lawrence Berkeley Laboratory. - * - * 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. - * 3. 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. - */ - -#ifndef __MACHINE_CPU_H__ -#define __MACHINE_CPU_H__ - -/* - * CTL_MACHDEP definitinos. - */ -#define CPU_CONSDEV 1 /* dev_t: console terminal device */ -#define CPU_MAXID 2 /* number of valid machdep ids */ - -#define CTL_MACHDEP_NAMES { \ - { 0, 0 }, \ - { "console_device", CTLTYPE_STRUCT }, \ -} - -#ifdef _KERNEL - -#include <machine/psl.h> -#include <machine/pcb.h> -#include <machine/board.h> - -/* - * definitions of cpu-dependent requirements - * referenced in generic code - */ -#define cpu_exec(p) /* nothing */ -#define cpu_wait(p) /* nothing */ -#define cpu_swapout(p) /* nothing */ - -/* - * Arguments to hardclock and gatherstats encapsulate the previous - * machine state in an opaque clockframe. CLKF_INTR is only valid - * if the process is in kernel mode. Clockframe is really trapframe, - * so pointer to clockframe can be safely cast into a pointer to - * trapframe. - */ -struct clockframe { - struct trapframe tf; -}; - -#define CLKF_USERMODE(framep) ((((struct trapframe *)(framep))->tf_epsr & PSR_MODE) == 0) -#define CLKF_PC(framep) (((struct trapframe *)(framep))->tf_sxip & XIP_ADDR) -#define CLKF_INTR(framep) (((struct trapframe *)(framep))->tf_r[31] >= UADDR) - -/* - * Get interrupt glue. - */ -#include <machine/intr.h> - -/* - * Internal IO space (iiomapsize). - * - * Internal IO space is mapped in the kernel from ``OBIO_START'' to - * ``intiolimit'' (defined in locore.s). Since it is always mapped, - * conversion between physical and kernel virtual addresses is easy. - */ - -#ifdef VIRTMAP -/* This will do non 1:1 phys/virt memory mapping in the future - SPM */ -#define ISIIOVA(va) \ - ((char *)(va) >= intiobase && (char *)(va) < intiolimit) -#define IIOV(pa) ((int)(pa)-(int)iiomapbase+(int)intiobase) -#define IIOP(va) ((int)(va)-(int)intiobase+(int)iiomapbase) -#define IIOPOFF(pa) ((int)(pa)-(int)iiomapbase) - -#else - -#define ISIIOVA(va) 1 -#define IIOV(pa) ((pa)) -#define IIOP(va) ((va)) -#define IIOPOFF(pa) ((int)(pa)-(int)OBIO_START) -#endif - -#define SIR_NET 1 -#define SIR_CLOCK 2 - -#define setsoftint(x) (ssir |= (x)) -#define setsoftnet() (ssir |= SIR_NET) -#define setsoftclock() (ssir |= SIR_CLOCK) - -#define siroff(x) (ssir &= ~x) - -extern int ssir; -extern int want_ast; - -/* - * Preempt the current process if in interrupt from user mode, - * or after the current trap/syscall if in system mode. - */ -extern int want_resched; /* resched() was called */ -#define need_resched() (want_resched = 1, want_ast = 1) - -/* - * Give a profiling tick to the current process when the user profiling - * buffer pages are invalid. On the sparc, request an ast to send us - * through trap(), marking the proc as needing a profiling tick. - */ -#define need_proftick(p) ((p)->p_flag |= P_OWEUPC, want_ast = 1) - -/* - * Notify the current process (p) that it has a signal pending, - * process as soon as possible. - */ -#define signotify(p) (want_ast = 1) - -struct intrhand { - int (*ih_fn)(void *); - void *ih_arg; - int ih_ipl; - int ih_wantframe; - struct intrhand *ih_next; -}; - -int intr_establish(int vec, struct intrhand *); - -/* - * return values for intr_establish() - */ - -#define INTR_EST_SUCC 0 -#define INTR_EST_BADVEC 1 -#define INTR_EST_BADIPL 2 - - -/* - * There are 256 possible vectors on a MVME1x7 platform (including - * onboard and VME vectors. Use intr_establish() to register a - * handler for the given vector. vector number is used to index - * into the intr_handlers[] table. - */ -extern struct intrhand *intr_handlers[256]; - -/* - * switchframe - should be double word aligned. - */ -struct switchframe { - u_int sf_pc; /* pc */ - void *sf_proc; /* proc pointer */ -}; - -/* This struct defines the machine dependent pointers */ -struct md_p { - void (*clock_init_func)(void); /* interval clock init function */ - void (*statclock_init_func)(void); /* statistics clock init function */ - void (*delayclock_init_func)(void); /* delay clock init function */ - void (*delay_func)(void); /* delay clock function */ - void (*interrupt_func)(u_int, struct trapframe *); /* interrupt func */ - u_char *volatile intr_mask; - u_char *volatile intr_ipl; - u_char *volatile intr_src; -}; - -extern struct md_p md; - -int badvaddr(vaddr_t, int); -void nmihand(void *); - -#endif /* _KERNEL */ -#endif /* __MACHINE_CPU_H__ */ +/* $OpenBSD */ +/* public domain */ +#include <m88k/cpu.h> diff --git a/sys/arch/luna88k/include/cpu_number.h b/sys/arch/luna88k/include/cpu_number.h index c8d50b3ab6b..6bf70f33803 100644 --- a/sys/arch/luna88k/include/cpu_number.h +++ b/sys/arch/luna88k/include/cpu_number.h @@ -1,47 +1,3 @@ -/* $OpenBSD: cpu_number.h,v 1.1 2004/04/21 15:23:57 aoyama Exp $ */ - -/* - * Mach Operating System - * Copyright (c) 1993-1992 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 _M88K_CPU_NUMBER_ -#define _M88K_CPU_NUMBER_ - -#ifdef _KERNEL -#ifndef _LOCORE -#include <machine/param.h> - -static unsigned cpu_number(void); - -static __inline__ unsigned cpu_number(void) -{ - unsigned cpu; - - __asm__ ("ldcr %0, cr18" : "=r" (cpu)); - return (cpu & 3); -} -#endif /* _LOCORE */ -#endif /* _KERNEL */ -#endif /* _M88K_CPU_NUMBER_ */ +/* $OpenBSD */ +/* public domain */ +#include <m88k/cpu_number.h> diff --git a/sys/arch/luna88k/include/db_machdep.h b/sys/arch/luna88k/include/db_machdep.h index ab6e904a394..ca6e2f2efa9 100644 --- a/sys/arch/luna88k/include/db_machdep.h +++ b/sys/arch/luna88k/include/db_machdep.h @@ -1,167 +1,3 @@ -/* $OpenBSD: db_machdep.h,v 1.1 2004/04/21 15:23:57 aoyama Exp $ */ -/* - * Mach Operating System - * Copyright (c) 1993-1991 Carnegie Mellon University - * Copyright (c) 1991 OMRON 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. - * - * CARNEGIE MELLON AND OMRON ALLOW FREE USE OF THIS SOFTWARE IN ITS "AS IS" - * CONDITION. CARNEGIE MELLON AND OMRON 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 the - * rights to redistribute these changes. - */ - -/* - * Machine-dependent defined for the new kernel debugger - */ - -#ifndef _M88K_DB_MACHDEP_H_ -#define _M88K_DB_MACHDEP_H_ - -/* trap numbers used by ddb */ -#define DDB_ENTRY_BKPT_NO 130 -#define DDB_ENTRY_TRACE_NO 131 -#define DDB_ENTRY_TRAP_NO 132 - -#ifndef _LOCORE - -#include <machine/pcb.h> -#include <machine/trap.h> - -#include <uvm/uvm_param.h> - -/* - * The low two bits of sxip, snip, sfip have valid bits - * in them that need to masked to get the correct addresses - */ -#define PC_REGS(regs) \ - cputyp == CPU_88110 ? ((regs)->exip & ~3) : \ - (((regs)->sxip & 2) ? (regs)->sxip & ~3 : \ - ((regs)->snip & 2 ? (regs)->snip & ~3 : (regs)->sfip & ~3)) - -/* inst_return(ins) - is the instruction a function call return. - * Not mutually exclusive with inst_branch. Should be a jmp r1. */ -#define inst_return(I) (((I)&0xfffffbffU) == 0xf400c001U ? TRUE : FALSE) - -/* - * inst_call - function call predicate: is the instruction a function call. - * Could be either bsr or jsr - */ -#define inst_call(I) ({ unsigned i = (I); \ - ((((i) & 0xf8000000U) == 0xc8000000U || /*bsr*/ \ - ((i) & 0xfffffbe0U) == 0xf400c800U) /*jsr*/ \ - ? TRUE : FALSE) \ -;}) - -#ifdef DDB - -/* - * This is a hack so that mc88100 can use software single step - * and mc88110 can use the wonderful hardware single step - * feature. XXX smurph - */ -#define INTERNAL_SSTEP /* Use local Single Step routines */ - -#define BKPT_SIZE (4) /* number of bytes in bkpt inst. */ -#define BKPT_INST (0xF000D000 | DDB_ENTRY_BKPT_NO) /* tb0, 0,r0, vector 130 */ -#define BKPT_SET(inst) (BKPT_INST) - -/* Entry trap for the debugger - used for inline assembly breaks*/ -#define ENTRY_ASM "tb0 0, r0, 132" - -typedef vaddr_t db_addr_t; -typedef long db_expr_t; -typedef struct reg db_regs_t; -extern db_regs_t ddb_regs; /* register state */ -#define DDB_REGS (&ddb_regs) - -extern int db_noisy; - -unsigned inst_load(unsigned); -unsigned inst_store(unsigned); -boolean_t inst_branch(unsigned); -db_addr_t next_instr_address(db_addr_t, unsigned); -db_addr_t branch_taken(u_int, db_addr_t, db_expr_t (*)(db_regs_t *, int), - db_regs_t *); -int ddb_break_trap(int type, db_regs_t *eframe); -int ddb_entry_trap(int level, db_regs_t *eframe); - -/* breakpoint/watchpoint foo */ -#define IS_BREAKPOINT_TRAP(type,code) ((type)==T_KDB_BREAK) -#if defined(T_WATCHPOINT) -#define IS_WATCHPOINT_TRAP(type,code) ((type)==T_KDB_WATCH) -#else -#define IS_WATCHPOINT_TRAP(type,code) 0 -#endif /* T_WATCHPOINT */ - -/* we don't want coff support */ -#define DB_NO_COFF 1 - -#ifdef INTERNAL_SSTEP -db_expr_t getreg_val(db_regs_t *, int); -void db_set_single_step(db_regs_t *); -void db_clear_single_step(db_regs_t *); -#else -/* need software single step */ -#define SOFTWARE_SSTEP 1 /* we need this for mc88100 */ -#endif - -/* - * Debugger can get to any address space - */ - -#define DB_ACCESS_LEVEL DB_ACCESS_ANY - -#define DB_VALID_KERN_ADDR(addr) (!badaddr((void *)(addr), 1)) -#define DB_VALID_ADDRESS(addr,user) \ - (user ? db_check_user_addr(addr) : DB_VALID_KERN_ADDR(addr)) - -/* instruction type checking - others are implemented in db_sstep.c */ - -#define inst_trap_return(ins) ((ins) == 0xf400fc00U) - -/* don't need to load symbols */ -#define DB_SYMBOLS_PRELOADED 1 - -/* machine specific commands have been added to ddb */ -#define DB_MACHINE_COMMANDS 1 - -/* - * This routine should return true for instructions that result in unconditonal - * transfers of the flow of control. (Unconditional Jumps, subroutine calls, - * subroutine returns, etc). - * - * Trap and return from trap should not be listed here. - */ -#define inst_unconditional_flow_transfer(I) ({ unsigned i = (I); \ - ((((i) & 0xf0000000U) == 0xc0000000U || /* br, bsr */ \ - ((i) & 0xfffff3e0U) == 0xf400c000U) /* jmp, jsr */ \ - ? TRUE: FALSE) \ -;}) - -/* Return true if the instruction has a delay slot. */ -#define db_branch_is_delayed(I) inst_delayed(I) - -#define db_printf_enter db_printing - -int m88k_print_instruction(unsigned iadr, long inst); - -#endif /* DDB */ -#endif /* _LOCORE */ - -#endif /* _M88K_DB_MACHDEP_H_ */ +/* $OpenBSD */ +/* public domain */ +#include <m88k/db_machdep.h> diff --git a/sys/arch/luna88k/include/endian.h b/sys/arch/luna88k/include/endian.h index a42313b07e3..a9cc0d557cb 100644 --- a/sys/arch/luna88k/include/endian.h +++ b/sys/arch/luna88k/include/endian.h @@ -1,36 +1,3 @@ -/* $OpenBSD: endian.h,v 1.1 2004/04/21 15:23:57 aoyama Exp $ */ - -/*- - * Copyright (c) 1997 Niklas Hallqvist. All rights reserved. - * - * 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. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. - */ - -#ifndef __MVME88K_ENDIAN_H__ -#define __MVME88K_ENDIAN_H__ - -#define BYTE_ORDER BIG_ENDIAN -#include <sys/endian.h> - -#define __STRICT_ALIGNMENT - -#endif /* __MVME88K_ENDIAN_H__ */ - +/* $OpenBSD */ +/* public domain */ +#include <m88k/endian.h> diff --git a/sys/arch/luna88k/include/exec.h b/sys/arch/luna88k/include/exec.h index 0ad476ff297..2557ef8b770 100644 --- a/sys/arch/luna88k/include/exec.h +++ b/sys/arch/luna88k/include/exec.h @@ -1,32 +1,3 @@ -/* $OpenBSD: exec.h,v 1.1 2004/04/21 15:23:57 aoyama Exp $ */ -#ifndef __MACHINE_EXEC_H__ -#define __MACHINE_EXEC_H__ - -#define __LDPGSZ 4096 - -struct relocation_info_m88k { - unsigned int r_address; /* offset in text or data segment */ - unsigned int r_symbolnum : 24, /* ordinal number of add symbol */ - r_extern : 1, /* 1 if need to add symbol to value */ - r_baserel : 1, - r_pcrel : 1, - r_jmptable : 1, - r_type : 4; - - int r_addend; -}; -#define relocation_info relocation_info_m88k - -#define ARCH_ELFSIZE 32 - -#define ELF_TARG_CLASS ELFCLASS32 -#define ELF_TARG_DATA ELFDATA2MSB -#define ELF_TARG_MACH EM_88K - -#define _NLIST_DO_AOUT -#define _NLIST_DO_ELF - -#define _KERN_DO_AOUT -#define _KERN_DO_ELF - -#endif /* __MACHINE_EXEC_H__ */ +/* $OpenBSD */ +/* public domain */ +#include <m88k/exec.h> diff --git a/sys/arch/luna88k/include/float.h b/sys/arch/luna88k/include/float.h index 8abc3de9f17..2f8d235eee7 100644 --- a/sys/arch/luna88k/include/float.h +++ b/sys/arch/luna88k/include/float.h @@ -1,76 +1,3 @@ -/* $OpenBSD: float.h,v 1.1 2004/04/21 15:23:57 aoyama Exp $ */ - -/* - * Copyright (c) 1989 Regents of the University of California. - * All rights reserved. - * - * 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. - * 3. 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. - * - * @(#)float.h 7.1 (Berkeley) 5/8/90 - */ - -#ifndef __M88K_FLOAT_H__ -#define __M88K_FLOAT_H__ - -#include <sys/cdefs.h> - -__BEGIN_DECLS -int __flt_rounds(void); -__END_DECLS - -#define FLT_RADIX 2 /* b */ -#define FLT_ROUNDS __flt_rounds() - -#define FLT_MANT_DIG 24 /* p */ -#define FLT_EPSILON 1.19209290E-07F /* b**(1-p) */ -#define FLT_DIG 6 /* floor((p-1)*log10(b))+(b == 10) */ -#define FLT_MIN_EXP -125 /* emin */ -#define FLT_MIN 1.17549435E-38F /* b**(emin-1) */ -#define FLT_MIN_10_EXP -37 /* ceil(log10(b**(emin-1))) */ -#define FLT_MAX_EXP 128 /* emax */ -#define FLT_MAX 3.40282347E+38F /* (1-b**(-p))*b**emax */ -#define FLT_MAX_10_EXP 38 /* floor(log10((1-b**(-p))*b**emax)) */ - -#define DBL_MANT_DIG 53 -#define DBL_EPSILON 2.2204460492503131E-16 -#define DBL_DIG 15 -#define DBL_MIN_EXP -1021 -#define DBL_MIN 2.2250738585072014E-308 -#define DBL_MIN_10_EXP -307 -#define DBL_MAX_EXP 1024 -#define DBL_MAX 1.7976931348623157E+308 -#define DBL_MAX_10_EXP 308 - -#define LDBL_MANT_DIG DBL_MANT_DIG -#define LDBL_EPSILON DBL_EPSILON -#define LDBL_DIG DBL_DIG -#define LDBL_MIN_EXP DBL_MIN_EXP -#define LDBL_MIN DBL_MIN -#define LDBL_MIN_10_EXP DBL_MIN_10_EXP -#define LDBL_MAX_EXP DBL_MAX_EXP -#define LDBL_MAX DBL_MAX -#define LDBL_MAX_10_EXP DBL_MAX_10_EXP - -#endif /* __M88K_FLOAT_H__ */ +/* $OpenBSD */ +/* public domain */ +#include <m88k/float.h> diff --git a/sys/arch/luna88k/include/frame.h b/sys/arch/luna88k/include/frame.h index ab28bb5cf49..9207e230829 100644 --- a/sys/arch/luna88k/include/frame.h +++ b/sys/arch/luna88k/include/frame.h @@ -1,49 +1,3 @@ -/* $OpenBSD: frame.h,v 1.1 2004/04/21 15:23:57 aoyama Exp $ */ -/* $NetBSD: frame.h,v 1.15 1997/05/03 12:49:05 mycroft Exp $ */ - -/* - * Copyright (c) 1988 University of Utah. - * Copyright (c) 1982, 1990, 1993 - * The Regents of the University of California. All rights reserved. - * - * This code is derived from software contributed to Berkeley by - * the Systems Programming Group of the University of Utah Computer - * Science Department. - * - * 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. - * 3. 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: Utah $Hdr: frame.h 1.8 92/12/20$ - * - * @(#)frame.h 8.1 (Berkeley) 6/10/93 - */ - -#ifndef _M88K_FRAME_H_ -#define _M88K_FRAME_H_ - -struct frame { - struct trapframe __packed F_t; -}; - -#endif /* _M88K_FRAME_H_ */ +/* $OpenBSD */ +/* public domain */ +#include <m88k/frame.h> diff --git a/sys/arch/luna88k/include/ieee.h b/sys/arch/luna88k/include/ieee.h index 2d769d2a8a3..3b2ed26bc91 100644 --- a/sys/arch/luna88k/include/ieee.h +++ b/sys/arch/luna88k/include/ieee.h @@ -1,142 +1,3 @@ -/* $OpenBSD: ieee.h,v 1.1 2004/04/21 15:23:57 aoyama Exp $ */ -/* - * Copyright (c) 1992, 1993 - * The Regents of the University of California. All rights reserved. - * - * This software was developed by the Computer Systems Engineering group - * at Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and - * contributed to Berkeley. - * - * All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Lawrence Berkeley Laboratory. - * - * 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. - * 3. 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. - * - * @(#)ieee.h 8.1 (Berkeley) 6/11/93 - */ -/* - * Stolen from sparc port - */ - -/* - * ieee.h defines the machine-dependent layout of the machine's IEEE - * floating point. It does *not* define (yet?) any of the rounding - * mode bits, exceptions, and so forth. - */ - -/* - * Define the number of bits in each fraction and exponent. - * - * k k+1 - * Note that 1.0 x 2 == 0.1 x 2 and that denorms are represented - * - * (-exp_bias+1) - * as fractions that look like 0.fffff x 2 . This means that - * - * -126 - * the number 0.10000 x 2 , for instance, is the same as the normalized - * - * -127 -128 - * float 1.0 x 2 . Thus, to represent 2 , we need one leading zero - * - * -129 - * in the fraction; to represent 2 , we need two, and so on. This - * - * (-exp_bias-fracbits+1) - * implies that the smallest denormalized number is 2 - * - * for whichever format we are talking about: for single precision, for - * - * -126 -149 - * instance, we get .00000000000000000000001 x 2 , or 1.0 x 2 , and - * - * -149 == -127 - 23 + 1. - */ -#ifndef __MACHINE_IEEE_H__ -#define __MACHINE_IEEE_H__ -#define SNG_EXPBITS 8 -#define SNG_FRACBITS 23 - -#define DBL_EXPBITS 11 -#define DBL_FRACBITS 52 - -#ifdef notyet -#define E80_EXPBITS 15 -#define E80_FRACBITS 64 -#endif - -#define EXT_EXPBITS 15 -#define EXT_FRACBITS 112 - -struct ieee_single { - u_int sng_sign:1; - u_int sng_exp:8; - u_int sng_frac:23; -}; - -struct ieee_double { - u_int dbl_sign:1; - u_int dbl_exp:11; - u_int dbl_frach:20; - u_int dbl_fracl; -}; - -struct ieee_ext { - u_int ext_sign:1; - u_int ext_exp:15; - u_int ext_frach:16; - u_int ext_frachm; - u_int ext_fraclm; - u_int ext_fracl; -}; - -/* - * Floats whose exponent is in [1..INFNAN) (of whatever type) are - * `normal'. Floats whose exponent is INFNAN are either Inf or NaN. - * Floats whose exponent is zero are either zero (iff all fraction - * bits are zero) or subnormal values. - * - * A NaN is a `signalling NaN' if its QUIETNAN bit is clear in its - * high fraction; if the bit is set, it is a `quiet NaN'. - */ -#define SNG_EXP_INFNAN 255 -#define DBL_EXP_INFNAN 2047 -#define EXT_EXP_INFNAN 32767 - -#if 0 -#define SNG_QUIETNAN (1 << 22) -#define DBL_QUIETNAN (1 << 19) -#define EXT_QUIETNAN (1 << 15) -#endif - -/* - * Exponent biases. - */ -#define SNG_EXP_BIAS 127 -#define DBL_EXP_BIAS 1023 -#define EXT_EXP_BIAS 16383 -#endif /* __MACHINE_IEEE_H__ */ +/* $OpenBSD */ +/* public domain */ +#include <m88k/ieee.h> diff --git a/sys/arch/luna88k/include/ieeefp.h b/sys/arch/luna88k/include/ieeefp.h index f09891419a0..04119877f57 100644 --- a/sys/arch/luna88k/include/ieeefp.h +++ b/sys/arch/luna88k/include/ieeefp.h @@ -1,56 +1,3 @@ -/* $OpenBSD: ieeefp.h,v 1.1 2004/04/21 15:23:57 aoyama Exp $ */ -/* - * Copyright (c) 1996 Nivas Madhur - * All rights reserved. - * - * 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. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by Nivas Madhur. - * 4. The name of the author may not be used to endorse or promote products - * derived from this software without specific prior written permission - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. - * - */ -/* - * Values for fp_except are selected to match the bits in FPSR (see - * m88100 user's manual page 6-33). This file is derived from the - * definitions in the ABI/88k manual and sparc port. - * -- Nivas - */ - -#ifndef _M88K_IEEEFP_H_ -#define _M88K_IEEEFP_H_ - -typedef int fp_except; -#define FP_X_INV 0x10 /* invalid operation exception */ -#define FP_X_DZ 0x08 /* divide-by-zero exception */ -#define FP_X_UFL 0x04 /* underflow exception */ -#define FP_X_OFL 0x02 /* overflow exception */ -#define FP_X_IMP 0x01 /* imprecise (loss of precision) */ - -typedef enum { - FP_RN=0, /* round to nearest representable number */ - FP_RZ=1, /* round to zero (truncate) */ - FP_RM=2, /* round toward negative infinity */ - FP_RP=3 /* round toward positive infinity */ -} fp_rnd; - -#endif /* _M88K_IEEEFP_H_ */ +/* $OpenBSD */ +/* public domain */ +#include <m88k/ieeefp.h> diff --git a/sys/arch/luna88k/include/internal_types.h b/sys/arch/luna88k/include/internal_types.h index c54d7069649..63c9652c8de 100644 --- a/sys/arch/luna88k/include/internal_types.h +++ b/sys/arch/luna88k/include/internal_types.h @@ -1,6 +1,3 @@ -/* $OpenBSD: internal_types.h,v 1.1 2004/04/21 15:23:57 aoyama Exp $ */ -/* Public domain */ -#ifndef _MACHINE_INTERNAL_TYPES_H_ -#define _MACHINE_INTERNAL_TYPES_H_ - -#endif +/* $OpenBSD */ +/* public domain */ +#include <m88k/internal_types.h> diff --git a/sys/arch/luna88k/include/intr.h b/sys/arch/luna88k/include/intr.h index b7855664edc..b76e6cfff65 100644 --- a/sys/arch/luna88k/include/intr.h +++ b/sys/arch/luna88k/include/intr.h @@ -1,4 +1,4 @@ -/* $OpenBSD: intr.h,v 1.1 2004/04/21 15:23:57 aoyama Exp $ */ +/* $OpenBSD: intr.h,v 1.2 2004/04/26 12:34:05 miod Exp $ */ /* * Copyright (C) 2000 Steve Murphree, Jr. * All rights reserved. @@ -28,6 +28,7 @@ #ifndef _LUNA88K_INTR_H_ #define _LUNA88K_INTR_H_ + /* * INTERRUPT STAT levels. for 'systat vmstat' * intrcnt and friends are defined in locore.S @@ -77,56 +78,6 @@ extern int intrcnt[M88K_NIRQ]; #define IPL_NMI 7 #define IPL_ABORT 7 -#ifdef _KERNEL -#ifndef _LOCORE -unsigned setipl(unsigned level); -unsigned raiseipl(unsigned level); -int spl0(void); - -/* needs major cleanup - XXX nivas */ - -/* SPL asserts */ -#ifdef DIAGNOSTIC -/* - * Although this function is implemented in MI code, it must be in this MD - * header because we don't want this header to include MI includes. - */ -void splassert_fail(int, int, const char *); -extern int splassert_ctl; -void splassert_check(int, const char *); -#define splassert(__wantipl) do { \ - if (__predict_false(splassert_ctl > 0)) { \ - splassert_check(__wantipl, __func__); \ - } \ -} while (0) -#else -#define splassert(wantipl) do { /* nothing */ } while (0) -#endif - -#endif /* _LOCORE */ - -#define spl1() setipl(1) -#define spl2() setipl(2) -#define spl3() setipl(3) -#define spl4() setipl(4) -#define spl5() setipl(5) -#define spl6() setipl(6) -#define spl7() setipl(7) - -#define splnone spl0 -#define spllowersoftclock() setipl(IPL_SOFTCLOCK) -#define splsoftclock() setipl(IPL_SOFTCLOCK) -#define splsoftnet() setipl(IPL_SOFTNET) -#define splbio() raiseipl(IPL_BIO) -#define splnet() raiseipl(IPL_NET) -#define spltty() raiseipl(IPL_TTY) -#define splclock() raiseipl(IPL_CLOCK) -#define splstatclock() raiseipl(IPL_STATCLOCK) -#define splimp() raiseipl(IPL_IMP) -#define splvm() raiseipl(IPL_VM) -#define splhigh() setipl(IPL_HIGH) - -#define splx(x) ((x) ? setipl((x)) : spl0()) +#include <m88k/intr.h> -#endif /* _KERNEL */ #endif /* _LUNA88K_INTR_H_ */ diff --git a/sys/arch/luna88k/include/kcore.h b/sys/arch/luna88k/include/kcore.h index c2c6af6c2c6..3621c0f2fb8 100644 --- a/sys/arch/luna88k/include/kcore.h +++ b/sys/arch/luna88k/include/kcore.h @@ -1,39 +1,3 @@ -/* $OpenBSD: kcore.h,v 1.1 2004/04/21 15:23:57 aoyama Exp $ */ - -/* - * Copyright (c) 2001 Miodrag Vallat. - * All rights reserved. - * - * 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. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. - */ - -#ifndef _MVME88K_KCORE_H_ -#define _MVME88K_KCORE_H_ - -/* Keep this define consistent with VM_PHYSSEG_MAX in <machine/vmparam.h> */ -#define NPHYS_RAM_SEGS 1 - -typedef struct cpu_kcore_hdr { - int cputype; /* board type: 187, 188, 197 */ - phys_ram_seg_t ram_segs[NPHYS_RAM_SEGS]; -} cpu_kcore_hdr_t; - -#endif /* _MVME88K_KCORE_H_ */ +/* $OpenBSD */ +/* public domain */ +#include <m88k/kcore.h> diff --git a/sys/arch/luna88k/include/limits.h b/sys/arch/luna88k/include/limits.h index 1ad4a47fc77..650aa59adf1 100644 --- a/sys/arch/luna88k/include/limits.h +++ b/sys/arch/luna88k/include/limits.h @@ -1,53 +1,3 @@ -/* $OpenBSD: limits.h,v 1.1 2004/04/21 15:23:57 aoyama Exp $ */ -/* - * Copyright (c) 1988, 1993 - * The Regents of the University of California. All rights reserved. - * - * 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. - * 3. 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: @(#)limits.h 8.3 (Berkeley) 1/4/94 - */ - -#ifndef _MACHINE_LIMITS_H_ -#define _MACHINE_LIMITS_H_ - -#define MB_LEN_MAX 6 /* Allow 31 bit UTF2 */ - -#if !defined(_ANSI_SOURCE) -#define SIZE_MAX UINT_MAX /* max value for a size_t */ -#define SSIZE_MAX INT_MAX /* max value for a ssize_t */ - -#if !defined(_POSIX_SOURCE) -#define SIZE_T_MAX UINT_MAX /* max value for a size_t */ - -/* GCC requires that quad constants be written as expressions. */ -#define UQUAD_MAX ((u_quad_t)0-1) /* max value for a uquad_t */ - /* max value for a quad_t */ -#define QUAD_MAX ((quad_t)(UQUAD_MAX >> 1)) -#define QUAD_MIN (-QUAD_MAX-1) /* min value for a quad_t */ -#endif /* !_POSIX_SOURCE */ -#endif /* !_ANSI_SOURCE */ - -#endif /* _MACHINE_LIMITS_H_ */ +/* $OpenBSD */ +/* public domain */ +#include <m88k/limits.h> diff --git a/sys/arch/luna88k/include/m88100.h b/sys/arch/luna88k/include/m88100.h index 9609924e648..16f47ff2328 100644 --- a/sys/arch/luna88k/include/m88100.h +++ b/sys/arch/luna88k/include/m88100.h @@ -1,59 +1,3 @@ -/* $OpenBSD: m88100.h,v 1.1 2004/04/21 15:23:57 aoyama Exp $ */ -/* - * Mach Operating System - * Copyright (c) 1993-1992 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 __MACHINE_M88100_H__ -#define __MACHINE_M88100_H__ - -/* - * 88100 RISC definitions - */ - -/* - * DMT0, DMT1, DMT2 layout - * - * The DMT_SKIP bit is never set by the cpu. It is used to mark 'known' - * transactions so that they don't get processed a second time by - * data_access_emulation(). - */ -#define DMT_SKIP 0x00010000 /* skip this dmt */ -#define DMT_BO 0x00008000 /* Byte-Ordering */ -#define DMT_DAS 0x00004000 /* Data Access Space */ -#define DMT_DOUB1 0x00002000 /* Double Word */ -#define DMT_LOCKBAR 0x00001000 /* Bud Lock */ -#define DMT_DREG 0x00000F80 /* Destination Registers 5bits */ -#define DMT_SIGNED 0x00000040 /* Sign-Extended Bit */ -#define DMT_EN 0x0000003C /* Byte Enable Bit */ -#define DMT_WRITE 0x00000002 /* Read/Write Transaction Bit */ -#define DMT_VALID 0x00000001 /* Valid Transaction Bit */ - -#define DMT_DREGSHIFT 7 -#define DMT_ENSHIFT 2 - -#define DMT_DREGBITS(x) (((x) & DMT_DREG) >> DMT_DREGSHIFT) -#define DMT_ENBITS(x) (((x) & DMT_EN) >> DMT_ENSHIFT) - -#endif /* __MACHINE_M88100_H__ */ +/* $OpenBSD */ +/* public domain */ +#include <m88k/m88100.h> diff --git a/sys/arch/luna88k/include/m8820x.h b/sys/arch/luna88k/include/m8820x.h index 94454ec7b81..074a1e7cd18 100644 --- a/sys/arch/luna88k/include/m8820x.h +++ b/sys/arch/luna88k/include/m8820x.h @@ -1,169 +1,3 @@ -/* $OpenBSD: m8820x.h,v 1.1 2004/04/21 15:23:57 aoyama Exp $ */ -/* - * Copyright (c) 2004, Miodrag Vallat. - * - * 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. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. - */ -/* - * Mach Operating System - * Copyright (c) 1993-1992 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 __MACHINE_M8820X_H__ -#define __MACHINE_M8820X_H__ - -/* - * 8820x CMMU definitions - */ - -/* CMMU registers */ -#define CMMU_IDR (0x000 / 4) /* CMMU id register */ -#define CMMU_SCR (0x004 / 4) /* system command register */ -#define CMMU_SSR (0x008 / 4) /* system status register */ -#define CMMU_SAR (0x00c / 4) /* system address register */ -#define CMMU_SCTR (0x104 / 4) /* system control register */ -#define CMMU_PFSR (0x108 / 4) /* P bus fault status register */ -#define CMMU_PFAR (0x10c / 4) /* P bus fault address register */ -#define CMMU_SAPR (0x200 / 4) /* supervisor area pointer register */ -#define CMMU_UAPR (0x204 / 4) /* user area pointer register */ -#define CMMU_BWP0 (0x400 / 4) /* block ATC writer port 0 */ -#define CMMU_BWP1 (0x404 / 4) /* block ATC writer port 1 */ -#define CMMU_BWP2 (0x408 / 4) /* block ATC writer port 2 */ -#define CMMU_BWP3 (0x40c / 4) /* block ATC writer port 3 */ -#define CMMU_BWP4 (0x410 / 4) /* block ATC writer port 4 */ -#define CMMU_BWP5 (0x414 / 4) /* block ATC writer port 5 */ -#define CMMU_BWP6 (0x418 / 4) /* block ATC writer port 6 */ -#define CMMU_BWP7 (0x41c / 4) /* block ATC writer port 7 */ -#define CMMU_BWP(n) (CMMU_BWP0 + (n)) -#define CMMU_CDP0 (0x800 / 4) /* cache data port 0 */ -#define CMMU_CDP1 (0x804 / 4) /* cache data port 1 */ -#define CMMU_CDP2 (0x808 / 4) /* cache data port 2 */ -#define CMMU_CDP3 (0x80c / 4) /* cache data port 3 */ -#define CMMU_CTP0 (0x840 / 4) /* cache tag port 0 */ -#define CMMU_CTP1 (0x844 / 4) /* cache tag port 1 */ -#define CMMU_CTP2 (0x848 / 4) /* cache tag port 2 */ -#define CMMU_CTP3 (0x84c / 4) /* cache tag port 3 */ -#define CMMU_CSSP0 (0x880 / 4) /* cache set status register */ -#define CMMU_CSSP(n) (CMMU_CSSP0 + (n)) -/* the following only exist on 88204 */ -#define CMMU_CSSP1 (0x890 / 4) /* cache set status register */ -#define CMMU_CSSP2 (0x8a0 / 4) /* cache set status register */ -#define CMMU_CSSP3 (0x8b0 / 4) /* cache set status register */ - -/* system commands */ -#define CMMU_FLUSH_CACHE_INV_LINE 0x14 /* data cache invalidate */ -#define CMMU_FLUSH_CACHE_INV_PAGE 0x15 -#define CMMU_FLUSH_CACHE_INV_SEGMENT 0x16 -#define CMMU_FLUSH_CACHE_INV_ALL 0x17 -#define CMMU_FLUSH_CACHE_CB_LINE 0x18 /* data cache copyback */ -#define CMMU_FLUSH_CACHE_CB_PAGE 0x19 -#define CMMU_FLUSH_CACHE_CB_SEGMENT 0x1a -#define CMMU_FLUSH_CACHE_CB_ALL 0x1b -#define CMMU_FLUSH_CACHE_CBI_LINE 0x1c /* copyback and invalidate */ -#define CMMU_FLUSH_CACHE_CBI_PAGE 0x1d -#define CMMU_FLUSH_CACHE_CBI_SEGMENT 0x1e -#define CMMU_FLUSH_CACHE_CBI_ALL 0x1f -#define CMMU_PROBE_USER 0x20 /* probe user address */ -#define CMMU_PROBE_SUPER 0x24 /* probe supervisor address */ -#define CMMU_FLUSH_USER_LINE 0x30 /* flush PATC */ -#define CMMU_FLUSH_USER_PAGE 0x31 -#define CMMU_FLUSH_USER_SEGMENT 0x32 -#define CMMU_FLUSH_USER_ALL 0x33 -#define CMMU_FLUSH_SUPER_LINE 0x34 -#define CMMU_FLUSH_SUPER_PAGE 0x35 -#define CMMU_FLUSH_SUPER_SEGMENT 0x36 -#define CMMU_FLUSH_SUPER_ALL 0x37 - -/* system control values */ -#define CMMU_SCTR_PE 0x00008000 /* parity enable */ -#define CMMU_SCTR_SE 0x00004000 /* snoop enable */ -#define CMMU_SCTR_PR 0x00002000 /* priority arbitration */ - -/* P bus fault status */ -#define CMMU_PFSR_FAULT(pfsr) (((pfsr) >> 16) & 0x07) -#define CMMU_PFSR_SUCCESS 0 /* no fault */ -#define CMMU_PFSR_BERROR 3 /* bus error */ -#define CMMU_PFSR_SFAULT 4 /* segment fault */ -#define CMMU_PFSR_PFAULT 5 /* page fault */ -#define CMMU_PFSR_SUPER 6 /* supervisor violation */ -#define CMMU_PFSR_WRITE 7 /* writer violation */ - -/* CSSP values */ -#define CMMU_CSSP_L5 0x20000000 -#define CMMU_CSSP_L4 0x10000000 -#define CMMU_CSSP_L3 0x08000000 -#define CMMU_CSSP_L2 0x04000000 -#define CMMU_CSSP_L1 0x02000000 -#define CMMU_CSSP_L0 0x01000000 -#define CMMU_CSSP_D3 0x00800000 -#define CMMU_CSSP_D2 0x00400000 -#define CMMU_CSSP_D1 0x00200000 -#define CMMU_CSSP_D0 0x00100000 -#define CMMU_CSSP_VV(n,v) (((v) & 0x03) << (12 + 2 * (n))) -#define CMMU_VV_EXCLUSIVE 0x00 -#define CMMU_VV_MODIFIED 0x01 -#define CMMU_VV_SHARED 0x02 -#define CMMU_VV_INVALID 0x03 - -/* IDR values */ -#define CMMU_ID(idr) ((idr) >> 24) -#define CMMU_TYPE(idr) (((idr) >> 21) & 0x07) -#define CMMU_VERSION(idr) (((idr) >> 16) & 0x1f) -#define M88200_ID 5 -#define M88204_ID 6 - -/* SSR values */ -#define CMMU_SSR_CE 0x00008000 /* copyback error */ -#define CMMU_SSR_BE 0x00004000 /* bus error */ -#define CMMU_SSR_BH 0x00000002 /* probe BATC hit */ - -/* - * Cache line information - */ - -#define MC88200_CACHE_SHIFT 4 -#define MC88200_CACHE_LINE (1 << MC88200_CACHE_SHIFT) - -#define NBSG (1 << (PDT_BITS + PG_BITS)) /* segment size */ - -#endif /* __MACHINE_M8820X_H__ */ +/* $OpenBSD: m8820x.h,v 1.2 2004/04/26 12:34:05 miod Exp $ */ +/* public domain */ +#include <m88k/m8820x.h> diff --git a/sys/arch/luna88k/include/mmu.h b/sys/arch/luna88k/include/mmu.h index 4d35be5be6d..2e6744a16aa 100644 --- a/sys/arch/luna88k/include/mmu.h +++ b/sys/arch/luna88k/include/mmu.h @@ -1,252 +1,3 @@ -/* $OpenBSD: mmu.h,v 1.1 2004/04/21 15:23:57 aoyama Exp $ */ - -/* - * This file bears almost no resemblance to the original m68k file, - * so the following copyright notice is questionable, but we are - * nice people. - */ - -/* - * Copyright (c) 1988 University of Utah. - * Copyright (c) 1982, 1986, 1990, 1993 - * The Regents of the University of California. All rights reserved. - * - * This code is derived from software contributed to Berkeley by - * the Systems Programming Group of the University of Utah Computer - * Science Department. - * - * 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. - * 3. 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: Utah $Hdr: pte.h 1.13 92/01/20$ - * - * @(#)pte.h 8.1 (Berkeley) 6/10/93 - */ - -#ifndef _MACHINE_MMU_H_ -#define _MACHINE_MMU_H_ - -/* - * Parameters which determine the 'geometry' of the m88K page tables in memory. - */ - -#define SDT_BITS 10 /* M88K segment table size bits */ -#define PDT_BITS 10 /* M88K page table size bits */ -#define PG_BITS PAGE_SHIFT /* M88K hardware page size bits */ - -/* - * Common fields for APR, SDT and PTE - */ - -/* address frame */ -#define PG_FRAME 0xfffff000 -#define PG_SHIFT PG_BITS -#define PG_PFNUM(x) (((x) & PG_FRAME) >> PG_SHIFT) - -/* cache control bits */ -#define CACHE_DFL 0x00000000 -#define CACHE_INH 0x00000040 /* cache inhibit */ -#define CACHE_GLOBAL 0x00000080 /* global scope */ -#define CACHE_WT 0x00000200 /* write through */ - -#define CACHE_MASK (CACHE_INH | CACHE_GLOBAL | CACHE_WT) - -/* - * Area descriptors - */ - -#define APR_V 0x00000001 /* valid bit */ - -/* - * 88200 PATC (TLB) - */ - -#define PATC_ENTRIES 56 - -/* - * BATC entries - */ - -#define BATC_V 0x00000001 -#define BATC_PROT 0x00000002 -#define BATC_INH 0x00000004 -#define BATC_GLOBAL 0x00000008 -#define BATC_WT 0x00000010 -#define BATC_SO 0x00000020 - - -/* - * Segment table entries - */ - -typedef u_int32_t sdt_entry_t; - -#define SDT_ENTRY_NULL ((sdt_entry_t *) 0) - -#define SG_V 0x00000001 -#define SG_NV 0x00000000 -#define SG_PROT 0x00000004 -#define SG_RO 0x00000004 -#define SG_RW 0x00000000 -#define SG_SO 0x00000100 - -#define SDT_VALID(sdt) (*(sdt) & SG_V) -#define SDT_SUP(sdt) (*(sdt) & SG_SO) -#define SDT_WP(sdt) (*(sdt) & SG_PROT) - -/* - * Page table entries - */ - -typedef u_int32_t pt_entry_t; - -#define PT_ENTRY_NULL ((pt_entry_t *) 0) - -#define PG_V 0x00000001 -#define PG_NV 0x00000000 -#define PG_PROT 0x00000004 -#define PG_U 0x00000008 -#define PG_M 0x00000010 -#define PG_RO 0x00000004 -#define PG_RW 0x00000000 -#define PG_SO 0x00000100 -#define PG_W 0x00000020 /* XXX unused but reserved field */ -#define PG_U0 0x00000400 /* U0 bit for M88110 */ -#define PG_U1 0x00000800 /* U1 bit for M88110 */ - -#define PDT_VALID(pte) (*(pte) & PG_V) -#define PDT_SUP(pte) (*(pte) & PG_SO) -#define PDT_WP(pte) (*(pte) & PG_PROT) - -/* - * Indirect descriptors (mc81110) - */ - -typedef u_int32_t pt_ind_entry_t; - -/* validity bits */ -#define IND_V 0x00000001 -#define IND_NV 0x00000000 -#define IND_MASKED 0x00000002 -#define IND_UNMASKED 0x00000003 -#define IND_MASK 0x00000003 - -#define IND_FRAME 0xfffffffc -#define IND_SHIFT 2 - -#define IND_PDA(x) ((x) & IND_FRAME >> IND_SHIFT) - -/* - * Number of entries in a page table. - */ - -#define SDT_ENTRIES (1<<(SDT_BITS)) -#define PDT_ENTRIES (1<<(PDT_BITS)) - -/* - * Size in bytes of a single page table. - */ - -#define SDT_SIZE (sizeof(sdt_entry_t) * SDT_ENTRIES) -#define PDT_SIZE (sizeof(pt_entry_t) * PDT_ENTRIES) - -/* - * Shifts and masks - */ - -#define SDT_SHIFT (PDT_BITS + PG_BITS) -#define PDT_SHIFT (PG_BITS) - -#define SDT_MASK (((1 << SDT_BITS) - 1) << SDT_SHIFT) -#define PDT_MASK (((1 << PDT_BITS) - 1) << PDT_SHIFT) - -#define SDTIDX(va) (((va) & SDT_MASK) >> SDT_SHIFT) -#define PDTIDX(va) (((va) & PDT_MASK) >> PDT_SHIFT) - -/* XXX uses knowledge of pmap structure */ -#define SDTENT(map, va) ((sdt_entry_t *)((map)->pm_stab + SDTIDX(va))) - -/* - * Va spaces mapped by tables and PDT table group. - */ - -#define PDT_VA_SPACE (PDT_ENTRIES * PAGE_SIZE) - -/* - * Number of sdt entries used to map user and kernel space. - */ - -#define USER_SDT_ENTRIES SDTIDX(VM_MIN_KERNEL_ADDRESS) -#define KERNEL_SDT_ENTRIES (SDT_ENTRIES - USER_SDT_ENTRIES) - -/* - * Parameters and macros for BATC - */ - -/* number of bits to BATC shift (log2(BATC_BLKBYTES)) */ -#define BATC_BLKSHIFT 19 -/* 'block' size of a BATC entry mapping */ -#define BATC_BLKBYTES (1 << BATC_BLKSHIFT) -/* BATC block mask */ -#define BATC_BLKMASK (BATC_BLKBYTES-1) -/* number of BATC entries */ -#define BATC_MAX 8 - -/* physical and logical block address */ -#define BATC_PSHIFT 6 -#define BATC_VSHIFT (BATC_PSHIFT + (32 - BATC_BLKSHIFT)) - -#define BATC_BLK_ALIGNED(x) ((x & BATC_BLKMASK) == 0) - -#define M88K_BTOBLK(x) (x >> BATC_BLKSHIFT) - -/* - * DMA and caching control - */ -#define DMA_CACHE_SYNC 0x1 -#define DMA_CACHE_SYNC_INVAL 0x2 -#define DMA_CACHE_INV 0x3 - -static pt_entry_t invalidate_pte(pt_entry_t *); -static __inline__ pt_entry_t -invalidate_pte(pt_entry_t *pte) -{ - pt_entry_t oldpte; - - oldpte = PG_NV; - __asm__ __volatile__ - ("xmem %0, %2, r0" : "=r"(oldpte) : "0"(oldpte), "r"(pte)); - __asm__ __volatile__ ("tb1 0, r0, 0"); - return oldpte; -} - -extern vaddr_t kmapva; - -#define kvtopte(va) \ - ((pt_entry_t *)(PG_PFNUM(*((sdt_entry_t *)kmapva + \ - SDTIDX(va) + SDT_ENTRIES)) << PDT_SHIFT) + PDTIDX(va)) - -u_int kvtop(vaddr_t); - -#endif /* __MACHINE_MMU_H__ */ +/* $OpenBSD */ +/* public domain */ +#include <m88k/mmu.h> diff --git a/sys/arch/luna88k/include/param.h b/sys/arch/luna88k/include/param.h index cd37c5224b1..4898422b952 100644 --- a/sys/arch/luna88k/include/param.h +++ b/sys/arch/luna88k/include/param.h @@ -1,4 +1,4 @@ -/* $OpenBSD: param.h,v 1.2 2004/04/22 05:37:27 miod Exp $ */ +/* $OpenBSD: param.h,v 1.3 2004/04/26 12:34:05 miod Exp $ */ /* * Copyright (c) 1999 Steve Murphree, Jr. * Copyright (c) 1988 University of Utah. @@ -37,141 +37,21 @@ * * @(#)param.h 7.8 (Berkeley) 6/28/91 */ + #ifndef _MACHINE_PARAM_H_ #define _MACHINE_PARAM_H_ -#ifdef _KERNEL -#ifndef _LOCORE -#include <machine/cpu.h> -#endif /* _LOCORE */ -#endif - #define _MACHINE luna88k #define MACHINE "luna88k" -#define _MACHINE_ARCH m88k -#define MACHINE_ARCH "m88k" -#define MID_MACHINE MID_M88K - -/* - * Round p (pointer or byte index) down to a correctly-aligned value - * for all data types (int, long, ...). The result is u_int and - * must be cast to any desired pointer type. ALIGN() is used for - * aligning stack, which needs to be on a double word boundary for - * 88k. - */ - -#define ALIGNBYTES 15 /* 64 bit alignment */ -#define ALIGN(p) (((u_int)(p) + ALIGNBYTES) & ~ALIGNBYTES) -#define ALIGNED_POINTER(p,t) ((((u_long)(p)) & (sizeof(t)-1)) == 0) -#define NBPG (1 << PGSHIFT) /* bytes/page */ -#define PGOFSET (NBPG-1) /* byte offset into page */ -#define PGSHIFT 12 /* LOG2(NBPG) */ - -#define PAGE_SHIFT 12 -#define PAGE_SIZE (1 << PAGE_SHIFT) -#define PAGE_MASK (PAGE_SIZE - 1) - -#define NPTEPG (PAGE_SIZE / (sizeof(pt_entry_t))) +#include <m88k/param.h> /* - * The ROM monitor uses the bottom 128KB. The kernel will allocate PTEs to map this - * space, but the kernel must be linked with a start address past these 128KB. + * The ROM monitor uses the bottom 128KB. The kernel will allocate PTEs to map + * this space, but the kernel must be linked with a start address past + * these 128KB. */ #define KERNBASE 0x00000000 /* start of kernel virtual */ #define KERNTEXTOFF 0x00020000 /* start of kernel text */ -#define DEV_BSHIFT 9 /* log2(DEV_BSIZE) */ -#define DEV_BSIZE (1 << DEV_BSHIFT) -#define BLKDEV_IOSIZE 2048 -#define MAXPHYS (64 * 1024) /* max raw I/O transfer size */ - -#define SSIZE 1 /* initial stack size/NBPG */ -#define SINCR 1 /* increment of stack/NBPG */ - -#define UPAGES 3 /* pages of u-area */ -#define USPACE (UPAGES * NBPG) - -#define UADDR 0xeee00000 /* address of u */ - -/* - * Constants related to network buffer management. - * MCLBYTES must be no larger than the software page size, and, - * on machines that exchange pages of input or output buffers with mbuf - * clusters (MAPPED_MBUFS), MCLBYTES must also be an integral multiple - * of the hardware page size. - */ -#define MSIZE 256 /* size of an mbuf */ -#define MCLSHIFT 11 /* convert bytes to m_buf clusters */ -#define MCLBYTES (1 << MCLSHIFT) /* size of a m_buf cluster */ -#define MCLOFSET (MCLBYTES - 1) /* offset within a m_buf cluster */ - -#define NMBCLUSTERS 512 /* map size, max cluster allocation */ - -/* - * Minimum and maximum sizes of the kernel malloc arena in PAGE_SIZE-sized - * logical pages. - */ -#define NKMEMPAGES_MIN_DEFAULT ((4 * 1024 * 1024) >> PAGE_SHIFT) -#define NKMEMPAGES_MAX_DEFAULT ((4 * 1024 * 1024) >> PAGE_SHIFT) - -#define MSGBUFSIZE PAGE_SIZE - -/* pages ("clicks") to disk blocks */ -#define ctod(x) ((x) << (PGSHIFT - DEV_BSHIFT)) -#define dtoc(x) ((x) >> (PGSHIFT - DEV_BSHIFT)) - -/* pages to bytes */ -#define ctob(x) ((x) << PGSHIFT) -#define btoc(x) (((x) + PGOFSET) >> PGSHIFT) - -/* bytes to disk blocks */ -#define btodb(x) ((x) >> DEV_BSHIFT) -#define dbtob(x) ((x) << DEV_BSHIFT) - -/* - * Map a ``block device block'' to a file system block. - * This should be device dependent, and should use the bsize - * field from the disk label. - * For now though just use DEV_BSIZE. - */ -#define bdbtofsb(bn) ((bn) / (BLKDEV_IOSIZE/DEV_BSIZE)) - -/* - * Get interrupt glue. - */ -#include <machine/intr.h> - -#ifdef _KERNEL -extern void delay(int); -#define DELAY(x) delay(x) - -extern int cputyp; -extern int brdtyp; -extern int cpumod; -#endif - -/* - * Values for the brdtyp variable. - */ -#define BRD_187 0x187 -#define BRD_188 0x188 -#define BRD_197 0x197 -#define BRD_8120 0x8120 - -/* - * Values for the cputyp variable. - */ -#define CPU_88100 0x100 -#define CPU_88110 0x110 - -/* - * Values for the cpumod variable. - */ -#define MOD_LE 0x01 -#define MOD_SP 0x02 -#define MOD_DP 0x03 - #endif /* !_MACHINE_PARAM_H_ */ - - diff --git a/sys/arch/luna88k/include/pcb.h b/sys/arch/luna88k/include/pcb.h index 3df7ed511e6..22e82738981 100644 --- a/sys/arch/luna88k/include/pcb.h +++ b/sys/arch/luna88k/include/pcb.h @@ -1,149 +1,3 @@ -/* $OpenBSD: pcb.h,v 1.1 2004/04/21 15:23:57 aoyama Exp $ */ -/* - * Copyright (c) 1996 Nivas Madhur - * Mach Operating System - * Copyright (c) 1993-1992 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 AND OMRON ALLOW FREE USE OF THIS SOFTWARE IN ITS "AS IS" - * CONDITION. CARNEGIE MELLON AND OMRON 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. - */ -/* - * Motorola 88100 pcb definitions - * - */ -/* - */ -#ifndef _M88K_PCB_H_ -#define _M88K_PCB_H_ - -#include <machine/reg.h> - -/* - * Our PCB is the regular PCB+Save area for kernel frame. - * Upon entering kernel mode from user land, save the user context - * in the saved_state area - this is passed as the exception frame. - * On a context switch, only registers that need to be saved by the - * C calling convention and few other regs (pc, psr etc) are saved - * in the kernel_state part of the PCB. Typically, trap frames are - * saved on the stack (by low level handlers or by hardware) but, - * we just decided to do it in the PCB. - */ - -struct m88100_pcb { - unsigned pcb_pc; /* address to return */ - unsigned pcb_ipl; - unsigned pcb_r14; - unsigned pcb_r15; - unsigned pcb_r16; - unsigned pcb_r17; - unsigned pcb_r18; - unsigned pcb_r19; - unsigned pcb_r20; - unsigned pcb_r21; - unsigned pcb_r22; - unsigned pcb_r23; - unsigned pcb_r24; - unsigned pcb_r25; - unsigned pcb_r26; - unsigned pcb_r27; - unsigned pcb_r28; - unsigned pcb_r29; - unsigned pcb_r30; - unsigned pcb_sp; /* kernel stack pointer */ - /* floating-point state */ - unsigned pcb_fcr62; - unsigned pcb_fcr63; -}; - -struct trapframe { - struct reg tf_regs; - register_t tf_vector; /* exception vector number */ - register_t tf_mask; /* interrupt mask level */ - register_t tf_mode; /* interrupt mode */ - register_t tf_scratch1; /* reserved for use by locore */ - register_t tf_ipfsr; /* P BUS status */ - register_t tf_dpfsr; /* P BUS status */ - register_t tf_cpu; /* cpu number */ -}; - -#define tf_r tf_regs.r -#define tf_sp tf_regs.r[31] -#define tf_epsr tf_regs.epsr -#define tf_fpsr tf_regs.fpsr -#define tf_fpcr tf_regs.fpcr -#define tf_sxip tf_regs.sxip -#define tf_snip tf_regs.snip -#define tf_sfip tf_regs.sfip -#define tf_exip tf_regs.sxip -#define tf_enip tf_regs.snip -#define tf_ssbr tf_regs.ssbr -#define tf_dmt0 tf_regs.dmt0 -#define tf_dmd0 tf_regs.dmd0 -#define tf_dma0 tf_regs.dma0 -#define tf_dmt1 tf_regs.dmt1 -#define tf_dmd1 tf_regs.dmd1 -#define tf_dma1 tf_regs.dma1 -#define tf_dmt2 tf_regs.dmt2 -#define tf_dmd2 tf_regs.dmd2 -#define tf_dma2 tf_regs.dma2 -#define tf_duap tf_regs.ssbr -#define tf_dsr tf_regs.dmt0 -#define tf_dlar tf_regs.dmd0 -#define tf_dpar tf_regs.dma0 -#define tf_isr tf_regs.dmt1 -#define tf_ilar tf_regs.dmd1 -#define tf_ipar tf_regs.dma1 -#define tf_isap tf_regs.dmt2 -#define tf_dsap tf_regs.dmd2 -#define tf_iuap tf_regs.dma2 -#define tf_fpecr tf_regs.fpecr -#define tf_fphs1 tf_regs.fphs1 -#define tf_fpls1 tf_regs.fpls1 -#define tf_fphs2 tf_regs.fphs2 -#define tf_fpls2 tf_regs.fpls2 -#define tf_fppt tf_regs.fppt -#define tf_fprh tf_regs.fprh -#define tf_fprl tf_regs.fprl -#define tf_fpit tf_regs.fpit - -struct pcb -{ - struct m88100_pcb kernel_state; - struct trapframe user_state; - int pcb_onfault; -}; - -/* - * Location of saved user registers for the proc. - */ -#define USER_REGS(p) \ - (((struct reg *)(&((p)->p_addr->u_pcb.user_state)))) -/* - * The pcb is augmented with machine-dependent additional data for - * core dumps. Note that the trapframe here is a copy of the one - * from the top of the kernel stack (included here so that the kernel - * stack itself need not be dumped). - */ -struct md_coredump { - struct trapframe md_tf; -}; - -#endif /* _M88K_PCB_H_ */ +/* $OpenBSD */ +/* public domain */ +#include <m88k/pcb.h> diff --git a/sys/arch/luna88k/include/proc.h b/sys/arch/luna88k/include/proc.h index f5e679e8957..18dc4616b50 100644 --- a/sys/arch/luna88k/include/proc.h +++ b/sys/arch/luna88k/include/proc.h @@ -1,64 +1,3 @@ -/* $OpenBSD: proc.h,v 1.1 2004/04/21 15:23:58 aoyama Exp $ */ -/* - * Copyright (c) 1992, 1993 - * The Regents of the University of California. All rights reserved. - * - * This software was developed by the Computer Systems Engineering group - * at Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and - * contributed to Berkeley. - * - * All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Lawrence Berkeley Laboratory. - * - * 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. - * 3. 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. - * - * @(#)proc.h 8.1 (Berkeley) 6/11/93 - * - * from: Header: proc.h,v 1.6 92/11/26 02:04:41 torek Exp (LBL) - */ - -#ifndef __MACHINE_PROC_H__ -#define __MACHINE_PROC_H__ - -#include <machine/pcb.h> - -/* - * Machine-dependent part of the proc structure for mvme88k. - */ -struct mdproc { - struct trapframe *md_tf; /* trap/syscall registers */ - struct fpstate *md_fpstate; /* fpu state, if any; always resident */ - int md_upte[UPAGES]; /* ptes for mapping u page */ - - unsigned md_ss_addr; /* single step address for ptrace */ - unsigned md_ss_instr; /* single step instruction for ptrace */ - unsigned md_ss_taken_addr; /* single step address for ptrace */ - unsigned md_ss_taken_instr; /* single step instruction for ptrace */ -}; - -#endif /* __MACHINE_PROC_H__ */ - +/* $OpenBSD */ +/* public domain */ +#include <m88k/proc.h> diff --git a/sys/arch/luna88k/include/psl.h b/sys/arch/luna88k/include/psl.h index 82afeafef2a..859d39f3b93 100644 --- a/sys/arch/luna88k/include/psl.h +++ b/sys/arch/luna88k/include/psl.h @@ -1,93 +1,3 @@ -/* $OpenBSD: psl.h,v 1.1 2004/04/21 15:23:58 aoyama Exp $ */ -/* - * Copyright (c) 1996 Nivas Madhur - * All rights reserved. - * - * 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. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by Nivas Madhur. - * 4. The name of the author may not be used to endorse or promote products - * derived from this software without specific prior written permission - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. - * - */ -/* - * Mach Operating System - * Copyright (c) 1991 Carnegie Mellon University - * Copyright (c) 1991 OMRON 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. - * - */ - -#ifndef __M88K_PSL_H__ -#define __M88K_PSL_H__ - -/* - * 88100 control registers - */ - -/* - * processor identification register (PID) - */ -#define PID_ARN 0x0000FF00U /* architectural revision number */ -#define PID_VN 0x000000FEU /* version number */ -#define PID_MC 0x00000001U /* master/checker */ - -/* - * processor status register - */ - -#define PSR_MODE 0x80000000U /* supervisor/user mode */ -#define PSR_BO 0x40000000U /* byte-ordering 0:big 1:little */ -#define PSR_SER 0x20000000U /* 88110 serial mode */ -#define PSR_C 0x10000000U /* carry */ -#define PSR_SGN 0x04000000U /* 88110 Signed Immediate mode */ -#define PSR_SRM 0x02000000U /* 88110 Serialize Memory */ -#define PSR_TRACE 0x00800000U /* 88110 hardware trace */ -#define PSR_SFD 0x000003E0U /* SFU disable */ -#define PSR_SFD2 0x00000010U /* 88110 SFU2 (Graphics) disable */ -#define PSR_SFD1 0x00000008U /* SFU1 (FPU) disable */ -#define PSR_MXM 0x00000004U /* misaligned access enable */ -#define PSR_IND 0x00000002U /* interrupt disable */ -#define PSR_SFRZ 0x00000001U /* shadow freeze */ - -#define PSR_SUPERVISOR (PSR_MODE | PSR_SFD) -#define PSR_USER (PSR_SFD) -#define PSR_SET_BY_USER (PSR_BO | PSR_SER | PSR_C | PSR_MXM) - -#define FIP_V 0x00000002U /* valid */ -#define FIP_E 0x00000001U /* exception */ -#define FIP_ADDR 0xFFFFFFFCU /* address mask */ -#define NIP_V 0x00000002U /* valid */ -#define NIP_E 0x00000001U /* exception */ -#define NIP_ADDR 0xFFFFFFFCU /* address mask */ -#define XIP_V 0x00000002U /* valid */ -#define XIP_E 0x00000001U /* exception */ -#define XIP_ADDR 0xFFFFFFFCU /* address mask */ - -#endif /* __M88K_PSL_H__ */ - +/* $OpenBSD */ +/* public domain */ +#include <m88k/psl.h> diff --git a/sys/arch/luna88k/include/ptrace.h b/sys/arch/luna88k/include/ptrace.h index d375507d13b..ce86a0a6a9b 100644 --- a/sys/arch/luna88k/include/ptrace.h +++ b/sys/arch/luna88k/include/ptrace.h @@ -1,62 +1,3 @@ -/* $OpenBSD: ptrace.h,v 1.1 2004/04/21 15:23:58 aoyama Exp $ */ -/* - * Copyright (c) 1999, Steve Murphree, Jr. - * Copyright (c) 1992, 1993 - * The Regents of the University of California. All rights reserved. - * - * This software was developed by the Computer Systems Engineering group - * at Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and - * contributed to Berkeley. - * - * All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Lawrence Berkeley Laboratory. - * - * 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. - * 3. 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. - * - * @(#)ptrace.h 8.1 (Berkeley) 6/11/93 - * - * from: Header: ptrace.h,v 1.6 92/11/26 02:04:43 torek Exp (LBL) - */ - -/* - * m88k-dependent ptrace definitions. - */ - -#ifndef __MACHINE_PTRACE_H__ -#define __MACHINE_PTRACE_H__ - -#define PT_STEP (PT_FIRSTMACH + 0) -#define PT_GETREGS (PT_FIRSTMACH + 1) -#define PT_SETREGS (PT_FIRSTMACH + 2) -#define PT_GETFPREGS (PT_FIRSTMACH + 3) -#define PT_SETFPREGS (PT_FIRSTMACH + 4) - -#ifdef _KERNEL -int cpu_singlestep(struct proc *); -#endif - -#endif /* __MACHINE_PTRACE_H__ */ +/* $OpenBSD */ +/* public domain */ +#include <m88k/ptrace.h> diff --git a/sys/arch/luna88k/include/reg.h b/sys/arch/luna88k/include/reg.h index 893a32042ea..73fdcfa1616 100644 --- a/sys/arch/luna88k/include/reg.h +++ b/sys/arch/luna88k/include/reg.h @@ -1,90 +1,3 @@ -/* $OpenBSD: reg.h,v 1.1 2004/04/21 15:23:58 aoyama Exp $ */ -/* - * Copyright (c) 1999 Steve Murphree, Jr. - * Copyright (c) 1996 Nivas Madhur - * All rights reserved. - * - * 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. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by Nivas Madhur. - * 4. The name of the author may not be used to endorse or promote products - * derived from this software without specific prior written permission - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. - * - */ - -#ifndef _M88K_REG_H_ -#define _M88K_REG_H_ - -struct reg { - unsigned int r[32]; /* 0 - 31 */ - unsigned int epsr; /* 32 */ - unsigned int fpsr; - unsigned int fpcr; - unsigned int sxip; -#define exip sxip /* mc88110 */ - unsigned int snip; -#define enip snip /* mc88110 */ - unsigned int sfip; - unsigned int ssbr; -#define duap ssbr /* mc88110 */ - unsigned int dmt0; -#define dsr dmt0 /* mc88110 */ - unsigned int dmd0; -#define dlar dmd0 /* mc88110 */ - unsigned int dma0; -#define dpar dma0 /* mc88110 */ - unsigned int dmt1; -#define isr dmt1 /* mc88110 */ - unsigned int dmd1; -#define ilar dmd1 /* mc88110 */ - unsigned int dma1; -#define ipar dma1 /* mc88110 */ - unsigned int dmt2; -#define isap dmt2 /* mc88110 */ - unsigned int dmd2; -#define dsap dmd2 /* mc88110 */ - unsigned int dma2; -#define iuap dma2 /* mc88110 */ - unsigned int fpecr; - unsigned int fphs1; - unsigned int fpls1; - unsigned int fphs2; - unsigned int fpls2; - unsigned int fppt; - unsigned int fprh; - unsigned int fprl; - unsigned int fpit; -}; - -struct fpreg { - unsigned int fp_fpecr; - unsigned int fp_fphs1; - unsigned int fp_fpls1; - unsigned int fp_fphs2; - unsigned int fp_fpls2; - unsigned int fp_fppt; - unsigned int fp_fprh; - unsigned int fp_fprl; - unsigned int fp_fpit; -}; - -#endif /* _M88K_REG_H_ */ +/* $OpenBSD */ +/* public domain */ +#include <m88k/reg.h> diff --git a/sys/arch/luna88k/include/setjmp.h b/sys/arch/luna88k/include/setjmp.h index aa7ab9e888a..f87dfa97bab 100644 --- a/sys/arch/luna88k/include/setjmp.h +++ b/sys/arch/luna88k/include/setjmp.h @@ -1,9 +1,3 @@ -/* $OpenBSD: setjmp.h,v 1.1 2004/04/21 15:23:58 aoyama Exp $ */ - -/* - * machine/setjmp.h: machine dependent setjmp-related information. - */ -#ifndef __MACHINE_SETJMP_H__ -#define __MACHINE_SETJMP_H__ -#define _JBLEN 21 /* size, in longs, of a jmp_buf */ -#endif /* __MACHINE_SETJMP_H__ */ +/* $OpenBSD */ +/* public domain */ +#include <m88k/setjmp.h> diff --git a/sys/arch/luna88k/include/signal.h b/sys/arch/luna88k/include/signal.h index abda50594f8..0fcbec65d88 100644 --- a/sys/arch/luna88k/include/signal.h +++ b/sys/arch/luna88k/include/signal.h @@ -1,56 +1,3 @@ -/* $OpenBSD: signal.h,v 1.1 2004/04/21 15:23:58 aoyama Exp $ */ -/* - * Copyright (c) 1996 Nivas Madhur - * All rights reserved. - * - * 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. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by Nivas Madhur. - * 4. The name of the author may not be used to endorse or promote products - * derived from this software without specific prior written permission - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. - * - */ - -#ifndef __MACHINE_SIGNAL_H__ -#define __MACHINE_SIGNAL_H__ - -#include <machine/reg.h> - -typedef int sig_atomic_t; - -/* - * Information pushed on stack when a signal is delivered. - * This is used by the kernel to restore state following - * execution of the signal handler. It is also made available - * to the handler to allow it to restore state properly if - * a non-standard exit is performed. - * - * All machines must have an sc_onstack and sc_mask. - */ -struct sigcontext { - int sc_onstack; /* sigstack state to restore */ - int sc_mask; /* signal mask to restore */ - /* begin machine dependent portion */ - struct reg sc_regs; -}; - -#endif /* __MACHINE_SIGNAL_H__ */ +/* $OpenBSD */ +/* public domain */ +#include <m88k/signal.h> diff --git a/sys/arch/luna88k/include/spinlock.h b/sys/arch/luna88k/include/spinlock.h index c9a2369f12f..ce991931d46 100644 --- a/sys/arch/luna88k/include/spinlock.h +++ b/sys/arch/luna88k/include/spinlock.h @@ -1,10 +1,3 @@ -/* $OpenBSD: spinlock.h,v 1.1 2004/04/21 15:23:58 aoyama Exp $ */ - -#ifndef _M88K_SPINLOCK_H_ -#define _M88K_SPINLOCK_H_ - -#define _SPINLOCK_UNLOCKED (0) -#define _SPINLOCK_LOCKED (1) -typedef int _spinlock_lock_t; - -#endif +/* $OpenBSD */ +/* public domain */ +#include <m88k/spinlock.h> diff --git a/sys/arch/luna88k/include/stdarg.h b/sys/arch/luna88k/include/stdarg.h index 95f5e13ab06..084833bd092 100644 --- a/sys/arch/luna88k/include/stdarg.h +++ b/sys/arch/luna88k/include/stdarg.h @@ -1,16 +1,3 @@ -/* $OpenBSD: stdarg.h,v 1.1 2004/04/21 15:23:58 aoyama Exp $ */ - -#ifndef _M88K_STDARGS_H_ -#define _M88K_STDARGS_H_ - -#include <machine/ansi.h> - -#ifndef _STDARG_H -#define _STDARG_H -#endif - -#include <machine/va-m88k.h> - -typedef _BSD_VA_LIST_ va_list; - -#endif /* _M88K_STDARGS_H_ */ +/* $OpenBSD */ +/* public domain */ +#include <m88k/stdarg.h> diff --git a/sys/arch/luna88k/include/trap.h b/sys/arch/luna88k/include/trap.h index d328d37464e..43e1cb756cf 100644 --- a/sys/arch/luna88k/include/trap.h +++ b/sys/arch/luna88k/include/trap.h @@ -1,78 +1,3 @@ -/* $OpenBSD: trap.h,v 1.1 2004/04/21 15:23:58 aoyama Exp $ */ -/* - * Mach Operating System - * Copyright (c) 1992 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. - */ -/* - * Trap codes - */ -#ifndef __MACHINE_TRAP_H__ -#define __MACHINE_TRAP_H__ - -/* - * Trap type values - */ - -#define T_RESADFLT 0 /* reserved addressing fault */ -#define T_PRIVINFLT 1 /* privileged instruction fault */ -#define T_RESOPFLT 2 /* reserved operand fault */ -#define T_INSTFLT 3 /* instruction access exception */ -#define T_DATAFLT 4 /* data access exception */ -#define T_MISALGNFLT 5 /* misaligned access exception */ -#define T_ILLFLT 6 /* unimplemented opcode exception */ -#define T_BNDFLT 7 /* bounds check violation exception */ -#define T_ZERODIV 8 /* illegal divide exception */ -#define T_OVFFLT 9 /* integer overflow exception */ -#define T_ERRORFLT 10 /* error exception */ -#define T_FPEPFLT 11 /* floating point precise exception */ -#define T_FPEIFLT 12 /* floating point imprecise exception */ -#define T_ASTFLT 13 /* software trap */ -#define T_KDB_ENTRY 14 /* force entry to kernel debugger */ -#define T_KDB_BREAK 15 /* break point hit */ -#define T_KDB_TRACE 16 /* trace */ -#define T_UNKNOWNFLT 17 /* unknown exception */ -#define T_SIGTRAP 18 /* generate SIGTRAP */ -#define T_SIGSYS 19 /* generate SIGSYS */ -#define T_STEPBPT 20 /* special breakpoint for single step */ -#define T_USERBPT 21 /* user set breakpoint (for debugger) */ -#define T_SYSCALL 22 /* Syscall */ -#define T_NON_MASK 23 /* MVME197 Non-Maskable Interrupt */ -#define T_KDB_WATCH 24 /* watchpoint hit */ -#define T_197_READ 25 /* MVME197 Data Read Miss (Software Table Searches) */ -#define T_197_WRITE 26 /* MVME197 Data Write Miss (Software Table Searches) */ -#define T_197_INST 27 /* MVME197 Inst ATC Miss (Software Table Searches) */ -#define T_INT 28 /* interrupt exception */ -#define T_USER 29 /* user mode fault */ - -#ifndef _LOCORE - -void m88100_trap(unsigned, struct trapframe *); -void m88100_syscall(register_t, struct trapframe *); - -void m88110_trap(unsigned, struct trapframe *); -void m88110_syscall(register_t, struct trapframe *); - -#endif /* _LOCORE */ - -#endif /* __MACHINE_TRAP_H__ */ +/* $OpenBSD */ +/* public domain */ +#include <m88k/trap.h> diff --git a/sys/arch/luna88k/include/types.h b/sys/arch/luna88k/include/types.h index 562e969a0ad..04429c0efb1 100644 --- a/sys/arch/luna88k/include/types.h +++ b/sys/arch/luna88k/include/types.h @@ -1,80 +1,3 @@ -/* $NetBSD: types.h,v 1.7 1995/07/05 17:46:11 pk Exp $ */ -/* $OpenBSD: types.h,v 1.1 2004/04/21 15:23:58 aoyama Exp $ */ - -/* - * Copyright (c) 1992, 1993 - * The Regents of the University of California. All rights reserved. - * - * This software was developed by the Computer Systems Engineering group - * at Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and - * contributed to Berkeley. - * - * All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Lawrence Berkeley Laboratory. - * - * 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. - * 3. 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. - * - * @(#)types.h 8.1 (Berkeley) 6/11/93 - */ - -#ifndef _MACHTYPES_H_ -#define _MACHTYPES_H_ - -#include <sys/cdefs.h> - -#if !defined(_ANSI_SOURCE) && !defined(_POSIX_SOURCE) -typedef struct label_t { - int val[19]; -} label_t; -#endif - -typedef unsigned long vaddr_t; -typedef unsigned long paddr_t; -typedef unsigned long vsize_t; -typedef unsigned long psize_t; - -/* - * Basic integral types. Omit the typedef if - * not possible for a machine/compiler combination. - */ -#define __BIT_TYPES_DEFINED__ -typedef __signed char int8_t; -typedef unsigned char u_int8_t; -typedef unsigned char uint8_t; -typedef short int16_t; -typedef unsigned short u_int16_t; -typedef unsigned short uint16_t; -typedef int int32_t; -typedef unsigned int u_int32_t; -typedef unsigned int uint32_t; -typedef long long int64_t; -typedef unsigned long long u_int64_t; -typedef unsigned long long uint64_t; - -typedef int32_t register_t; - -#endif /* _MACHTYPES_H_ */ +/* $OpenBSD */ +/* public domain */ +#include <m88k/types.h> diff --git a/sys/arch/luna88k/include/va-m88k.h b/sys/arch/luna88k/include/va-m88k.h index 4e1e6b58ea1..309a282ee46 100644 --- a/sys/arch/luna88k/include/va-m88k.h +++ b/sys/arch/luna88k/include/va-m88k.h @@ -1,82 +1,3 @@ -/* $OpenBSD: va-m88k.h,v 1.1 2004/04/21 15:23:58 aoyama Exp $ */ - -/* This file has local changes by MOTOROLA -Thu Sep 9 09:06:29 CDT 1993 Dale Rahn (drahn@pacific) - * Due to C-Front's usage of __alignof__ builtin the - usage of it must be changed to have an object of that type - as the argument not just the type. - */ -/* GNU C varargs support for the Motorola 88100 */ - -/* Define __gnuc_va_list. */ - -#ifndef __GNUC_VA_LIST -#define __GNUC_VA_LIST - -typedef struct __va_list_tag { - unsigned int __va_arg; /* argument number */ - unsigned int *__va_stk; /* start of args passed on stack */ - unsigned int *__va_reg; /* start of args passed in regs */ -} __va_list[1], __gnuc_va_list[1]; - -#endif /* not __GNUC_VA_LIST */ - -/* If this is for internal libc use, don't define anything but - __gnuc_va_list. */ -#if defined (_STDARG_H) || defined (_VARARGS_H) - -#define __va_start_common(AP,FAKE) \ -__extension__ ({ \ - (AP) = (struct __va_list_tag *)__builtin_alloca(sizeof(__gnuc_va_list)); \ - __builtin_memcpy ((AP), __builtin_saveregs (), sizeof(__gnuc_va_list)); \ - }) - -#ifdef _STDARG_H /* stdarg.h support */ - -/* Calling __builtin_next_arg gives the proper error message if LASTARG is - not indeed the last argument. */ -#define va_start(AP,LASTARG) \ - (__builtin_next_arg (LASTARG), __va_start_common (AP, 0)) - -#else /* varargs.h support */ - -#define va_start(AP) __va_start_common (AP, 1) -#define va_alist __va_1st_arg -#define va_dcl register int va_alist; ... - -#endif /* _STDARG_H */ - -#define __va_reg_p(TYPE) \ - (__builtin_classify_type(*(TYPE *)0) < 12 \ - ? sizeof(TYPE) <= 8 : sizeof(TYPE) == 4 && __alignof__(*(TYPE *)0) == 4) - -#define __va_size(TYPE) ((sizeof(TYPE) + 3) >> 2) - -/* We cast to void * and then to TYPE * because this avoids - a warning about increasing the alignment requirement. */ -#define va_arg(AP,TYPE) \ - ( (AP)->__va_arg = (((AP)->__va_arg + (1 << (__alignof__(*(TYPE *)0) >> 3)) - 1) \ - & ~((1 << (__alignof__(*(TYPE *)0) >> 3)) - 1)) \ - + __va_size(TYPE), \ - *((TYPE *) (void *) ((__va_reg_p(TYPE) \ - && (AP)->__va_arg < 8 + __va_size(TYPE) \ - ? (AP)->__va_reg : (AP)->__va_stk) \ - + ((AP)->__va_arg - __va_size(TYPE))))) - -#define va_end(AP) - -/* Copy __gnuc_va_list into another variable of this type. */ -#define __va_copy(dest, src) \ -__extension__ ({ \ - (dest) = \ - (struct __va_list_tag *)__builtin_alloca(sizeof(__gnuc_va_list)); \ - *(dest) = *(src);\ - }) - -#if !defined(_ANSI_SOURCE) && \ - (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE) || \ - defined(_ISOC99_SOURCE) || (__STDC_VERSION__ - 0) >= 199901L) -#define va_copy(dest, src) __va_copy(dest, src) -#endif - -#endif /* defined (_STDARG_H) || defined (_VARARGS_H) */ +/* $OpenBSD */ +/* public domain */ +#include <m88k/va-m88k.h> diff --git a/sys/arch/luna88k/include/varargs.h b/sys/arch/luna88k/include/varargs.h index f85d4737ace..b246c2b6172 100644 --- a/sys/arch/luna88k/include/varargs.h +++ b/sys/arch/luna88k/include/varargs.h @@ -1,13 +1,3 @@ -/* $OpenBSD: varargs.h,v 1.1 2004/04/21 15:23:58 aoyama Exp $ */ - -#ifndef _M88K_VARARGS_H_ -#define _M88K_VARARGS_H_ - -#define _VARARGS_H - -#include <machine/ansi.h> -#include <machine/va-m88k.h> - -typedef _BSD_VA_LIST_ va_list; - -#endif /* _M88K_VARARGS_H_ */ +/* $OpenBSD */ +/* public domain */ +#include <m88k/varargs.h> diff --git a/sys/arch/luna88k/include/vmparam.h b/sys/arch/luna88k/include/vmparam.h index 129ef221832..5032ec77208 100644 --- a/sys/arch/luna88k/include/vmparam.h +++ b/sys/arch/luna88k/include/vmparam.h @@ -1,133 +1,3 @@ -/* $OpenBSD: vmparam.h,v 1.1 2004/04/21 15:23:58 aoyama Exp $ */ -/* - * Mach Operating System - * Copyright (c) 1992 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. - */ - -/* - * machine dependent virtual memory parameters. - */ - - -#ifndef _MACHINE_VM_PARAM_ -#define _MACHINE_VM_PARAM_ - -/* - * USRTEXT is the start of the user text/data space, while USRSTACK - * is the top (end) of the user stack. - */ -#define USRTEXT 0x1000 /* Start of user text */ -#define USRSTACK 0x80000000 /* Start of user stack */ - -/* - * Virtual memory related constants, all in bytes - */ -#ifndef MAXTSIZ -#define MAXTSIZ (8*1024*1024) /* max text size */ -#endif -#ifndef DFLDSIZ -#define DFLDSIZ (32*1024*1024) /* initial data size limit */ -#endif -#ifndef MAXDSIZ -#define MAXDSIZ (64*1024*1024) /* max data size */ -#endif -#ifndef DFLSSIZ -#define DFLSSIZ (2*1024*1024) /* initial stack size limit */ -#endif -#ifndef MAXSSIZ -#define MAXSSIZ MAXDSIZ /* max stack size */ -#endif - -/* - * Size of shared memory map - */ -#ifndef SHMMAXPGS -#define SHMMAXPGS 1024 -#endif - -/* - * The time for a process to be blocked before being very swappable. - * This is a number of seconds which the system takes as being a non-trivial - * amount of real time. You probably shouldn't change this; - * it is used in subtle ways (fractions and multiples of it are, that is, like - * half of a ``long time'', almost a long time, etc.) - * It is related to human patience and other factors which don't really - * change over time. - */ -#define MAXSLP 20 - -#define VM_MIN_ADDRESS ((vaddr_t) 0) -#define VM_MAX_ADDRESS ((vaddr_t) 0xffc00000) -#define VM_MAXUSER_ADDRESS VM_MAX_ADDRESS - -/* on vme188, max = 0xf0000000 */ - -#define VM_MIN_KERNEL_ADDRESS ((vaddr_t) 0) -#define VM_MAX_KERNEL_ADDRESS ((vaddr_t) 0x20000000) - -#define KERNEL_STACK_SIZE (3 * PAGE_SIZE) /* kernel stack size */ -#define INTSTACK_SIZE (4 * PAGE_SIZE) /* interrupt stack size */ - -/* virtual sizes (bytes) for various kernel submaps */ -#define VM_PHYS_SIZE (1 * NPTEPG * PAGE_SIZE) - -/* - * Constants which control the way the VM system deals with memory segments. - * The mvme88k only has one physical memory segment. - */ -#define VM_PHYSSEG_MAX 1 -#define VM_PHYSSEG_STRAT VM_PSTRAT_BSEARCH -#define VM_PHYSSEG_NOADD - -#define VM_NFREELIST 1 -#define VM_FREELIST_DEFAULT 0 - -#ifndef _LOCORE -/* - * pmap-specific data stored in the vm_physmem[] array. - */ - -/* XXX - belongs in pmap.h, but put here because of ordering issues */ -struct pv_entry { - struct pv_entry *pv_next; /* next pv_entry */ - struct pmap *pv_pmap; /* pmap where mapping lies */ - vaddr_t pv_va; /* virtual address for mapping */ - int pv_flags; -}; - -#define __HAVE_VM_PAGE_MD -struct vm_page_md { - struct pv_entry pvent; -}; - -#define VM_MDPAGE_INIT(pg) do { \ - (pg)->mdpage.pvent.pv_next = NULL; \ - (pg)->mdpage.pvent.pv_pmap = PMAP_NULL; \ - (pg)->mdpage.pvent.pv_va = 0; \ - (pg)->mdpage.pvent.pv_flags = 0; \ -} while (0) - -#endif /* _LOCORE */ - -#endif /* _MACHINE_VM_PARAM_ */ +/* $OpenBSD */ +/* public domain */ +#include <m88k/vmparam.h> |