6b13f685e
김민수
BSP 최초 추가
|
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
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
|
#ifndef _LINUX_SOM_H
#define _LINUX_SOM_H
#include <linux/time.h>
#define SOM_PAGESIZE 4096
struct som_hdr {
short system_id;
short a_magic;
unsigned int version_id;
struct timespec file_time;
unsigned int entry_space;
unsigned int entry_subspace;
unsigned int entry_offset;
unsigned int aux_header_location;
unsigned int aux_header_size;
unsigned int som_length;
unsigned int presumed_dp;
unsigned int space_location;
unsigned int space_total;
unsigned int subspace_location;
unsigned int subspace_total;
unsigned int loader_fixup_location;
unsigned int loader_fixup_total;
unsigned int space_strings_location;
unsigned int space_strings_size;
unsigned int init_array_location;
unsigned int init_array_total;
unsigned int compiler_location;
unsigned int compiler_total;
unsigned int symbol_location;
unsigned int symbol_total;
unsigned int fixup_request_location;
unsigned int fixup_request_total;
unsigned int symbol_strings_location;
unsigned int symbol_strings_size;
unsigned int unloadable_sp_location;
unsigned int unloadable_sp_size;
unsigned int checksum;
};
#define SOM_SID_PARISC_1_0 0x020b
#define SOM_SID_PARISC_1_1 0x0210
#define SOM_SID_PARISC_2_0 0x0214
#define SOM_LIB_EXEC 0x0104
#define SOM_RELOCATABLE 0x0106
#define SOM_EXEC_NONSHARE 0x0107
#define SOM_EXEC_SHARE 0x0108
#define SOM_EXEC_DEMAND 0x010B
#define SOM_LIB_DYN 0x010D
#define SOM_LIB_SHARE 0x010E
#define SOM_LIB_RELOC 0x0619
#define SOM_ID_OLD 85082112
#define SOM_ID_NEW 87102412
struct aux_id {
unsigned int mandatory :1;
unsigned int copy :1;
unsigned int append :1;
unsigned int ignore :1;
unsigned int reserved :12;
unsigned int type :16;
unsigned int length;
};
struct som_exec_auxhdr {
struct aux_id som_auxhdr;
int exec_tsize;
int exec_tmem;
int exec_tfile;
int exec_dsize;
int exec_dmem;
int exec_dfile;
int exec_bsize;
int exec_entry;
int exec_flags;
int exec_bfill;
};
union name_pt {
char * n_name;
unsigned int n_strx;
};
struct space_dictionary_record {
union name_pt name;
unsigned int is_loadable :1;
unsigned int is_defined :1;
unsigned int is_private :1;
unsigned int has_intermediate_code :1;
unsigned int is_tspecific :1;
unsigned int reserved :11;
unsigned int sort_key :8;
unsigned int reserved2 :8;
int space_number;
int subspace_index;
unsigned int subspace_quantity;
int loader_fix_index;
unsigned int loader_fix_quantity;
int init_pointer_index;
unsigned int init_pointer_quantity;
};
struct subspace_dictionary_record {
int space_index;
unsigned int access_control_bits :7;
unsigned int memory_resident :1;
unsigned int dup_common :1;
unsigned int is_common :1;
unsigned int quadrant :2;
unsigned int initially_frozen :1;
unsigned int is_first :1;
unsigned int code_only :1;
unsigned int sort_key :8;
unsigned int replicate_init :1;
unsigned int continuation :1;
unsigned int is_tspecific :1;
unsigned int is_comdat :1;
unsigned int reserved :4;
int file_loc_init_value;
unsigned int initialization_length;
unsigned int subspace_start;
unsigned int subspace_length;
unsigned int reserved2 :5;
unsigned int alignment :27;
union name_pt name;
int fixup_request_index;
unsigned int fixup_request_quantity;
};
#endif /* _LINUX_SOM_H */
|