summaryrefslogtreecommitdiffstats
path: root/sys/conf
diff options
context:
space:
mode:
authorphk <phk@FreeBSD.org>2003-02-27 08:52:11 +0000
committerphk <phk@FreeBSD.org>2003-02-27 08:52:11 +0000
commit6fdf4a0bdf8d8fc7104f7efec3d08b4b41e50d0f (patch)
tree3f224cafab977b5c8bbf32b6aafc2dda79080cba /sys/conf
parente30134bc39c76d57fc425b3168651ea303ae5a01 (diff)
downloadFreeBSD-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.mk8
-rw-r--r--sys/conf/kern.pre.mk1
-rw-r--r--sys/conf/majors.awk21
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 "};"
+ }
+
OpenPOWER on IntegriCloud