blob: d22fef125564497a2600c5d5a7e373787e27c24f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
/*--- Boot image definitions ---------------------------------------*/
struct beoboot_header {
char magic[4];
uint8_t arch;
uint8_t flags;
uint16_t cmdline_size;/* length of command line (including null) */
/* The alpha chunk is a backward compatibility hack. The original
* assumption was that integer sizes didn't matter because we
* would never mix architectures. x86_64 + i386 broke that
* assumption. It's fixed for that combination and the future.
* However, alpha needs a little hack now... */
#ifdef __alpha__
unsigned long kernel_size;
unsigned long initrd_size;
#else
uint32_t kernel_size;
uint32_t initrd_size;
#endif
};
#define BEOBOOT_MAGIC "BeoB"
#define BEOBOOT_ARCH_I386 1
#define BEOBOOT_ARCH_ALPHA 2
#define BEOBOOT_ARCH_PPC 3
#define BEOBOOT_ARCH_PPC64 4
#if defined(__i386__) || defined(__x86_64__)
#define BEOBOOT_ARCH BEOBOOT_ARCH_I386
#elif defined(__alpha__)
#define BEOBOOT_ARCH BEOBOOT_ARCH_ALPHA
#elif defined(powerpc)
#define BEOBOOT_ARCH BEOBOOT_ARCH_PPC
#elif defined(__powerpc64__)
#define BEOBOOT_ARCH BEOBOOT_ARCH_PPC64
#else
#error Unsupported architecture.
#endif
#define BEOBOOT_INITRD_PRESENT 1
/*------------------------------------------------------------------*/
|