#include <cpus.h>
#include <mach_rt.h>
#include <mach_kdb.h>
#include <mach_ldebug.h>
#include <i386/AT386/misc_protos.h>
#include <i386/AT386/mp/mp_v1_1.h>
#include <i386/AT386/mp/mp.h>
#include <i386/AT386/mp/boot.h>
#include <i386/apic.h>
#include <i386/ipl.h>
#include <i386/fpu.h>
#include <i386/pio.h>
#include <i386/cpuid.h>
#include <i386/proc_reg.h>
#include <i386/misc_protos.h>
#include <mach/mach_types.h>
#include <mach/kern_return.h>
#include <vm/vm_kern.h>
#include <kern/startup.h>
#include <kern/cpu_number.h>
#include <kern/cpu_data.h>
#define MP_DEBUG 1
#if MP_DEBUG
vm_offset_t bios_start;
#endif
unsigned int lapic_id_initdata = 0;
int lapic_id = (int)&lapic_id_initdata;
vm_offset_t lapic_start;
void lapic_init(void);
int get_ncpus(void);
void validate_cpus(int ncpus);
void cpu_interrupt(int cpu);
void slave_boot(int cpu);
boolean_t mp_v1_1_initialized = FALSE;
void
mp_v1_1_init(void)
{
return;
}
void
lapic_init(void)
{
}
void
cpu_interrupt(
int cpu)
{
}
#if NCPUS > 1
void
slave_boot(
int cpu)
{
}
void
start_other_cpus(void)
{
}
void
validate_cpus(int ncpus)
{
int i;
for(i=0;i<NCPUS;i++)
machine_slot[i].is_cpu = TRUE;
}
int
get_ncpus(void)
{
return 1;
}
void
slave_machine_init(void)
{
}
#endif
#if MACH_KDB
#include <ddb/db_output.h>
#define TRAP_DEBUG 0
#if TRAP_DEBUG
#define MTRAPS 100
struct mp_trap_hist_struct {
unsigned char type;
unsigned char data[5];
} trap_hist[MTRAPS], *cur_trap_hist = trap_hist,
*max_trap_hist = &trap_hist[MTRAPS];
void db_trap_hist(void);
void
db_trap_hist(void)
{
int i,j;
for(i=0;i<MTRAPS;i++)
if (trap_hist[i].type == 1 || trap_hist[i].type == 2) {
db_printf("%s%s",
(&trap_hist[i]>=cur_trap_hist)?"*":" ",
(trap_hist[i].type == 1)?"SPL":"INT");
for(j=0;j<5;j++)
db_printf(" %02x", trap_hist[i].data[j]);
db_printf("\n");
}
}
#endif
void db_lapic(int cpu);
unsigned int db_remote_read(int cpu, int reg);
void db_ioapic(unsigned int);
void kdb_console(void);
void
kdb_console(void)
{
}
#define BOOLP(a) ((a)?' ':'!')
static char *DM[8] = {
"Fixed",
"Lowest Priority",
"Invalid",
"Invalid",
"NMI",
"Reset",
"Invalid",
"ExtINT"};
unsigned int
db_remote_read(int cpu, int reg)
{
return -1;
}
void
db_lapic(int cpu)
{
}
void
db_ioapic(unsigned int ind)
{
}
#endif