static inline int cpuid(conf_object_t *cpu) { attr_value_t attr; attr = SIM_get_attribute(cpu, "cpuid_physical_apic_id"); return (int)attr.u.integer; }
static inline uint64_t eip(conf_object_t *cpu) { attr_value_t attr; attr = SIM_get_attribute(cpu, "eip"); return (uint64_t)attr.u.integer; }
conf_object_t *get_symtable() { conf_object_t *cell0_context = SIM_get_object("cell0_context"); if (cell0_context == NULL) { lsprintf(ALWAYS, "WARNING: couldn't get cell0_context\n"); return NULL; } attr_value_t table = SIM_get_attribute(cell0_context, "symtable"); if (!SIM_attr_is_object(table)) { SIM_free_attribute(table); // ugh, wtf simics table = SIM_get_attribute(cell0_context, "symtable"); if (!SIM_attr_is_object(table)) { SIM_free_attribute(table); lsprintf(ALWAYS, "WARNING: cell0_context.symtable not an obj\n"); assert(0); return NULL; } } conf_object_t *symtable = SIM_attr_object(table); SIM_free_attribute(table); return symtable; }