Palacios Public Git Repository

To checkout Palacios execute

  git clone http://v3vee.org/palacios/palacios.web/palacios.git
This will give you the master branch. You probably want the devel branch or one of the release branches. To switch to the devel branch, simply execute
  cd palacios
  git checkout --track -b devel origin/devel
The other branches are similar.


more updates
[palacios.git] / palacios / include / devices / apic_regs.h
index ea1d55a..4d4f540 100644 (file)
 
 
 struct lapic_id_reg {
-  union {
-    uint32_t val;
-    struct {
-      uint_t rsvd          : 24;
-      uint_t apic_id       : 8;
+    union {
+       uint32_t val;
+       struct {
+           uint_t rsvd          : 24;
+           uint_t apic_id       : 8;
+       } __attribute__((packed));
     } __attribute__((packed));
-  } __attribute__((packed));
 } __attribute__((packed));
 
 struct apic_ver_reg {
-  union {
-    uint32_t val;
-    struct {
-      uint_t ver           : 8;
-      uint_t rsvd1         : 8;
-      uint_t max_lvts      : 8;
-      uint_t rsvd2         : 7;
-      uint_t ext_reg_present : 1;
+    union {
+       uint32_t val;
+       struct {
+           uint_t ver           : 8;
+           uint_t rsvd1         : 8;
+           uint_t max_lvts      : 8;
+           uint_t rsvd2         : 7;
+           uint_t ext_reg_present : 1;
+       } __attribute__((packed));
     } __attribute__((packed));
-  } __attribute__((packed));
 } __attribute__((packed));
 
 
 struct ext_apic_ctrl_reg {
-  union {
-    uint32_t val;
-    struct {
-      uint_t ver           : 1;
-      uint_t seoi_enable   : 1;
-      uint_t ext_id_enable : 1;
-      uint_t rsvd2         : 29;
+    union {
+       uint32_t val;
+       struct {
+           uint_t ver           : 1;
+           uint_t seoi_enable   : 1;
+           uint_t ext_id_enable : 1;
+           uint_t rsvd2         : 29;
+       } __attribute__((packed));
     } __attribute__((packed));
-  } __attribute__((packed));
 } __attribute__((packed));
 
 
+
 struct local_vec_tbl_reg {
-  union {
-    uint32_t val;
-    struct {
-      uint_t vec           : 8;
-      uint_t msg_type      : 3;
-      uint_t rsvd1         : 1;
-      uint_t del_status    : 1;
-      uint_t rsvd2         : 1;
-      uint_t rem_irr       : 1;
-      uint_t trig_mode     : 1;
-      uint_t mask          : 1;
-      uint_t tmr_mode      : 1;
-      uint_t rsvd3         : 14;
+    union {
+       uint32_t val;
+       struct {
+           uint_t vec           : 8;
+           uint_t msg_type      : 3;
+           uint_t rsvd1         : 1;
+           uint_t del_status    : 1;
+           uint_t rsvd2         : 1;
+           uint_t rem_irr       : 1;
+           uint_t trig_mode     : 1;
+           uint_t mask          : 1;
+           uint_t tmr_mode      : 1;
+           uint_t rsvd3         : 14;
+       } __attribute__((packed));
     } __attribute__((packed));
-  } __attribute__((packed));
 } __attribute__((packed));
 
 
 struct tmr_vec_tbl_reg {
-  union {
-    uint32_t val;
-    struct {
-      uint_t vec           : 8;
-      uint_t rsvd          : 4;
-      uint_t del_status    : 1;
-      uint_t rsvd2         : 3;
-      uint_t mask          : 1;
-      uint_t tmr_mode      : 1;
-      uint_t rsvd3         : 14;
+    union {
+       uint32_t val;
+       struct {
+           uint_t vec           : 8;
+           uint_t rsvd          : 4;
+           uint_t del_status    : 1;
+           uint_t rsvd2         : 3;
+           uint_t mask          : 1;
+#define APIC_TMR_ONESHOT  0
+#define APIC_TMR_PERIODIC 1
+           uint_t tmr_mode      : 1;
+           uint_t rsvd3         : 14;
+       } __attribute__((packed));
     } __attribute__((packed));
-  } __attribute__((packed));
 } __attribute__((packed));
 
 
-struct div_cfg_reg {
-  union {
-    uint32_t val;
-    struct {
-      uint_t div_val       : 2;
-      uint_t rsvd          : 1;
-      uint_t div_val2      : 1;
-      uint_t rsvd2         : 28;
+struct tmr_div_cfg_reg {
+#define APIC_TMR_DIV1    0xb // 1011
+#define APIC_TMR_DIV2    0x0 // 0000
+#define APIC_TMR_DIV4    0x1 // 0001
+#define APIC_TMR_DIV8    0x2 // 0010
+#define APIC_TMR_DIV16   0x3 // 0011
+#define APIC_TMR_DIV32   0x8 // 1000
+#define APIC_TMR_DIV64   0x9 // 1001
+#define APIC_TMR_DIV128  0xa // 1010
+    union {
+       uint32_t val;
+       struct {
+           uint_t div_val       : 2;
+           uint_t rsvd1         : 1;
+           uint_t div_val2      : 1;
+           uint_t rsvd2         : 28;
+       } __attribute__((packed));
     } __attribute__((packed));
-  } __attribute__((packed));
 } __attribute__((packed));
 
 
 struct lint_vec_tbl_reg {
-  union {
-    uint32_t val;
-    struct {
-      uint_t vec           : 8;
-      uint_t msg_type      : 3;
-      uint_t rsvd1         : 1;
-      uint_t del_status    : 1;
-      uint_t rsvd2         : 1;
-      uint_t rem_irr       : 1;
-      uint_t trig_mode     : 1;
-      uint_t mask          : 1;
-      uint_t rsvd3         : 15;
+    union {
+       uint32_t val;
+       struct {
+           uint_t vec           : 8;
+           uint_t msg_type      : 3;
+           uint_t rsvd1         : 1;
+           uint_t del_status    : 1;
+           uint_t rsvd2         : 1;
+           uint_t rem_irr       : 1;
+           uint_t trig_mode     : 1;
+           uint_t mask          : 1;
+           uint_t rsvd3         : 15;
+       } __attribute__((packed));
     } __attribute__((packed));
-  } __attribute__((packed));
 } __attribute__((packed));
 
 
 struct perf_ctr_loc_vec_tbl_reg {
-  union {
-    uint32_t val;
-    struct {
-      uint_t vec           : 8;
-      uint_t msg_type      : 3;
-      uint_t rsvd1         : 1;
-      uint_t del_status    : 1;
-      uint_t rsvd2         : 3;
-      uint_t mask          : 1;
-      uint_t rsvd3         : 15;
+    union {
+       uint32_t val;
+       struct {
+           uint_t vec           : 8;
+           uint_t msg_type      : 3;
+           uint_t rsvd1         : 1;
+           uint_t del_status    : 1;
+           uint_t rsvd2         : 3;
+           uint_t mask          : 1;
+           uint_t rsvd3         : 15;
+       } __attribute__((packed));
     } __attribute__((packed));
-  } __attribute__((packed));
 } __attribute__((packed));
 
 
 struct therm_loc_vec_tbl_reg {
-  union {
-    uint32_t val;
-    struct {
-      uint_t vec           : 8;
-      uint_t msg_type      : 3;
-      uint_t rsvd1         : 1;
-      uint_t del_status    : 1;
-      uint_t rsvd2         : 3;
-      uint_t mask          : 1;
-      uint_t rsvd3         : 15;
+    union {
+       uint32_t val;
+       struct {
+           uint_t vec           : 8;
+           uint_t msg_type      : 3;
+           uint_t rsvd1         : 1;
+           uint_t del_status    : 1;
+           uint_t rsvd2         : 3;
+           uint_t mask          : 1;
+           uint_t rsvd3         : 15;
+       } __attribute__((packed));
     } __attribute__((packed));
-  } __attribute__((packed));
 } __attribute__((packed));
 
 struct err_vec_tbl_reg {
-  union {
-    uint32_t val;
-    struct {
-      uint_t vec           : 8;
-      uint_t msg_type      : 3;
-      uint_t rsvd1         : 1;
-      uint_t del_status    : 1;
-      uint_t rsvd2         : 3;
-      uint_t mask          : 1;
-      uint_t rsvd3         : 15;
+    union {
+       uint32_t val;
+       struct {
+           uint_t vec           : 8;
+           uint_t msg_type      : 3;
+           uint_t rsvd1         : 1;
+           uint_t del_status    : 1;
+           uint_t rsvd2         : 3;
+           uint_t mask          : 1;
+           uint_t rsvd3         : 15;
+       } __attribute__((packed));
     } __attribute__((packed));
-  } __attribute__((packed));
 } __attribute__((packed));
 
 
 struct err_status_reg {
-  union {
-    uint32_t val;
-    struct {
-      uint_t rsvd1         : 2;
-      uint_t sent_acc_err  : 1;
-      uint_t recv_acc_err  : 1;
-      uint_t rsvd2         : 1;
-      uint_t sent_ill_err  : 1;
-      uint_t recv_ill_err  : 1;
-      uint_t ill_reg_addr  : 1;
-      uint_t rsvd3         : 24;
+    union {
+       uint32_t val;
+       struct {
+           uint_t rsvd1         : 2;
+           uint_t sent_acc_err  : 1;
+           uint_t recv_acc_err  : 1;
+           uint_t rsvd2         : 1;
+           uint_t sent_ill_err  : 1;
+           uint_t recv_ill_err  : 1;
+           uint_t ill_reg_addr  : 1;
+           uint_t rsvd3         : 24;
+       } __attribute__((packed));
     } __attribute__((packed));
-  } __attribute__((packed));
 } __attribute__((packed));
 
 
 struct spurious_int_reg {
-  union {
-    uint32_t val;
-    struct {
-      uint_t vec           : 8;
-      uint_t apic_soft_en  : 1;
-      uint_t foc_cpu_chk   : 1;
-      uint_t rsvd1         : 22;
+    union {
+       uint32_t val;
+       struct {
+           uint_t vec           : 8;
+           uint_t apic_soft_en  : 1;
+           uint_t foc_cpu_chk   : 1;
+           uint_t rsvd1         : 22;
+       } __attribute__((packed));
     } __attribute__((packed));
-  } __attribute__((packed));
 } __attribute__((packed));
 
 struct int_cmd_reg {
-  union {
-    uint64_t val;
-
-    struct {
-      uint32_t lo;
-      uint32_t hi;
-    } __attribute__((packed));
-
-    struct {
-      uint_t vec           : 8;
-      uint_t msg_type      : 3;
-      uint_t dst_mode      : 1;
-      uint_t del_status    : 1;
-      uint_t rsvd1         : 1;
-      uint_t lvl           : 1;
-      uint_t trig_mode     : 1;
-      uint_t rem_rd_status : 2;
-      uint_t dst_shorthand : 2;
-      uint64_t rsvd2       : 36;
-      uint32_t dst         : 8;
+    union {
+       uint64_t val;
+
+       struct {
+           uint32_t lo;
+           uint32_t hi;
+       } __attribute__((packed));
+
+       struct {
+           uint_t vec           : 8;
+           uint_t msg_type      : 3;
+           uint_t dst_mode      : 1;
+           uint_t del_status    : 1;
+           uint_t rsvd1         : 1;
+           uint_t lvl           : 1;
+           uint_t trig_mode     : 1;
+           uint_t rem_rd_status : 2;
+           uint_t dst_shorthand : 2;
+           uint64_t rsvd2       : 36;
+           uint32_t dst         : 8;
+       } __attribute__((packed));
     } __attribute__((packed));
-  } __attribute__((packed));
 } __attribute__((packed));
 
 
-struct loc_dst_reg {
-  union {
-    uint32_t val;
-    struct {
-      uint_t rsvd1         : 24;
-      uint_t dst_log_id    : 8;
+struct log_dst_reg {
+    union {
+       uint32_t val;
+       struct {
+           uint_t rsvd1         : 24;
+           uint_t dst_log_id    : 8;
+       } __attribute__((packed));
     } __attribute__((packed));
-  } __attribute__((packed));
 } __attribute__((packed));
 
 
 struct dst_fmt_reg {
-  union {
-    uint32_t val;
-    struct {
-      uint_t rsvd1         : 28;
-      uint_t model         : 4;
+    union {
+       uint32_t val;
+       struct {
+           uint_t rsvd1         : 28;
+           uint_t model         : 4;
+       } __attribute__((packed));
     } __attribute__((packed));
-  } __attribute__((packed));
 } __attribute__((packed));
 
 
 struct arb_prio_reg {
-  union {
-    uint32_t val;
-    struct {
-      uint_t arb_prio_sub  : 4;
-      uint_t arb_prio      : 4;
-      uint_t rsvd1         : 24;
+    union {
+       uint32_t val;
+       struct {
+           uint_t arb_prio_sub  : 4;
+           uint_t arb_prio      : 4;
+           uint_t rsvd1         : 24;
+       } __attribute__((packed));
     } __attribute__((packed));
-  } __attribute__((packed));
 } __attribute__((packed));
 
 
 
 
 struct task_prio_reg {
-  union {
-    uint32_t val;
-    struct {
-      uint_t task_prio_sub  : 4;
-      uint_t task_prio      : 4;
-      uint_t rsvd1         : 24;
+    union {
+       uint32_t val;
+       struct {
+           uint_t task_prio_sub  : 4;
+           uint_t task_prio      : 4;
+           uint_t rsvd1         : 24;
+       } __attribute__((packed));
     } __attribute__((packed));
-  } __attribute__((packed));
 } __attribute__((packed));
 
 
 
 struct proc_prio_reg {
-  union {
-    uint32_t val;
-    struct {
-      uint_t proc_prio_sub  : 4;
-      uint_t proc_prio      : 4;
-      uint_t rsvd1         : 24;
+    union {
+       uint32_t val;
+       struct {
+           uint_t proc_prio_sub  : 4;
+           uint_t proc_prio      : 4;
+           uint_t rsvd1         : 24;
+       } __attribute__((packed));
     } __attribute__((packed));
-  } __attribute__((packed));
 } __attribute__((packed));
 
 struct ext_apic_feature_reg {
-  union {
-    uint32_t val;
-    struct {
-      uint_t int_en_reg_cap : 1;
-      uint_t spec_eoi_cap   : 1;
-      uint_t ext_apic_id_cap: 1;
-      uint_t rsvd1          : 13;
-      uint_t ext_lvt_cnt    : 8;
-      uint_t rsvd2          : 8;
+    union {
+       uint32_t val;
+       struct {
+           uint_t int_en_reg_cap : 1;
+           uint_t spec_eoi_cap   : 1;
+           uint_t ext_apic_id_cap: 1;
+           uint_t rsvd1          : 13;
+           uint_t ext_lvt_cnt    : 8;
+           uint_t rsvd2          : 8;
+       } __attribute__((packed));
     } __attribute__((packed));
-  } __attribute__((packed));
 } __attribute__((packed));
 
 
 struct spec_eoi_reg {
-  union {
-    uint32_t val;
-    struct {
-      uint_t vec           : 8;
-      uint_t rsvd1         : 24;
+    union {
+       uint32_t val;
+       struct {
+           uint_t vec           : 8;
+           uint_t rsvd1         : 24;
+       } __attribute__((packed));
     } __attribute__((packed));
-  } __attribute__((packed));
 } __attribute__((packed));