{ "ramimagedev", "RAM disk image if root is RAM" },
{ "ramsize", "RAM disk size" },
{ "bootdev", "Special name for the boot device" },
+ { "bootdelay", "Delay after loading, before booting (ms)" },
{ "fd0, d0p2, c0d0p1s0", "Devices (as in /dev)" },
{ "image", "Name of the kernel image" },
{ "main", "Startup function" },
void exec_image(char *image)
/* Get a Minix image into core, patch it up and execute. */
{
+ char *delayvalue;
int i;
struct image_header hdr;
char *buf;
raw_copy(aout + i * A_MINHDR, mon2abs(&hdr.process), A_MINHDR);
if (!banner) {
- printf(" cs ds text data bss");
+ printf(" cs ds text data bss");
if (k_flags & K_CHMEM) printf(" stack");
putch('\n');
banner= 1;
a_data+= a_text;
}
- printf("%06lx %06lx %7ld %7ld %7ld",
+ printf("%07lx %07lx %8ld %8ld %8ld",
procp->cs, procp->ds,
hdr.process.a_text, hdr.process.a_data,
hdr.process.a_bss
/* Run the trailer function just before starting Minix. */
if (!run_trailer()) { errno= 0; return; }
+ /* Do delay if wanted. */
+ if((delayvalue = b_value("bootdelay")) != nil > 0) {
+ delay(delayvalue);
+ }
+
/* Translate the boot parameters to what Minix likes best. */
if (!params2params(params, sizeof(params))) { errno= 0; return; }
}
if (talk && !banner) {
- printf(" text data bss size\n");
+ printf(" text data bss size\n");
banner= 1;
}
if (talk) {
- printf("%8ld%8ld%8ld%9ld %s\n",
+ printf(" %8ld %8ld %8ld %9ld %s\n",
phdr->a_text, phdr->a_data, phdr->a_bss,
phdr->a_text + phdr->a_data + phdr->a_bss, proc);
}
if (fclose(imagef) == EOF) fatal(image);
- printf(" ------ ------ ------ -------\n");
- printf("%8ld%8ld%8ld%9ld total\n",
+ printf(" ------ ------ ------ -------\n");
+ printf(" %8ld %8ld %8ld %9ld total\n",
total_text, total_data, total_bss,
total_text + total_data + total_bss);
}