Rewrite CPU table backwards compatibility system, and fix a crash in the speed clamping code
This commit is contained in:
@@ -315,7 +315,7 @@ cpu_set_edx(void)
|
||||
}
|
||||
|
||||
cpu_family_t *
|
||||
cpu_get_family(char *internal_name)
|
||||
cpu_get_family(const char *internal_name)
|
||||
{
|
||||
int c = 0;
|
||||
while (cpu_families[c].package) {
|
||||
@@ -329,7 +329,7 @@ cpu_get_family(char *internal_name)
|
||||
|
||||
|
||||
uint8_t
|
||||
cpu_is_eligible(cpu_family_t *cpu_family, int cpu, int machine)
|
||||
cpu_is_eligible(const cpu_family_t *cpu_family, int cpu, int machine)
|
||||
{
|
||||
/* Get machine. */
|
||||
const machine_t *machine_s = &machines[machine];
|
||||
@@ -399,7 +399,7 @@ cpu_is_eligible(cpu_family_t *cpu_family, int cpu, int machine)
|
||||
|
||||
|
||||
uint8_t
|
||||
cpu_family_is_eligible(cpu_family_t *cpu_family, int machine)
|
||||
cpu_family_is_eligible(const cpu_family_t *cpu_family, int machine)
|
||||
{
|
||||
int c = 0;
|
||||
|
||||
@@ -413,7 +413,7 @@ cpu_family_is_eligible(cpu_family_t *cpu_family, int machine)
|
||||
}
|
||||
|
||||
|
||||
int fpu_get_type(cpu_family_t *cpu_family, int cpu, const char *internal_name)
|
||||
int fpu_get_type(const cpu_family_t *cpu_family, int cpu, const char *internal_name)
|
||||
{
|
||||
const CPU *cpu_s = &cpu_family->cpus[cpu];
|
||||
const FPU *fpus = cpu_s->fpus;
|
||||
@@ -430,7 +430,7 @@ int fpu_get_type(cpu_family_t *cpu_family, int cpu, const char *internal_name)
|
||||
return fpu_type;
|
||||
}
|
||||
|
||||
const char *fpu_get_internal_name(cpu_family_t *cpu_family, int cpu, int type)
|
||||
const char *fpu_get_internal_name(const cpu_family_t *cpu_family, int cpu, int type)
|
||||
{
|
||||
const CPU *cpu_s = &cpu_family->cpus[cpu];
|
||||
const FPU *fpus = cpu_s->fpus;
|
||||
@@ -446,7 +446,7 @@ const char *fpu_get_internal_name(cpu_family_t *cpu_family, int cpu, int type)
|
||||
return fpus[0].internal_name;
|
||||
}
|
||||
|
||||
const char *fpu_get_name_from_index(cpu_family_t *cpu_family, int cpu, int c)
|
||||
const char *fpu_get_name_from_index(const cpu_family_t *cpu_family, int cpu, int c)
|
||||
{
|
||||
const CPU *cpu_s = &cpu_family->cpus[cpu];
|
||||
const FPU *fpus = cpu_s->fpus;
|
||||
@@ -454,7 +454,7 @@ const char *fpu_get_name_from_index(cpu_family_t *cpu_family, int cpu, int c)
|
||||
return fpus[c].name;
|
||||
}
|
||||
|
||||
int fpu_get_type_from_index(cpu_family_t *cpu_family, int cpu, int c)
|
||||
int fpu_get_type_from_index(const cpu_family_t *cpu_family, int cpu, int c)
|
||||
{
|
||||
const CPU *cpu_s = &cpu_family->cpus[cpu];
|
||||
const FPU *fpus = cpu_s->fpus;
|
||||
|
||||
@@ -161,13 +161,13 @@ typedef struct {
|
||||
|
||||
typedef struct {
|
||||
const char *family;
|
||||
const int old_offset;
|
||||
const int new_offset;
|
||||
const int rspeed;
|
||||
const double multi;
|
||||
} cpu_legacy_table_t;
|
||||
|
||||
typedef struct {
|
||||
const char *machine;
|
||||
const cpu_legacy_table_t *tables[5];
|
||||
const cpu_legacy_table_t **tables;
|
||||
} cpu_legacy_machine_t;
|
||||
|
||||
|
||||
@@ -370,8 +370,8 @@ COMPILE_TIME_ASSERT(sizeof(cpu_state_t) <= 128)
|
||||
|
||||
|
||||
/* Global variables. */
|
||||
extern cpu_family_t cpu_families[];
|
||||
extern cpu_legacy_machine_t cpu_legacy_table[];
|
||||
extern const cpu_family_t cpu_families[];
|
||||
extern const cpu_legacy_machine_t cpu_legacy_table[];
|
||||
extern cpu_family_t *cpu_f;
|
||||
extern CPU *cpu_s;
|
||||
|
||||
@@ -574,13 +574,13 @@ extern int sysexit(uint32_t fetchdat);
|
||||
extern int syscall(uint32_t fetchdat);
|
||||
extern int sysret(uint32_t fetchdat);
|
||||
|
||||
extern cpu_family_t *cpu_get_family(char *internal_name);
|
||||
extern uint8_t cpu_is_eligible(cpu_family_t *cpu_family, int cpu, int machine);
|
||||
extern uint8_t cpu_family_is_eligible(cpu_family_t *cpu_family, int machine);
|
||||
extern int fpu_get_type(cpu_family_t *cpu_family, int cpu, const char *internal_name);
|
||||
extern const char *fpu_get_internal_name(cpu_family_t *cpu_family, int cpu, int type);
|
||||
extern const char *fpu_get_name_from_index(cpu_family_t *cpu_family, int cpu, int c);
|
||||
extern int fpu_get_type_from_index(cpu_family_t *cpu_family, int cpu, int c);
|
||||
extern cpu_family_t *cpu_get_family(const char *internal_name);
|
||||
extern uint8_t cpu_is_eligible(const cpu_family_t *cpu_family, int cpu, int machine);
|
||||
extern uint8_t cpu_family_is_eligible(const cpu_family_t *cpu_family, int machine);
|
||||
extern int fpu_get_type(const cpu_family_t *cpu_family, int cpu, const char *internal_name);
|
||||
extern const char *fpu_get_internal_name(const cpu_family_t *cpu_family, int cpu, int type);
|
||||
extern const char *fpu_get_name_from_index(const cpu_family_t *cpu_family, int cpu, int c);
|
||||
extern int fpu_get_type_from_index(const cpu_family_t *cpu_family, int cpu, int c);
|
||||
|
||||
void cyrix_load_seg_descriptor(uint32_t addr, x86seg *seg);
|
||||
void cyrix_write_seg_descriptor(uint32_t addr, x86seg *seg);
|
||||
|
||||
1186
src/cpu/cpu_table.c
1186
src/cpu/cpu_table.c
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user