summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorgene <gene@cvs.openbsd.org>1997-04-18 17:29:52 +0000
committergene <gene@cvs.openbsd.org>1997-04-18 17:29:52 +0000
commit241de840b2b9f7ad68ac14c5a109a26b093e0b4b (patch)
tree85712da6f65883ce20b5c2eb681fae99e566e4b7
parented7c36a6d4075707ab9e1a1fd688d12f025b5dae (diff)
Use genassym.cf and a shell script to build assym.h. This helps
cross-compiling a lot. Queue taken from Scott Reynolds.
-rw-r--r--sys/arch/mac68k/conf/Makefile.mac68k23
-rw-r--r--sys/arch/mac68k/mac68k/genassym.c202
-rw-r--r--sys/arch/mac68k/mac68k/genassym.cf185
3 files changed, 196 insertions, 214 deletions
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 <sys/param.h>
-#include <sys/buf.h>
-#include <sys/proc.h>
-#include <sys/mbuf.h>
-#include <sys/msgbuf.h>
-#include <sys/syscall.h>
-#include <sys/systm.h>
-#include <sys/types.h>
-#include <sys/user.h>
-
-#include <vm/vm.h>
-
-#include <machine/cpu.h>
-#include <machine/trap.h>
-#include <machine/psl.h>
-#include <machine/reg.h>
-#include <machine/pte.h>
-
-#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 <sys/param.h>
+include <sys/buf.h>
+include <sys/proc.h>
+include <sys/mbuf.h>
+include <sys/msgbuf.h>
+include <sys/syscall.h>
+include <sys/systm.h>
+include <sys/types.h>
+include <sys/user.h>
+
+include <vm/vm.h>
+
+include <machine/cpu.h>
+include <machine/trap.h>
+include <machine/psl.h>
+include <machine/reg.h>
+include <machine/pte.h>
+
+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