projects
/
unix-history
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
tags
|
clone url
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
on uba reset remap already allocated pages
[unix-history]
/
usr
/
src
/
sys
/
vax
/
stand
/
boot.c
diff --git
a/usr/src/sys/vax/stand/boot.c
b/usr/src/sys/vax/stand/boot.c
index
26af1cf
..
a287bf1
100644
(file)
--- a/
usr/src/sys/vax/stand/boot.c
+++ b/
usr/src/sys/vax/stand/boot.c
@@
-1,14
+1,12
@@
-/* boot.c 4.
5 81/11/12
*/
+/* boot.c 4.
7 82/03/07
*/
#include "../h/param.h"
#include "../h/param.h"
-#include "../h/ino.h"
#include "../h/inode.h"
#include "../h/inode.h"
-#include "../h/filsys.h"
-#include "../h/dir.h"
+#include "../h/fs.h"
#include "../h/vm.h"
#include <a.out.h>
#include "saio.h"
#include "../h/vm.h"
#include <a.out.h>
#include "saio.h"
-#include
<sys/reboot.h>
+#include
"../h/reboot.h"
/*
* Boot program... arguments passed in r10 and r11 determine
/*
* Boot program... arguments passed in r10 and r11 determine
@@
-28,6
+26,7
@@
char devname[][2] = {
0,0, /* 7 = mt */
0,0, /* 8 = tu */
'r','a', /* 9 = ra */
0,0, /* 7 = mt */
0,0, /* 8 = tu */
'r','a', /* 9 = ra */
+ 'u', 't', /* 10 = ut */
};
char line[100] = "xx(0,0)vmunix";
};
char line[100] = "xx(0,0)vmunix";
@@
-78,14
+77,19
@@
copyunix(howto, io)
char *addr;
i = read(io, (char *)&x, sizeof x);
char *addr;
i = read(io, (char *)&x, sizeof x);
- if (i != sizeof x || x.a_magic != 0410)
+ if (i != sizeof x ||
+ (x.a_magic != 0407 && x.a_magic != 0413 && x.a_magic != 0410))
_stop("Bad format\n");
printf("%d", x.a_text);
_stop("Bad format\n");
printf("%d", x.a_text);
+ if ((x.a_magic == 0413 || x.a_magic == 0410) &&
+ lseek(io, 0x400, 0) == -1)
+ goto shread;
if (read(io, (char *)0, x.a_text) != x.a_text)
goto shread;
addr = (char *)x.a_text;
if (read(io, (char *)0, x.a_text) != x.a_text)
goto shread;
addr = (char *)x.a_text;
- while ((int)addr & CLOFSET)
- *addr++ = 0;
+ if (x.a_magic == 0413 || x.a_magic == 0410)
+ while ((int)addr & CLOFSET)
+ *addr++ = 0;
printf("+%d", x.a_data);
if (read(io, addr, x.a_data) != x.a_data)
goto shread;
printf("+%d", x.a_data);
if (read(io, addr, x.a_data) != x.a_data)
goto shread;