summaryrefslogtreecommitdiffstats
path: root/sys/kern/sys_generic.c
diff options
context:
space:
mode:
authorphk <phk@FreeBSD.org>2002-04-04 20:34:48 +0000
committerphk <phk@FreeBSD.org>2002-04-04 20:34:48 +0000
commit38f498fe43ea5f40a284797ebdbe58e525227a99 (patch)
tree1410c4b3970b96cc00456831f60161ca3e02a9c4 /sys/kern/sys_generic.c
parent0f8b0dba50c96a459b254917e1b88c44d518cdea (diff)
downloadFreeBSD-src-38f498fe43ea5f40a284797ebdbe58e525227a99.zip
FreeBSD-src-38f498fe43ea5f40a284797ebdbe58e525227a99.tar.gz
Delete the bogus d_boot[01] fields from struct disklabel.
This shrinks the size 4 bytes on alpha, down to the same 276 bytes as all other platforms. Construct a hack to make old ioctls work on new kernels. Once world is recompiled only the new and correct sysctls will be used. This hack will become annoying around 1st of may to make people rebuild their worlds and it will be gone before 5.0.
Diffstat (limited to 'sys/kern/sys_generic.c')
-rw-r--r--sys/kern/sys_generic.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/sys/kern/sys_generic.c b/sys/kern/sys_generic.c
index 77cb46d..196be5a 100644
--- a/sys/kern/sys_generic.c
+++ b/sys/kern/sys_generic.c
@@ -62,6 +62,9 @@
#include <sys/bio.h>
#include <sys/buf.h>
#include <sys/condvar.h>
+#ifdef __alpha__
+#include <sys/disklabel.h>
+#endif
#ifdef KTRACE
#include <sys/ktrace.h>
#endif
@@ -648,6 +651,17 @@ ioctl(td, uap)
*(caddr_t *)data = uap->data;
}
+#ifdef __alpha__
+ if (com == DIOCGDINFO_ALPHAHACK)
+ com = DIOCGDINFO;
+ if (com == DIOCSDINFO_ALPHAHACK)
+ com = DIOCSDINFO;
+ if (com == DIOCWDINFO_ALPHAHACK)
+ com = DIOCWDINFO;
+ if (com == DIOCGDVIRGIN_ALPHAHACK)
+ com = DIOCGDVIRGIN;
+#endif
+
switch (com) {
case FIONBIO:
OpenPOWER on IntegriCloud