Fixes to comments.
[AROS.git] / arch / i386-pc / cpu / cpu_intern.h
blob92a6bc84cb85a5a96dd0b9db69c66ad550e0c2c6
1 /*
2 Copyright © 1995-2001, The AROS Development Team. All rights reserved.
3 $Id$
5 Desc:
6 Lang: english
7 */
8 #ifndef _CPU_INTERN_H
9 #define _CPU_INTERN_H
11 #ifndef EXEC_TYPES_H
12 #include <exec/types.h>
13 #endif
14 #ifndef EXEC_NODES_H
15 #include <exec/nodes.h>
16 #endif
17 #ifndef UTILITY_UTILITY_H
18 #include <utility/utility.h>
19 #endif
20 #ifndef HIDD_HIDD_H
21 #include <hidd/hidd.h>
22 #endif
23 #ifndef EXEC_LISTS_H
24 # include <exec/lists.h>
25 #endif
27 #define DEBUG 1
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>
53 #include <stddef.h>
54 #include <stdio.h>
55 #include <string.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
67 #undef memcpy
68 #define memcpy(_d, _s, _len) \
69 { \
70 int len = _len; \
71 while (len) \
72 { \
73 ((char *)_d)[len-1] = ((char *)_s)[len-1];\
74 len--; \
75 } \
79 /* Temporary information */
80 #if 1
82 void clr();
83 void scr_RawPutChars(char *, int);
85 char tab[127];
86 #ifdef rkprintf
87 # undef rkprintf
88 #endif
89 #define rkprintf(x...) scr_RawPutChars(tab, snprintf(tab,126, x))
91 #else
93 #define clr() /* eps */
94 #define rkprintf(x...) /* eps */
96 #endif
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 */