2 * This file is part of the Palacios Virtual Machine Monitor developed
3 * by the V3VEE Project with funding from the United States National
4 * Science Foundation and the Department of Energy.
6 * The V3VEE Project is a joint project between Northwestern University
7 * and the University of New Mexico. You can find out more at
10 * Copyright (c) 2008, Jack Lange <jarusl@cs.northwestern.edu>
11 * Copyright (c) 2008, The V3VEE Project <http://www.v3vee.org>
12 * All rights reserved.
14 * Author: Jack Lange <jarusl@cs.northwestern.edu>
16 * This is free software. You are permitted to use,
17 * redistribute, and modify it as specified in the file "V3VEE_LICENSE".
28 } __attribute__((packed));
29 } __attribute__((packed));
30 } __attribute__((packed));
40 uint_t ext_reg_present : 1;
41 } __attribute__((packed));
42 } __attribute__((packed));
43 } __attribute__((packed));
46 struct ext_apic_ctrl_reg {
51 uint_t seoi_enable : 1;
52 uint_t ext_id_enable : 1;
54 } __attribute__((packed));
55 } __attribute__((packed));
56 } __attribute__((packed));
59 struct local_vec_tbl_reg {
66 uint_t del_status : 1;
73 } __attribute__((packed));
74 } __attribute__((packed));
75 } __attribute__((packed));
78 struct tmr_vec_tbl_reg {
84 uint_t del_status : 1;
89 } __attribute__((packed));
90 } __attribute__((packed));
91 } __attribute__((packed));
102 } __attribute__((packed));
103 } __attribute__((packed));
104 } __attribute__((packed));
107 struct lint_vec_tbl_reg {
114 uint_t del_status : 1;
117 uint_t trig_mode : 1;
120 } __attribute__((packed));
121 } __attribute__((packed));
122 } __attribute__((packed));
125 struct perf_ctr_loc_vec_tbl_reg {
132 uint_t del_status : 1;
136 } __attribute__((packed));
137 } __attribute__((packed));
138 } __attribute__((packed));
141 struct therm_loc_vec_tbl_reg {
148 uint_t del_status : 1;
152 } __attribute__((packed));
153 } __attribute__((packed));
154 } __attribute__((packed));
156 struct err_vec_tbl_reg {
163 uint_t del_status : 1;
167 } __attribute__((packed));
168 } __attribute__((packed));
169 } __attribute__((packed));
172 struct err_status_reg {
177 uint_t sent_acc_err : 1;
178 uint_t recv_acc_err : 1;
180 uint_t sent_ill_err : 1;
181 uint_t recv_ill_err : 1;
182 uint_t ill_reg_addr : 1;
184 } __attribute__((packed));
185 } __attribute__((packed));
186 } __attribute__((packed));
189 struct spurious_int_reg {
194 uint_t apic_soft_en : 1;
195 uint_t foc_cpu_chk : 1;
197 } __attribute__((packed));
198 } __attribute__((packed));
199 } __attribute__((packed));
208 } __attribute__((packed));
214 uint_t del_status : 1;
217 uint_t trig_mode : 1;
218 uint_t rem_rd_status : 2;
219 uint_t dst_shorthand : 2;
222 } __attribute__((packed));
223 } __attribute__((packed));
224 } __attribute__((packed));
232 uint_t dst_log_id : 8;
233 } __attribute__((packed));
234 } __attribute__((packed));
235 } __attribute__((packed));
244 } __attribute__((packed));
245 } __attribute__((packed));
246 } __attribute__((packed));
249 struct arb_prio_reg {
253 uint_t arb_prio_sub : 4;
256 } __attribute__((packed));
257 } __attribute__((packed));
258 } __attribute__((packed));
263 struct task_prio_reg {
267 uint_t task_prio_sub : 4;
268 uint_t task_prio : 4;
270 } __attribute__((packed));
271 } __attribute__((packed));
272 } __attribute__((packed));
276 struct proc_prio_reg {
280 uint_t proc_prio_sub : 4;
281 uint_t proc_prio : 4;
283 } __attribute__((packed));
284 } __attribute__((packed));
285 } __attribute__((packed));
287 struct ext_apic_feature_reg {
291 uint_t int_en_reg_cap : 1;
292 uint_t spec_eoi_cap : 1;
293 uint_t ext_apic_id_cap: 1;
295 uint_t ext_lvt_cnt : 8;
297 } __attribute__((packed));
298 } __attribute__((packed));
299 } __attribute__((packed));
302 struct spec_eoi_reg {
308 } __attribute__((packed));
309 } __attribute__((packed));
310 } __attribute__((packed));