summaryrefslogtreecommitdiffstats
path: root/kexec/arch/m68k/bootinfo.h
blob: bb8a03ad111ad09d89092a6b55e0e0f4be3ebb73 (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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#include <asm/bootinfo.h>

#define DEFAULT_BOOTINFO_FILE	"/proc/bootinfo"
#define MAX_BOOTINFO_SIZE	1536

/* New in 6.2's <asm/bootinfo.h>. Remove once 6.2 is baseline version. */
#ifndef BI_RNG_SEED
#define BI_RNG_SEED             0x0008
#endif


    /*
     *  Convenience overlay of several struct bi_record variants
     */

struct bi_rec {
	__be16 tag;
	__be16 size;
	union {
		__be32 data[0];
		/* shorthands for the types we use */
		__be32 machtype;
		struct {
			__be32 addr;
			__be32 size;
		} mem_info;
		char string[0];
		struct {
			__be16 len;
			__u8 data[0];
		} rng_seed;
	};
};


    /*
     *  We only support the "new" tagged bootinfo (v2)
     */

#define SUPPORTED_BOOTINFO_VERSION	2


extern const char *bootinfo_file;

extern void bootinfo_load(void);
extern void bootinfo_print(void);
extern int bootinfo_get_memory_ranges(struct memory_range **range);
extern void bootinfo_set_cmdline(const char *cmdline);
extern void bootinfo_set_ramdisk(unsigned long ramdisk_addr,
				 unsigned long ramdisk_size);
extern void bootinfo_add_rng_seed(void);
extern void bootinfo_check_bootversion(const struct kexec_info *info);
extern void add_bootinfo(struct kexec_info *info, unsigned long addr);