1
0
mirror of https://git.FreeBSD.org/src.git synced 2025-01-16 15:11:52 +00:00

MFi386: the part of 219452

- bunch of variables are turned into uint8_t.
  - the setting and reading of "fmt" in load() is removed.
  - buf in printf() is made static to save space.
This commit is contained in:
Yoshihiro Takahashi 2011-03-24 15:09:36 +00:00
parent 939f98dd4d
commit 9d55f5499b
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=219960

View File

@ -137,7 +137,7 @@ static const char *kname = NULL;
static uint32_t opts;
static int comspeed = SIOSPD;
static struct bootinfo bootinfo;
static unsigned ioctrl = IO_KEYBOARD;
static uint8_t ioctrl = IO_KEYBOARD;
void exit(int);
static void load(void);
@ -445,9 +445,8 @@ load(void)
static Elf32_Shdr es[2];
caddr_t p;
ino_t ino;
uint32_t addr, x;
uint32_t addr;
int i, j;
uint8_t fmt;
if (!(ino = lookup(kname))) {
if (!ls)
@ -456,15 +455,8 @@ load(void)
}
if (xfsread(ino, &hdr, sizeof(hdr)))
return;
if (N_GETMAGIC(hdr.ex) == ZMAGIC)
fmt = 0;
else if (IS_ELF(hdr.eh))
fmt = 1;
else {
printf("Invalid %s\n", "format");
return;
}
if (fmt == 0) {
if (N_GETMAGIC(hdr.ex) == ZMAGIC) {
addr = hdr.ex.a_entry & 0xffffff;
p = PTOV(addr);
fs_off = PAGE_SIZE;
@ -473,7 +465,7 @@ load(void)
p += roundup2(hdr.ex.a_text, PAGE_SIZE);
if (xfsread(ino, p, hdr.ex.a_data))
return;
} else {
} else if (IS_ELF(hdr.eh)) {
fs_off = hdr.eh.e_phoff;
for (j = i = 0; i < hdr.eh.e_phnum && j < 2; i++) {
if (xfsread(ino, ep + j, sizeof(ep[0])))
@ -505,7 +497,11 @@ load(void)
}
addr = hdr.eh.e_entry & 0xffffff;
bootinfo.bi_esymtab = VTOP(p);
} else {
printf("Invalid %s\n", "format");
return;
}
bootinfo.bi_kernelname = VTOP(kname);
bootinfo.bi_bios_dev = dsk.daua;
__exec((caddr_t)addr, RB_BOOTINFO | (opts & RBX_MASK),
@ -672,7 +668,7 @@ static void
printf(const char *fmt,...)
{
va_list ap;
char buf[10];
static char buf[10];
char *s;
unsigned u;
int c;