diff options
author | phk <phk@FreeBSD.org> | 2003-02-27 08:52:11 +0000 |
---|---|---|
committer | phk <phk@FreeBSD.org> | 2003-02-27 08:52:11 +0000 |
commit | 6fdf4a0bdf8d8fc7104f7efec3d08b4b41e50d0f (patch) | |
tree | 3f224cafab977b5c8bbf32b6aafc2dda79080cba /sys/conf | |
parent | e30134bc39c76d57fc425b3168651ea303ae5a01 (diff) | |
download | FreeBSD-src-6fdf4a0bdf8d8fc7104f7efec3d08b4b41e50d0f.zip FreeBSD-src-6fdf4a0bdf8d8fc7104f7efec3d08b4b41e50d0f.tar.gz |
Add necessary awk magic to create a table of major numbers allocated
in conf/majors so we can avoid autoallocating them in the kernel.
Diffstat (limited to 'sys/conf')
-rw-r--r-- | sys/conf/kern.post.mk | 8 | ||||
-rw-r--r-- | sys/conf/kern.pre.mk | 1 | ||||
-rw-r--r-- | sys/conf/majors.awk | 21 |
3 files changed, 29 insertions, 1 deletions
diff --git a/sys/conf/kern.post.mk b/sys/conf/kern.post.mk index c767097..f1e2ceb 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 <bsd.kern.mk> diff --git a/sys/conf/kern.pre.mk b/sys/conf/kern.pre.mk index acba7f4..63987d6 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 0000000..d9d006d --- /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 "};" + } + |