diff --git a/sys/arch/sun2/sun2/genassym.c b/sys/arch/sun2/sun2/genassym.c deleted file mode 100644 index a9089e92c86e..000000000000 --- a/sys/arch/sun2/sun2/genassym.c +++ /dev/null @@ -1,232 +0,0 @@ -/* $NetBSD: genassym.c,v 1.1 2001/04/06 15:05:56 fredette Exp $ */ - -/* - * Copyright (c) 1994, 1995 Gordon W. Ross - * Copyright (c) 1993 Adam Glass - * Copyright (c) 1982, 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. 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, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * from: @(#)genassym.c 8.3 (Berkeley) 1/4/94 - */ - -/* - * This program is designed so that it can be both: - * (1) Run on the native machine to generate assym.h - * (2) Converted to assembly that genassym.awk will - * translate into the same assym.h as (1) does. - * The second method is done as follows: - * m68k-xxx-gcc [options] -S .../genassym.c - * awk -f genassym.awk < genassym.s > assym.h - * - * Using actual C code here (instead of genassym.cf) - * has the advantage that "make depend" automatically - * tracks dependencies of this C code on the (many) - * header files used here. Also, the awk script used - * to convert the assembly output to assym.h is much - * smaller and simpler than sys/kern/genassym.sh. - * - * Both this method and the genassym.cf method have the - * disadvantage that they depend on gcc-specific features. - * This method depends on the format of assembly output for - * data, and the genassym.cf method depends on features of - * the gcc asm() statement (inline assembly). - */ - -#include "opt_compat_svr4.h" - -#include -#include -#include -#include -#include - -#include - -#ifdef COMPAT_SVR4 -#include -#include -#endif - -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include - -/* Note: Avoid /usr/include for cross compilation! */ -extern void printf __P((const char *fmt, ...)); -extern void exit __P((int)); - -#define def(name, value) { name, value } - -#ifdef __STDC__ -#define def1(name) def(#name, name) -#else -#define def1(name) def("name", name) -#endif - -#define offsetof(type, member) ((size_t)(&((type *)0)->member)) - -/* - * Note: genassym.awk cares about the form of this structure, - * as well as the names and placement of the "asdefs" array - * and the "nassefs" variable below. Clever, but fragile. - */ -struct nv { - char n[28]; - int v; -}; - -struct nv assyms[] = { - - /* XXX: for copy.s */ - def("M68010", 1), - - /* bus error stuff */ - def1(BUSERR_REG), - def1(BUSERR_PROTERR), - - /* 68k isms */ - def1(PSL_LOWIPL), - def1(PSL_HIGHIPL), - def1(PSL_USER), - def1(PSL_S), - def("PSL_TS", PSL_T | PSL_S), - def1(FC_CONTROL), - def1(FC_SUPERD), - def1(FC_USERD), - - /* sun2 control space isms */ - def1(SCONTEXT_REG), - def1(CONTEXT_REG), - def1(CONTEXT_NUM), - def1(SYSTEM_ENAB), - def1(SEGMAP_BASE), - def1(ENA_INTS), - - /* sun2 memory map */ - def1(USRSTACK), - def1(SUN2_MONSTART), - def1(SUN2_PROM_BASE), - def1(SUN2_MONEND), - - /* kernel-isms */ - def1(KERNBASE), - def1(USPACE), - def1(NBPG), - def1(NBSG), - - /* system calls */ - def1(SYS_exit), - def1(SYS___sigreturn14), - def1(SYS_compat_13_sigreturn13), - - /* errno-isms */ - def1(EFAULT), - def1(ENAMETOOLONG), - - /* trap types: locore.s includes trap.h */ - - /* - * unix structure-isms - */ - - /* proc fields and values */ - def("P_FORW", offsetof(struct proc, p_forw)), - def("P_BACK", offsetof(struct proc, p_back)), - def("P_VMSPACE", offsetof(struct proc, p_vmspace)), - def("P_ADDR", offsetof(struct proc, p_addr)), - def("P_PRIORITY", offsetof(struct proc, p_priority)), - def("P_STAT", offsetof(struct proc, p_stat)), - def("P_WCHAN", offsetof(struct proc, p_wchan)), - def("P_FLAG", offsetof(struct proc, p_flag)), - def("P_MDFLAG", offsetof(struct proc, p_md.md_flags)), - def("P_MDREGS", offsetof(struct proc, p_md.md_regs)), - def1(SRUN), - def1(SONPROC), - - /* XXX: HP-UX trace bit? */ - - /* VM/pmap structure fields */ - def("VM_PMAP", offsetof(struct vmspace, vm_map.pmap)), - def("PM_CTXNUM", offsetof(struct pmap, pm_ctxnum)), - - /* pcb offsets */ - def("PCB_FLAGS", offsetof(struct pcb, pcb_flags)), - def("PCB_PS", offsetof(struct pcb, pcb_ps)), - def("PCB_USP", offsetof(struct pcb, pcb_usp)), - def("PCB_REGS", offsetof(struct pcb, pcb_regs[0])), - def("PCB_ONFAULT", offsetof(struct pcb, pcb_onfault)), - def("PCB_FPCTX", offsetof(struct pcb, pcb_fpregs)), - def("SIZEOF_PCB", sizeof(struct pcb)), - - /* exception frame offset/sizes */ - def("FR_SP", offsetof(struct trapframe, tf_regs[15])), - def("FR_ADJ", offsetof(struct trapframe, tf_stackadj)), - def("FR_HW", offsetof(struct trapframe, tf_sr)), - def("FR_SIZE", sizeof(struct trapframe)), - - /* FP frame offsets */ - def("FPF_REGS", offsetof(struct fpframe, fpf_regs[0])), - def("FPF_FPCR", offsetof(struct fpframe, fpf_fpcr)), - - /* SVR4 binary compatibility */ -#ifdef COMPAT_SVR4 - def("SVR4_SIGF_HANDLER", offsetof(struct svr4_sigframe, sf_handler)), - def("SVR4_SIGF_UC", offsetof(struct svr4_sigframe, sf_uc)), - def1(SVR4_SYS_context), - def1(SVR4_SYS_exit), - def1(SVR4_SETCONTEXT), -#endif -}; -int nassyms = sizeof(assyms)/sizeof(assyms[0]); - -main() -{ - char *name; - int i, val; - - for (i = 0; i < nassyms; i++) { - name = assyms[i].n; - val = assyms[i].v; - printf("#define\t%s\t%d\n", name, val); - } - - exit(0); -} diff --git a/sys/arch/sun2/sun2/genassym.cf b/sys/arch/sun2/sun2/genassym.cf new file mode 100644 index 000000000000..01a7cd157fa3 --- /dev/null +++ b/sys/arch/sun2/sun2/genassym.cf @@ -0,0 +1,175 @@ +# $NetBSD: genassym.cf,v 1.1 2001/11/30 15:58:24 fredette Exp $ + +# +# Copyright (c) 1994, 1995 Gordon W. Ross +# Copyright (c) 1993 Adam Glass +# Copyright (c) 1982, 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. 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, Berkeley and its contributors. +# 4. Neither the name of the University nor the names of its contributors +# may be used to endorse or promote products derived from this software +# without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +# SUCH DAMAGE. +# +# from: @(#)genassym.c 8.3 (Berkeley) 1/4/94 +# + +if defined(_KERNEL) && !defined(_LKM) +include "opt_compat_svr4.h" +endif + +include +include +include +include +include + +include + +ifdef COMPAT_SVR4 +include +include +endif + +include +include +include +include +include +include +include +include + +include +include +include +include + +include + +# XXX: for copy.s +define M68010 1 + +# bus error stuff +define BUSERR_REG BUSERR_REG +define BUSERR_PROTERR BUSERR_PROTERR + +# 68k isms +define PSL_LOWIPL PSL_LOWIPL +define PSL_HIGHIPL PSL_HIGHIPL +define PSL_USER PSL_USER +define PSL_S PSL_S +define PSL_TS PSL_T | PSL_S +define FC_CONTROL FC_CONTROL +define FC_SUPERD FC_SUPERD +define FC_USERD FC_USERD + +# sun2 control space isms +define SCONTEXT_REG SCONTEXT_REG +define CONTEXT_REG CONTEXT_REG +define CONTEXT_NUM CONTEXT_NUM +define SYSTEM_ENAB SYSTEM_ENAB +define ENA_INTS ENA_INTS +define SEGMAP_BASE SEGMAP_BASE + +# sun2 memory map +define USRSTACK USRSTACK +define SUN2_MONSTART SUN2_MONSTART +define SUN2_PROM_BASE SUN2_PROM_BASE +define SUN2_MONEND SUN2_MONEND + +# sun2 clock +define AM9513_CLK_CMD AM9513_CLK_CMD +define SUN2_CLK_TIMER_CLEAR_OUTPUT AM9513_CMD_CLEAR_OUTPUT(AM9513_TIMER2) + +# kernel-isms +define KERNBASE KERNBASE +define USPACE USPACE +define NBPG NBPG +define NBSG NBSG + +# system calls +define SYS_exit SYS_exit +define SYS___sigreturn14 SYS___sigreturn14 +define SYS_compat_13_sigreturn13 SYS_compat_13_sigreturn13 + +# errno-isms +define EFAULT EFAULT +define ENAMETOOLONG ENAMETOOLONG + +# trap types: locore.s includes trap.h + +# +# unix structure-isms +# + +# proc fields and values +define P_FORW offsetof(struct proc, p_forw) +define P_BACK offsetof(struct proc, p_back) +define P_VMSPACE offsetof(struct proc, p_vmspace) +define P_ADDR offsetof(struct proc, p_addr) +define P_PRIORITY offsetof(struct proc, p_priority) +define P_STAT offsetof(struct proc, p_stat) +define P_WCHAN offsetof(struct proc, p_wchan) +define P_FLAG offsetof(struct proc, p_flag) +define P_MDFLAG offsetof(struct proc, p_md.md_flags) +define P_MDREGS offsetof(struct proc, p_md.md_regs) +define SRUN SRUN +define SONPROC SONPROC + +# XXX: HP-UX trace bit? + +# VM/pmap structure fields +define VM_PMAP offsetof(struct vmspace, vm_map.pmap) +define PM_CTXNUM offsetof(struct pmap, pm_ctxnum) + +# pcb offsets +define PCB_FLAGS offsetof(struct pcb, pcb_flags) +define PCB_PS offsetof(struct pcb, pcb_ps) +define PCB_USP offsetof(struct pcb, pcb_usp) +define PCB_REGS offsetof(struct pcb, pcb_regs[0]) +define PCB_ONFAULT offsetof(struct pcb, pcb_onfault) +define PCB_FPCTX offsetof(struct pcb, pcb_fpregs) +define SIZEOF_PCB sizeof(struct pcb) + +# exception frame offset/sizes +define FR_SP offsetof(struct trapframe, tf_regs[15]) +define FR_ADJ offsetof(struct trapframe, tf_stackadj) +define FR_HW offsetof(struct trapframe, tf_sr) +define FR_SIZE sizeof(struct trapframe) + +# FP frame offsets +define FPF_REGS offsetof(struct fpframe, fpf_regs[0]) +define FPF_FPCR offsetof(struct fpframe, fpf_fpcr) + +# SVR4 binary compatibility +ifdef COMPAT_SVR4 +define SVR4_SIGF_HANDLER offsetof(struct svr4_sigframe, sf_handler) +define SVR4_SIGF_UC offsetof(struct svr4_sigframe, sf_uc) +define SVR4_SYS_context SVR4_SYS_context +define SVR4_SYS_exit SVR4_SYS_exit +define SVR4_SETCONTEXT SVR4_SETCONTEXT +endif