2 Copyright © 1995-2001, The AROS Development Team. All rights reserved.
12 #include <exec/types.h>
15 #include <exec/nodes.h>
17 #ifndef UTILITY_UTILITY_H
18 #include <utility/utility.h>
21 #include <hidd/hidd.h>
24 # include <exec/lists.h>
29 #include <exec/resident.h>
30 #include <exec/execbase.h>
31 #include <exec/memory.h>
32 #include <hardware/intbits.h>
33 #include <asm/segments.h>
34 #include <asm/linkage.h>
35 #include <asm/ptrace.h>
36 #include <dos/dosextens.h>
38 #include <aros/arossupportbase.h>
39 #include <aros/asmcall.h>
40 #include <aros/config.h>
41 #include <aros/debug.h>
42 #define DEBUG_NAME_STR "[" MOD_NAME_STRING "]"
43 #include <aros/multiboot.h>
45 #include <hardware/custom.h>
47 //#include <proto/acpi.h>
48 #include <proto/exec.h>
49 #include <proto/cpu.h>
51 #include <aros/debug.h>
57 /* Edit the following files at compiler/include/cpu */
59 #include <hardware/cpu/cpu.h> /* NicJA - Experimental CPU specific Data Structs */
60 #include <hardware/cpu/cpu_i386.h> /* NicJA - Experimental CPU specific Data Structs */
61 #include <hardware/cpu/cpu_mpspec.h> /* NicJA - Experimental SMP specific Data Structs */
63 #include <hardware/acpi/acpi.h> /* NicJA - Experimental ACPI/APIC specific Data Structs */
65 #include LC_LIBDEFS_FILE
68 #define memcpy(_d, _s, _len) \
73 ((char *)_d)[len-1] = ((char *)_s)[len-1];\
79 /* Temporary information */
83 void scr_RawPutChars(char *, int);
89 #define rkprintf(x...) scr_RawPutChars(tab, snprintf(tab,126, x))
93 #define clr() /* eps */
94 #define rkprintf(x...) /* eps */
98 #define i386_cpuid(in,a,b,c,d) asm("cpuid": "=a" (a), "=b" (b), "=c" (c), "=d" (d) : "a" (in));
100 struct CPUBase
*CPUBase
;
102 #define APICBase (CPUBase->CPUB_APICBase)
104 /**********************************************************************/
105 /* from smp.c ........... */
106 void MP_processor_info ( struct mpc_config_processor
*mc
, struct SMP_Definition
*SMP_Group
);
107 void MP_bus_info ( struct mpc_config_bus
*mc
, struct SMP_Definition
*SMP_Group
);
108 void MP_ioapic_info ( struct mpc_config_ioapic
*mc
, struct SMP_Definition
*SMP_Group
);
109 void MP_intsrc_info ( struct mpc_config_intsrc
*mc
, struct SMP_Definition
*SMP_Group
);
110 void MP_lintsrc_info ( struct mpc_config_lintsrc
*mc
, struct SMP_Definition
*SMP_Group
);
111 void MP_translation_info ( struct mpc_config_translation
*mc
, struct SMP_Definition
*SMP_Group
);
113 int mpfcb_checksum( unsigned char *mpcb
, int len
);
114 void smp_read_mpc_oem( struct mp_config_oemtable
*oemtable
, unsigned short oemsize
, struct SMP_Definition
*SMP_Group
);
115 void mps_oem_check ( struct mp_config_table
*mpcf
, char *oem
, char *productid
, struct SMP_Definition
*SMP_Group
);
116 int smp_alloc_memory ( void );
117 int scan_for_smpconfig ( unsigned long base
, unsigned long length
);
118 int find_smp_config ( void );
119 void get_smp_config ( struct intel_mp_confblock
*mpcfb
, struct CPUBase
*CPUBase
);
120 int smp_read_mpcfb ( struct mp_config_table
*mpcf
, struct CPUBase
*CPUBase
);
122 #endif /* _CPU_INTERN_H */