From 76d6aef572ff1834fa5cf146861c1da40a5b1529 Mon Sep 17 00:00:00 2001 From: Poul-Henning Kamp Date: Thu, 27 Feb 2003 08:52:11 +0000 Subject: [PATCH] Add necessary awk magic to create a table of major numbers allocated in conf/majors so we can avoid autoallocating them in the kernel. --- sys/conf/kern.post.mk | 8 +++++++- sys/conf/kern.pre.mk | 1 + sys/conf/majors.awk | 21 +++++++++++++++++++++ 3 files changed, 29 insertions(+), 1 deletion(-) create mode 100644 sys/conf/majors.awk diff --git a/sys/conf/kern.post.mk b/sys/conf/kern.post.mk index c76709727caa..f1e2ceb16950 100644 --- a/sys/conf/kern.post.mk +++ b/sys/conf/kern.post.mk @@ -72,7 +72,7 @@ tlphy.o xmphy.o: miidevs.h kernel-clean: rm -f *.o *.so *.So *.ko *.s eddep errs \ ${FULLKERNEL} ${KERNEL_KO} linterrs makelinks tags \ - vers.c vnode_if.c vnode_if.h \ + vers.c vnode_if.c vnode_if.h majors.c \ ${MFILES:T:S/.m$/.c/} ${MFILES:T:S/.m$/.h/} \ ${CLEAN} @@ -215,4 +215,10 @@ vnode_if.h: $S/tools/vnode_if.awk $S/kern/vnode_if.src vnode_if.o: ${NORMAL_C} +majors.c: $S/conf/majors $S/conf/majors.awk + ${AWK} -f $S/conf/majors.awk $S/conf/majors > majors.c + +majors.o: + ${NORMAL_C} + .include diff --git a/sys/conf/kern.pre.mk b/sys/conf/kern.pre.mk index acba7f47e297..63987d69a1ec 100644 --- a/sys/conf/kern.pre.mk +++ b/sys/conf/kern.pre.mk @@ -67,6 +67,7 @@ SYSTEM_CFILES= vnode_if.c hints.c env.c config.c SYSTEM_SFILES= $S/$M/$M/locore.s SYSTEM_DEP= Makefile ${SYSTEM_OBJS} SYSTEM_OBJS= locore.o vnode_if.o ${OBJS} hints.o env.o config.o hack.So +SYSTEM_OBJS+= majors.o SYSTEM_LD= @${LD} ${FMT} -Bdynamic -T $S/conf/ldscript.$M \ -warn-common -export-dynamic -dynamic-linker /red/herring \ -o ${.TARGET} -X ${SYSTEM_OBJS} vers.o diff --git a/sys/conf/majors.awk b/sys/conf/majors.awk new file mode 100644 index 000000000000..d9d006de6d78 --- /dev/null +++ b/sys/conf/majors.awk @@ -0,0 +1,21 @@ +# $FreeBSD$ +/^#/ { next } +NF == 1 { next } +$2 == "??" { next } +$2 == "lkm" { next } + { + a[$1] = $1; + } +END { + print "unsigned char reserved_majors[256] = {" + for (i = 0; i < 256; i += 16) { + for (j = 0; j < 16; j++) { + printf("%3d", a[i + j]); + if (i + j != 255) + printf(","); + } + print "" + } + print "};" + } +