blob: 4b6879f2e0611531cc4c601ed7f0557503d08051 (
about) (
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
|
#ifndef ATAGS_H
#define ATAGS_H
#include <stdint.h>
#define ATAG_NONE 0x00000000
#define ATAG_CORE 0x54410001
#define ATAG_MEM 0x54410002
#define ATAG_VIDEOTEXT 0x54410003
#define ATAG_RAMDISK 0x54410004
#define ATAG_INITRD2 0x54420005
#define ATAG_SERIAL 0x54410006
#define ATAG_REVISION 0x54410007
#define ATAG_VIDEOLFB 0x54410008
#define ATAG_CMDLINE 0x54410009
struct atag_header
{
uint32_t size;
uint32_t tag;
};
struct atag_core
{
uint32_t flags;
uint32_t pagesize;
uint32_t rootdev;
};
struct atag_mem
{
uint32_t size;
uint32_t start;
};
struct atag_videotext
{
uint8_t x;
uint8_t y;
uint16_t video_page;
uint8_t video_mode;
uint8_t video_cols;
uint16_t video_ega_bx;
uint8_t video_lines;
uint8_t video_isvga;
uint16_t video_points;
};
struct atag_ramdisk
{
uint32_t flags;
uint32_t size;
uint32_t start;
};
struct atag_initrd2
{
uint32_t start;
uint32_t size;
};
struct atag_serialnr
{
uint32_t low;
uint32_t high;
};
struct atag_revision
{
uint32_t rev;
};
struct atag_videolfb
{
uint16_t lfb_width;
uint16_t lfb_height;
uint16_t lfb_depth;
uint16_t lfb_linelength;
uint32_t lfb_base;
uint32_t lfb_size;
uint8_t red_size;
uint8_t red_pos;
uint8_t green_size;
uint8_t green_pos;
uint8_t blue_size;
uint8_t blue_pos;
uint8_t rsvd_size;
uint8_t rsvd_pos;
};
struct atag_cmdline
{
char cmdline[1];
};
uint32_t find_memory_size(struct atag_header *atags);
void print_tag(struct atag_header *tag);
void print_atags(struct atag_header *atags);
#endif // ATAGS_H
|