xref: /netbsd-src/sys/arch/usermode/include/genheaders.sh (revision 98845911c0892e304b61813c96442a0fa0913d7c)
124f1db74Sjmcneill#!/bin/sh
224f1db74Sjmcneill#
324f1db74Sjmcneill# Public domain
424f1db74Sjmcneill#
524f1db74Sjmcneill
624f1db74SjmcneillHDRS="asm.h"
724f1db74SjmcneillHDRS="$HDRS bswap.h"
824f1db74SjmcneillHDRS="$HDRS byte_swap.h"
924f1db74SjmcneillHDRS="$HDRS disklabel.h"
1024f1db74SjmcneillHDRS="$HDRS elf_machdep.h"
1124f1db74SjmcneillHDRS="$HDRS endian.h"
1224f1db74SjmcneillHDRS="$HDRS endian_machdep.h"
1324f1db74SjmcneillHDRS="$HDRS int_const.h"
1424f1db74SjmcneillHDRS="$HDRS int_fmtio.h"
1524f1db74SjmcneillHDRS="$HDRS int_limits.h"
1624f1db74SjmcneillHDRS="$HDRS int_mwgwtypes.h"
1724f1db74SjmcneillHDRS="$HDRS int_types.h"
1824f1db74SjmcneillHDRS="$HDRS limits.h"
1924f1db74SjmcneillHDRS="$HDRS netbsd32_machdep.h"
2024f1db74SjmcneillHDRS="$HDRS param.h"
2124f1db74SjmcneillHDRS="$HDRS ptrace.h"
2224f1db74SjmcneillHDRS="$HDRS wchar_limits.h"
231a5b6733SreinoudHDRS="$HDRS cdefs.h"
247dc3fd8fSreinoudHDRS="$HDRS mcontext.h"
257dc3fd8fSreinoudHDRS="$HDRS frame_regs.h"
26*98845911SreinoudHDRS="$HDRS cpufunc.h"
2724f1db74Sjmcneill
2824f1db74Sjmcneillfor hdr in ${HDRS}; do
2924f1db74Sjmcneill	G="_USERMODE_$(echo ${hdr} | sed 's/\./_/g' | tr [a-z] [A-Z])"
3024f1db74Sjmcneill
3124f1db74Sjmcneill	cat > ${hdr} << EOF
3224f1db74Sjmcneill/* \$NetBSD\$ */
3324f1db74Sjmcneill
3424f1db74Sjmcneill/*
3524f1db74Sjmcneill * Automatically generated by $0 on $(date)
3624f1db74Sjmcneill * Do not modify directly!
3724f1db74Sjmcneill */
3824f1db74Sjmcneill#ifndef $G
3924f1db74Sjmcneill#define $G
4024f1db74Sjmcneill
4124f1db74Sjmcneill#if defined(__i386__)
4224f1db74Sjmcneill#include "../../i386/include/${hdr}"
4324f1db74Sjmcneill#elif defined(__x86_64__)
4424f1db74Sjmcneill#include "../../amd64/include/${hdr}"
45308ee516Sjmcneill#elif defined(__arm__)
46308ee516Sjmcneill#include "../../arm/include/${hdr}"
4724f1db74Sjmcneill#else
4824f1db74Sjmcneill#error port me
4924f1db74Sjmcneill#endif
5024f1db74SjmcneillEOF
5124f1db74Sjmcneill
5224f1db74Sjmcneill	# header specific quirks
5324f1db74Sjmcneill	if [ "$hdr" = "disklabel.h" ]; then
549e1caf3aSjmcneill		echo "#include <machine/types.h>" >> ${hdr}
559e1caf3aSjmcneill		echo "#ifndef __HAVE_OLD_DISKLABEL" >> ${hdr}
5624f1db74Sjmcneill		echo "#undef DISKUNIT" >> ${hdr}
5724f1db74Sjmcneill		echo "#undef DISKPART" >> ${hdr}
5824f1db74Sjmcneill		echo "#undef DISKMINOR" >> ${hdr}
599e1caf3aSjmcneill		echo "#endif" >> ${hdr}
6024f1db74Sjmcneill	elif [ "$hdr" = "ptrace.h" ]; then
6124f1db74Sjmcneill		echo "#undef __HAVE_PTRACE_MACHDEP" >> ${hdr}
6224f1db74Sjmcneill		echo "#undef __HAVE_PROCFS_MACHDEP" >> ${hdr}
63dac37bf7Sjmcneill	elif [ "$hdr" = "param.h" ]; then
64308ee516Sjmcneill		cat >> ${hdr} << EOF
65308ee516Sjmcneill#ifdef __arm__
66308ee516Sjmcneill#define MACHINE "evbarm"
67308ee516Sjmcneill#define PGSHIFT 12
68308ee516Sjmcneill#define NBPG (1 << PGSHIFT)
69308ee516Sjmcneill#define PGOFSET (NBPG - 1)
70308ee516Sjmcneill#define NKMEMPAGES_MIN_DEFAULT  ((8 * 1024 * 1024) >> PAGE_SHIFT)
71308ee516Sjmcneill#endif
72308ee516SjmcneillEOF
739e1caf3aSjmcneill		echo "#undef UPAGES" >> ${hdr}
74ab30bde8Sreinoud		echo "#define UPAGES 12" >> ${hdr}
75dac37bf7Sjmcneill		echo "#undef USPACE" >> ${hdr}
769e1caf3aSjmcneill		echo "#define USPACE (PAGE_SIZE*UPAGES)" >> ${hdr}
77b2bd15f5Sreinoud		echo "" >> ${hdr}
78b2bd15f5Sreinoud		echo "#undef NKMEMPAGES_MAX_UNLIMITED" >> ${hdr}
79b2bd15f5Sreinoud		echo "#include \"opt_kmempages.h\"" >> ${hdr}
80308ee516Sjmcneill		echo "" >> ${hdr}
81308ee516Sjmcneill	elif [ "$hdr" = "elf_machdep.h" ]; then
82308ee516Sjmcneill		echo "#ifdef ELF_MD_PROBE_FUNC" >> ${hdr}
83308ee516Sjmcneill		echo "#undef ELF_MD_PROBE_FUNC" >> ${hdr}
84308ee516Sjmcneill		echo "#endif" >> ${hdr}
8524f1db74Sjmcneill	fi
8624f1db74Sjmcneill
8724f1db74Sjmcneill	echo >>${hdr}
8824f1db74Sjmcneill	echo "#endif" >> ${hdr}
8924f1db74Sjmcneilldone
90