From d5eefe586e35b8f13bd638edd679ff124431624e Mon Sep 17 00:00:00 2001 From: gene Date: Fri, 18 Apr 1997 17:29:50 +0000 Subject: [PATCH] Use genassym.cf and a shell script to build assym.h. This helps cross-compiling a lot. Queue taken from Scott Reynolds. --- sys/arch/mac68k/conf/Makefile.mac68k | 23 ++- sys/arch/mac68k/mac68k/genassym.c | 202 --------------------------- sys/arch/mac68k/mac68k/genassym.cf | 185 ++++++++++++++++++++++++ 3 files changed, 196 insertions(+), 214 deletions(-) delete mode 100644 sys/arch/mac68k/mac68k/genassym.c create mode 100644 sys/arch/mac68k/mac68k/genassym.cf diff --git a/sys/arch/mac68k/conf/Makefile.mac68k b/sys/arch/mac68k/conf/Makefile.mac68k index c24ef36b5b4..54c158bc36c 100644 --- a/sys/arch/mac68k/conf/Makefile.mac68k +++ b/sys/arch/mac68k/conf/Makefile.mac68k @@ -1,5 +1,5 @@ -# $OpenBSD: Makefile.mac68k,v 1.12 1997/01/24 01:35:25 briggs Exp $ -# $NetBSD: Makefile.mac68k,v 1.47 1997/01/13 07:06:51 scottr Exp $ +# $OpenBSD: Makefile.mac68k,v 1.13 1997/04/18 17:29:50 gene Exp $ +# $NetBSD: Makefile.mac68k,v 1.53 1997/04/15 06:11:38 scottr Exp $ # Makefile for NetBSD # @@ -106,14 +106,10 @@ LINKFLAGS+= -S %LOAD -assym.h: genassym - ./genassym >assym.h - -genassym: genassym.o - ${CC} -o $@ genassym.o - -genassym.o: ${MAC68K}/mac68k/genassym.c - ${HOSTED_C_C} +assym.h: $S/kern/genassym.sh ${MAC68K}/mac68k/genassym.cf + sh $S/kern/genassym.sh ${CC} ${CFLAGS} ${CPPFLAGS} ${PROF} \ + < ${MAC68K}/mac68k/genassym.cf > assym.h.tmp && \ + mv -f assym.h.tmp assym.h param.c: $S/conf/param.c rm -f param.c @@ -132,7 +128,7 @@ newvers: ${SYSTEM_DEP} ${SYSTEM_SWAP_DEP} clean:: rm -f eddep *bsd bsd.gdb tags *.[io] [a-z]*.s \ - [Ee]rrs linterrs makelinks genassym genassym.o assym.h + [Ee]rrs linterrs makelinks assym.h.tmp assym.h lint: @lint -hbxncez -DGENERIC -Dvolatile= ${CPPFLAGS} ${PARAM} -UKGDB \ @@ -158,7 +154,10 @@ depend:: .depend ${MKDEP} ${AFLAGS} ${CPPFLAGS} ${MAC68K}/mac68k/locore.s ${MKDEP} -a ${CFLAGS} ${CPPFLAGS} param.c ioconf.c ${CFILES} ${MKDEP} -a ${AFLAGS} ${CPPFLAGS} ${SFILES} - ${MKDEP} -a ${CFLAGS} ${CPPFLAGS} ${PARAM} ${MAC68K}/mac68k/genassym.c + -if test -n "${SFILES}"; then \ + ${MKDEP} -a ${AFLAGS} ${CPPFLAGS} ${SFILES}; \ + fi + # depend on root or device configuration diff --git a/sys/arch/mac68k/mac68k/genassym.c b/sys/arch/mac68k/mac68k/genassym.c deleted file mode 100644 index 2ed8eeef26a..00000000000 --- a/sys/arch/mac68k/mac68k/genassym.c +++ /dev/null @@ -1,202 +0,0 @@ -/* $OpenBSD: genassym.c,v 1.5 1997/01/24 01:35:46 briggs Exp $ */ -/* $NetBSD: genassym.c,v 1.22 1997/01/09 07:14:17 scottr Exp $ */ - -/* - * Copyright (c) 1990 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. - * - * @(#)genassym.c 7.8 (Berkeley) 5/7/91 - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include - -#include -#include -#include -#include -#include - -#include "clockreg.h" - -int -main(void) -{ - register struct proc *p = (struct proc *)0; - register struct mdproc *mdproc = (struct mdproc *)0; - register struct vmmeter *vm = (struct vmmeter *)0; - register struct user *up = (struct user *)0; - register struct rusage *rup = (struct rusage *)0; - register struct frame *frame = (struct frame *)0; - struct vmspace *vms = (struct vmspace *)0; - pmap_t pmap = (pmap_t)0; - struct pcb *pcb = (struct pcb *)0; - - printf("#define\tP_FORW %p\n", &p->p_forw); - printf("#define\tP_BACK %p\n", &p->p_back); - printf("#define\tP_VMSPACE %p\n", &p->p_vmspace); - printf("#define\tP_ADDR %p\n", &p->p_addr); - printf("#define\tP_MD %p\n", &p->p_md); - printf("#define\tP_PID %p\n", &p->p_pid); - printf("#define\tP_PRIORITY %p\n", &p->p_priority); - printf("#define\tP_STAT %p\n", &p->p_stat); - printf("#define\tP_WCHAN %p\n", &p->p_wchan); - printf("#define\tP_FLAG %p\n", &p->p_flag); - printf("#define\tP_MD_REGS %p\n", &p->p_md.md_regs); - printf("#define\tP_MD_FLAGS %p\n", &p->p_md.md_flags); - printf("#define\tSSLEEP %d\n", SSLEEP); - printf("#define\tSRUN %d\n", SRUN); - - printf("#define\tMD_REGS %p\n", &mdproc->md_regs); - - printf("#define\tPM_STCHG %p\n", &pmap->pm_stchanged); - - printf("#define\tVM_PMAP %p\n", &vms->vm_pmap); - printf("#define\tV_SWTCH %p\n", &vm->v_swtch); - printf("#define\tV_TRAP %p\n", &vm->v_trap); - printf("#define\tV_SYSCALL %p\n", &vm->v_syscall); - printf("#define\tV_INTR %p\n", &vm->v_intr); - printf("#define\tV_SOFT %p\n", &vm->v_soft); - - printf("#define\tUPAGES %d\n", UPAGES); - printf("#define\tUSPACE %d\n", USPACE); - printf("#define\tP1PAGES %d\n", P1PAGES); - printf("#define\tCLSIZE %d\n", CLSIZE); - printf("#define\tNBPG %d\n", NBPG); - printf("#define\tNPTEPG %d\n", NPTEPG); - printf("#define\tPGSHIFT %d\n", PGSHIFT); - printf("#define\tSYSPTSIZE %d\n", SYSPTSIZE); - printf("#define\tUSRPTSIZE %d\n", USRPTSIZE); - printf("#define\tUSRIOSIZE %d\n", USRIOSIZE); - printf("#define\tUSRSTACK %d\n", USRSTACK); - - printf("#define\tMSGBUFPTECNT %d\n", btoc(sizeof (struct msgbuf))); - printf("#define\tNMBCLUSTERS %d\n", NMBCLUSTERS); - printf("#define\tMCLBYTES %d\n", MCLBYTES); - printf("#define\tNKMEMCLUSTERS %d\n", NKMEMCLUSTERS); - -#ifdef SYSVSHM - printf("#define\tSHMMAXPGS %d\n", SHMMAXPGS); -#endif - printf("#define\tU_PROF %p\n", &up->u_stats.p_prof); - printf("#define\tU_PROFSCALE %p\n", &up->u_stats.p_prof.pr_scale); - printf("#define\tRU_MINFLT %p\n", &rup->ru_minflt); - - printf("#define\tT_BUSERR %d\n", T_BUSERR); - printf("#define\tT_ADDRERR %d\n", T_ADDRERR); - printf("#define\tT_ILLINST %d\n", T_ILLINST); - printf("#define\tT_ZERODIV %d\n", T_ZERODIV); - printf("#define\tT_CHKINST %d\n", T_CHKINST); - printf("#define\tT_TRAPVINST %d\n", T_TRAPVINST); - printf("#define\tT_PRIVINST %d\n", T_PRIVINST); - printf("#define\tT_TRACE %d\n", T_TRACE); - printf("#define\tT_MMUFLT %d\n", T_MMUFLT); - printf("#define\tT_SSIR %d\n", T_SSIR); - printf("#define\tT_FMTERR %d\n", T_FMTERR); - printf("#define\tT_COPERR %d\n", T_COPERR); - printf("#define\tT_FPERR %d\n", T_FPERR); - printf("#define\tT_ASTFLT %d\n", T_ASTFLT); - printf("#define\tT_TRAP15 %d\n", T_TRAP15); - printf("#define\tT_FPEMULI %d\n", T_FPEMULI); - printf("#define\tT_FPEMULD %d\n", T_FPEMULD); - - printf("#define\tPSL_S %d\n", PSL_S); - printf("#define\tPSL_IPL7 %d\n", PSL_IPL7); - printf("#define\tPSL_LOWIPL %d\n", PSL_LOWIPL); - printf("#define\tPSL_HIGHIPL %d\n", PSL_HIGHIPL); - printf("#define\tPSL_USER %d\n", PSL_USER); - printf("#define\tSPL1 %d\n", PSL_S | PSL_IPL1); - printf("#define\tSPL2 %d\n", PSL_S | PSL_IPL2); - printf("#define\tSPL3 %d\n", PSL_S | PSL_IPL3); - printf("#define\tSPL4 %d\n", PSL_S | PSL_IPL4); - printf("#define\tSPL5 %d\n", PSL_S | PSL_IPL5); - printf("#define\tSPL6 %d\n", PSL_S | PSL_IPL6); - - printf("#define\tFC_USERD %d\n", FC_USERD); - printf("#define\tFC_SUPERD %d\n", FC_SUPERD); - - printf("#define\tCACHE_ON %d\n", CACHE_ON); - printf("#define\tCACHE_OFF %d\n", CACHE_OFF); - printf("#define\tCACHE_CLR %d\n", CACHE_CLR); - printf("#define\tCACHE40_ON %d\n", CACHE40_ON); - printf("#define\tCACHE40_OFF %d\n", CACHE40_OFF); - printf("#define\tIC_CLEAR %d\n", IC_CLEAR); - printf("#define\tDC_CLEAR %d\n", DC_CLEAR); - - printf("#define\tPG_FRAME %d\n", PG_FRAME); - - printf("#define\tSIZEOF_PCB %d\n", sizeof(struct pcb)); - printf("#define\tPCB_FLAGS %p\n", &pcb->pcb_flags); - printf("#define\tPCB_PS %p\n", &pcb->pcb_ps); - printf("#define\tPCB_USTP %p\n", &pcb->pcb_ustp); - printf("#define\tPCB_USP %p\n", &pcb->pcb_usp); - printf("#define\tPCB_REGS %p\n", pcb->pcb_regs); - printf("#define\tPCB_ONFAULT %p\n", &pcb->pcb_onfault); - printf("#define\tPCB_FPCTX %p\n", &pcb->pcb_fpregs); - printf("#define\tPCB_TRCB %d\n", 5); - - printf("#define\tFR_SP %p\n", &frame->f_regs[15]); - printf("#define\tFR_HW %p\n", &frame->f_sr); - printf("#define\tFR_ADJ %p\n", &frame->f_stackadj); - - printf("#define\tB_READ %d\n", B_READ); - - printf("#define\tENOENT %d\n", ENOENT); - printf("#define\tEFAULT %d\n", EFAULT); - printf("#define\tENAMETOOLONG %d\n", ENAMETOOLONG); - - printf("#define\tSYS_exit %d\n", SYS_exit); - printf("#define\tSYS_execve %d\n", SYS_execve); - printf("#define\tSYS_sigreturn %d\n", SYS_sigreturn); - - printf("#define\tCPU_68020 %d\n", CPU_68020); - printf("#define\tCPU_68030 %d\n", CPU_68030); - printf("#define\tCPU_68040 %d\n", CPU_68040); - - printf("#define\tMMU_68851 %d\n", MMU_68851); - printf("#define\tMMU_68030 %d\n", MMU_68030); - printf("#define\tMMU_68040 %d\n", MMU_68040); - - printf("#define\tFPU_68881 %d\n", FPU_68881); - printf("#define\tFPU_68882 %d\n", FPU_68882); - printf("#define\tFPU_68040 %d\n", FPU_68040); - - exit(0); -} diff --git a/sys/arch/mac68k/mac68k/genassym.cf b/sys/arch/mac68k/mac68k/genassym.cf new file mode 100644 index 00000000000..ceca7f07d51 --- /dev/null +++ b/sys/arch/mac68k/mac68k/genassym.cf @@ -0,0 +1,185 @@ +# $OpenBSD: genassym.cf,v 1.1 1997/04/18 17:29:51 gene Exp $ +# $NetBSD: genassym.cf,v 1.1 1997/04/15 06:11:40 scottr Exp $ + +# +# Copyright (c) 1990 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. +# +# @(#)genassym.c 7.8 (Berkeley) 5/7/91 +# + +include +include +include +include +include +include +include +include +include + +include + +include +include +include +include +include + +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_MD offsetof(struct proc, p_md) +define P_PID offsetof(struct proc, p_pid) +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_MD_REGS offsetof(struct proc, p_md.md_regs) +define P_MD_FLAGS offsetof(struct proc, p_md.md_flags) +define SSLEEP SSLEEP +define SRUN SRUN + +define MD_REGS offsetof(struct mdproc, md_regs) + +define PM_STCHG offsetof(struct pmap, pm_stchanged) + +define VM_PMAP offsetof(struct vmspace, vm_pmap) +define V_SWTCH offsetof(struct vmmeter, v_swtch) +define V_TRAP offsetof(struct vmmeter, v_trap) +define V_SYSCALL offsetof(struct vmmeter, v_syscall) +define V_INTR offsetof(struct vmmeter, v_intr) +define V_SOFT offsetof(struct vmmeter, v_soft) + +define UPAGES UPAGES +define USPACE USPACE +define P1PAGES P1PAGES +define CLSIZE CLSIZE +define NBPG NBPG +define NPTEPG NPTEPG +define PGSHIFT PGSHIFT +define SYSPTSIZE SYSPTSIZE +define USRPTSIZE USRPTSIZE +define USRIOSIZE USRIOSIZE +define USRSTACK USRSTACK + +define MSGBUFPTECNT btoc(sizeof (struct msgbuf)) +define NMBCLUSTERS NMBCLUSTERS +define MCLBYTES MCLBYTES +define NKMEMCLUSTERS NKMEMCLUSTERS + +quote #ifdef SYSVSHM +define SHMMAXPGS SHMMAXPGS +quote #endif + +define U_PROF offsetof(struct user, u_stats.p_prof) +define U_PROFSCALE offsetof(struct user, u_stats.p_prof.pr_scale) +define RU_MINFLT offsetof(struct rusage, ru_minflt) + +define T_BUSERR T_BUSERR +define T_ADDRERR T_ADDRERR +define T_ILLINST T_ILLINST +define T_ZERODIV T_ZERODIV +define T_CHKINST T_CHKINST +define T_TRAPVINST T_TRAPVINST +define T_PRIVINST T_PRIVINST +define T_TRACE T_TRACE +define T_MMUFLT T_MMUFLT +define T_SSIR T_SSIR +define T_FMTERR T_FMTERR +define T_COPERR T_COPERR +define T_FPERR T_FPERR +define T_ASTFLT T_ASTFLT +define T_TRAP15 T_TRAP15 +define T_FPEMULI T_FPEMULI +define T_FPEMULD T_FPEMULD + +define PSL_S PSL_S +define PSL_IPL7 PSL_IPL7 +define PSL_LOWIPL PSL_LOWIPL +define PSL_HIGHIPL PSL_HIGHIPL +define PSL_USER PSL_USER +define SPL1 (PSL_S | PSL_IPL1) +define SPL2 (PSL_S | PSL_IPL2) +define SPL3 (PSL_S | PSL_IPL3) +define SPL4 (PSL_S | PSL_IPL4) +define SPL5 (PSL_S | PSL_IPL5) +define SPL6 (PSL_S | PSL_IPL6) + +define FC_USERD FC_USERD +define FC_SUPERD FC_SUPERD + +define CACHE_ON CACHE_ON +define CACHE_OFF CACHE_OFF +define CACHE_CLR CACHE_CLR +define CACHE40_ON CACHE40_ON +define CACHE40_OFF CACHE40_OFF +define IC_CLEAR IC_CLEAR +define DC_CLEAR DC_CLEAR + +define PG_FRAME PG_FRAME + +define SIZEOF_PCB sizeof(struct pcb) +define PCB_FLAGS offsetof(struct pcb, pcb_flags) +define PCB_PS offsetof(struct pcb, pcb_ps) +define PCB_USTP offsetof(struct pcb, pcb_ustp) +define PCB_USP offsetof(struct pcb, pcb_usp) +define PCB_REGS offsetof(struct pcb, pcb_regs) +define PCB_ONFAULT offsetof(struct pcb, pcb_onfault) +define PCB_FPCTX offsetof(struct pcb, pcb_fpregs) +define PCB_TRCB 5 + +define FR_SP offsetof(struct frame, f_regs[15]) +define FR_HW offsetof(struct frame, f_sr) +define FR_ADJ offsetof(struct frame, f_stackadj) + +define B_READ B_READ + +define ENOENT ENOENT +define EFAULT EFAULT +define ENAMETOOLONG ENAMETOOLONG + +define SYS_exit SYS_exit +define SYS_execve SYS_execve +define SYS_sigreturn SYS_sigreturn + +define CPU_68020 CPU_68020 +define CPU_68030 CPU_68030 +define CPU_68040 CPU_68040 + +define MMU_68851 MMU_68851 +define MMU_68030 MMU_68030 +define MMU_68040 MMU_68040 + +define FPU_68881 FPU_68881 +define FPU_68882 FPU_68882 +define FPU_68040 FPU_68040 -- 2.20.1