Merge master.kernel.org:/home/rmk/linux-2.6-arm
[linux-2.6] / include / asm-ppc / bootinfo.h
1 /*
2  * Non-machine dependent bootinfo structure.  Basic idea
3  * borrowed from the m68k.
4  *
5  * Copyright (C) 1999 Cort Dougan <cort@ppc.kernel.org>
6  */
7
8 #ifdef __KERNEL__
9 #ifndef _PPC_BOOTINFO_H
10 #define _PPC_BOOTINFO_H
11
12 #include <linux/config.h>
13 #include <asm/page.h>
14
15 #if defined(CONFIG_APUS) && !defined(__BOOTER__)
16 #include <asm-m68k/bootinfo.h>
17 #else
18
19 struct bi_record {
20         unsigned long tag;              /* tag ID */
21         unsigned long size;             /* size of record (in bytes) */
22         unsigned long data[0];          /* data */
23 };
24
25 #define BI_FIRST                0x1010  /* first record - marker */
26 #define BI_LAST                 0x1011  /* last record - marker */
27 #define BI_CMD_LINE             0x1012
28 #define BI_BOOTLOADER_ID        0x1013
29 #define BI_INITRD               0x1014
30 #define BI_SYSMAP               0x1015
31 #define BI_MACHTYPE             0x1016
32 #define BI_MEMSIZE              0x1017
33 #define BI_BOARD_INFO           0x1018
34
35 extern struct bi_record *find_bootinfo(void);
36 extern void bootinfo_init(struct bi_record *rec);
37 extern void bootinfo_append(unsigned long tag, unsigned long size, void * data);
38 extern void parse_bootinfo(struct bi_record *rec);
39 extern unsigned long boot_mem_size;
40
41 static inline struct bi_record *
42 bootinfo_addr(unsigned long offset)
43 {
44
45         return (struct bi_record *)_ALIGN((offset) + (1 << 20) - 1,
46                                           (1 << 20));
47 }
48 #endif /* CONFIG_APUS */
49
50
51 #endif /* _PPC_BOOTINFO_H */
52 #endif /* __KERNEL__ */