23 |
#include <pupa/machine/memory.h> |
#include <pupa/machine/memory.h> |
24 |
#include <pupa/machine/console.h> |
#include <pupa/machine/console.h> |
25 |
#include <pupa/machine/biosdisk.h> |
#include <pupa/machine/biosdisk.h> |
26 |
|
#include <pupa/machine/kernel.h> |
27 |
#include <pupa/types.h> |
#include <pupa/types.h> |
28 |
#include <pupa/err.h> |
#include <pupa/err.h> |
29 |
|
#include <pupa/dl.h> |
30 |
|
#include <pupa/misc.h> |
31 |
|
|
32 |
|
static char * |
33 |
|
make_install_device (void) |
34 |
|
{ |
35 |
|
/* XXX: This should be enough. */ |
36 |
|
char dev[100]; |
37 |
|
|
38 |
|
pupa_sprintf (dev, "(%cd%u", |
39 |
|
(pupa_boot_drive & 0x80) ? 'h' : 'f', |
40 |
|
pupa_boot_drive & 0x7f); |
41 |
|
|
42 |
|
if (pupa_install_dos_part >= 0) |
43 |
|
pupa_sprintf (dev + pupa_strlen (dev), ",%u", pupa_install_dos_part); |
44 |
|
|
45 |
|
if (pupa_install_bsd_part >= 0) |
46 |
|
pupa_sprintf (dev + pupa_strlen (dev), ",%c", pupa_install_bsd_part + 'a'); |
47 |
|
|
48 |
|
pupa_sprintf (dev + pupa_strlen (dev), ")%s", pupa_prefix); |
49 |
|
pupa_strcpy (pupa_prefix, dev); |
50 |
|
|
51 |
|
return pupa_prefix; |
52 |
|
} |
53 |
|
|
54 |
void |
void |
55 |
pupa_machine_init (void) |
pupa_machine_init (void) |
137 |
|
|
138 |
/* The memory system was initialized, thus register built-in devices. */ |
/* The memory system was initialized, thus register built-in devices. */ |
139 |
pupa_biosdisk_init (); |
pupa_biosdisk_init (); |
140 |
|
|
141 |
|
/* Initialize the prefix. */ |
142 |
|
pupa_dl_set_prefix (make_install_device ()); |
143 |
} |
} |