Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F156492489
D4358.id.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
13 KB
Referenced Files
None
Subscribers
None
D4358.id.diff
View Options
Index: head/sys/amd64/include/md_var.h
===================================================================
--- head/sys/amd64/include/md_var.h
+++ head/sys/amd64/include/md_var.h
@@ -32,69 +32,18 @@
#ifndef _MACHINE_MD_VAR_H_
#define _MACHINE_MD_VAR_H_
-/*
- * Miscellaneous machine-dependent declarations.
- */
+#include <x86/x86_var.h>
-extern long Maxmem;
-extern u_int basemem;
-extern int busdma_swi_pending;
-extern u_int cpu_exthigh;
-extern u_int cpu_feature;
-extern u_int cpu_feature2;
-extern u_int amd_feature;
-extern u_int amd_feature2;
-extern u_int amd_pminfo;
-extern u_int via_feature_rng;
-extern u_int via_feature_xcrypt;
-extern u_int cpu_clflush_line_size;
-extern u_int cpu_stdext_feature;
-extern u_int cpu_stdext_feature2;
-extern u_int cpu_fxsr;
-extern u_int cpu_high;
-extern u_int cpu_id;
-extern u_int cpu_max_ext_state_size;
-extern u_int cpu_mxcsr_mask;
-extern u_int cpu_procinfo;
-extern u_int cpu_procinfo2;
-extern char cpu_vendor[];
-extern u_int cpu_vendor_id;
-extern u_int cpu_mon_mwait_flags;
-extern u_int cpu_mon_min_size;
-extern u_int cpu_mon_max_size;
-extern u_int cpu_maxphyaddr;
extern char ctx_switch_xsave[];
-extern u_int hv_high;
-extern char hv_vendor[];
-extern char kstack[];
-extern char sigcode[];
-extern int szsigcode;
-extern uint64_t *vm_page_dump;
-extern int vm_page_dump_size;
-extern int workaround_erratum383;
-extern int _udatasel;
-extern int _ucodesel;
-extern int _ucode32sel;
-extern int _ufssel;
-extern int _ugssel;
-extern int use_xsave;
-extern uint64_t xsave_mask;
+extern uint64_t *vm_page_dump;
+/* XXX */
typedef void alias_for_inthand_t(u_int cs, u_int ef, u_int esp, u_int ss);
-struct pcb;
+
struct savefpu;
-struct thread;
-struct reg;
-struct fpreg;
-struct dbreg;
-struct dumperinfo;
-void *alloc_fpusave(int flags);
+void amd64_db_resume_dbreg(void);
void amd64_syscall(struct thread *td, int traced);
-void busdma_swi(void);
-bool cpu_mwait_usable(void);
-void cpu_probe_amdc1e(void);
-void cpu_setregs(void);
void doreti_iret(void) __asm(__STRING(doreti_iret));
void doreti_iret_fault(void) __asm(__STRING(doreti_iret_fault));
void ld_ds(void) __asm(__STRING(ld_ds));
@@ -109,26 +58,10 @@
void gs_load_fault(void) __asm(__STRING(gs_load_fault));
void fsbase_load_fault(void) __asm(__STRING(fsbase_load_fault));
void gsbase_load_fault(void) __asm(__STRING(gsbase_load_fault));
-void dump_add_page(vm_paddr_t);
-void dump_drop_page(vm_paddr_t);
-void identify_cpu(void);
-void initializecpu(void);
-void initializecpucache(void);
-bool intel_fix_cpuid(void);
-void fillw(int /*u_short*/ pat, void *base, size_t cnt);
void fpstate_drop(struct thread *td);
-int is_physical_memory(vm_paddr_t addr);
-int isa_nmi(int cd);
-void panicifcpuunsupported(void);
-void pagecopy(void *from, void *to);
void pagezero(void *addr);
-void printcpuinfo(void);
void setidt(int idx, alias_for_inthand_t *func, int typ, int dpl, int ist);
-int user_dbreg_trap(void);
-int minidumpsys(struct dumperinfo *);
struct savefpu *get_pcb_user_save_td(struct thread *td);
struct savefpu *get_pcb_user_save_pcb(struct pcb *pcb);
-struct pcb *get_pcb_td(struct thread *td);
-void amd64_db_resume_dbreg(void);
#endif /* !_MACHINE_MD_VAR_H_ */
Index: head/sys/amd64/include/smp.h
===================================================================
--- head/sys/amd64/include/smp.h
+++ head/sys/amd64/include/smp.h
@@ -19,106 +19,25 @@
#ifndef LOCORE
-#include <sys/bus.h>
-#include <machine/frame.h>
-#include <machine/intr_machdep.h>
-#include <x86/apicvar.h>
-#include <machine/pcb.h>
+#include <x86/x86_smp.h>
-struct pmap;
+extern int pmap_pcid_enabled;
+extern int invpcid_works;
/* global symbols in mpboot.S */
extern char mptramp_start[];
extern char mptramp_end[];
extern u_int32_t mptramp_pagetables;
-/* global data in mp_machdep.c */
-extern int mp_naps;
-extern int boot_cpu_id;
-extern struct pcb stoppcbs[];
-extern int cpu_apic_ids[];
-extern void *dpcpu;
-extern char *bootSTK;
-extern int bootAP;
-extern void *bootstacks[];
-extern volatile u_int cpu_ipi_pending[];
-extern volatile int aps_ready;
-extern struct mtx ap_boot_mtx;
-extern int cpu_logical;
-extern int cpu_cores;
-extern int pmap_pcid_enabled;
-extern int invpcid_works;
-extern u_int xhits_gbl[];
-extern u_int xhits_pg[];
-extern u_int xhits_rng[];
-extern u_int ipi_global;
-extern u_int ipi_page;
-extern u_int ipi_range;
-extern u_int ipi_range_size;
-extern struct pmap *smp_tlb_pmap;
-
-extern volatile int smp_tlb_wait;
-
-struct cpu_info {
- int cpu_present:1;
- int cpu_bsp:1;
- int cpu_disabled:1;
- int cpu_hyperthread:1;
-};
-extern struct cpu_info cpu_info[];
-
-#ifdef COUNT_IPIS
-extern u_long *ipi_invltlb_counts[MAXCPU];
-extern u_long *ipi_invlrng_counts[MAXCPU];
-extern u_long *ipi_invlpg_counts[MAXCPU];
-extern u_long *ipi_invlcache_counts[MAXCPU];
-extern u_long *ipi_rendezvous_counts[MAXCPU];
-#endif
-
/* IPI handlers */
inthand_t
- IDTVEC(invltlb), /* TLB shootdowns - global */
IDTVEC(invltlb_pcid), /* TLB shootdowns - global, pcid */
IDTVEC(invltlb_invpcid),/* TLB shootdowns - global, invpcid */
- IDTVEC(invlpg), /* TLB shootdowns - 1 page */
- IDTVEC(invlrng), /* TLB shootdowns - page range */
- IDTVEC(invlcache), /* Write back and invalidate cache */
- IDTVEC(ipi_intr_bitmap_handler), /* Bitmap based IPIs */
- IDTVEC(cpustop), /* CPU stops & waits to be restarted */
- IDTVEC(cpususpend), /* CPU suspends & waits to be resumed */
- IDTVEC(justreturn), /* interrupt CPU with minimum overhead */
- IDTVEC(rendezvous); /* handle CPU rendezvous */
-
-/* functions in mp_machdep.c */
-void assign_cpu_ids(void);
-void cpu_add(u_int apic_id, char boot_cpu);
-void cpustop_handler(void);
-void cpususpend_handler(void);
-void init_secondary_tail(void);
-void invltlb_handler(void);
+ IDTVEC(justreturn); /* interrupt CPU with minimum overhead */
+
void invltlb_pcid_handler(void);
void invltlb_invpcid_handler(void);
-void invlpg_handler(void);
-void invlrng_handler(void);
-void invlcache_handler(void);
-void init_secondary(void);
-void ipi_startup(int apic_id, int vector);
-void ipi_all_but_self(u_int ipi);
-void ipi_bitmap_handler(struct trapframe frame);
-void ipi_cpu(int cpu, u_int ipi);
-int ipi_nmi_handler(void);
-void ipi_selected(cpuset_t cpus, u_int ipi);
-u_int mp_bootaddress(u_int);
-void set_interrupt_apic_ids(void);
-void smp_cache_flush(void);
-void smp_masked_invlpg(cpuset_t mask, vm_offset_t addr);
-void smp_masked_invlpg_range(cpuset_t mask, vm_offset_t startva,
- vm_offset_t endva);
-void smp_masked_invltlb(cpuset_t mask, struct pmap *pmap);
int native_start_all_aps(void);
-void mem_range_AP_init(void);
-void topo_probe(void);
-void ipi_send_cpu(int cpu, u_int ipi);
#endif /* !LOCORE */
#endif /* SMP */
Index: head/sys/i386/i386/mp_machdep.c
===================================================================
--- head/sys/i386/i386/mp_machdep.c
+++ head/sys/i386/i386/mp_machdep.c
@@ -301,10 +301,6 @@
init_secondary_tail();
}
-/*******************************************************************
- * local functions and data
- */
-
/*
* start each AP in our list
*/
Index: head/sys/i386/include/md_var.h
===================================================================
--- head/sys/i386/include/md_var.h
+++ head/sys/i386/include/md_var.h
@@ -32,46 +32,12 @@
#ifndef _MACHINE_MD_VAR_H_
#define _MACHINE_MD_VAR_H_
-/*
- * Miscellaneous machine-dependent declarations.
- */
+#include <x86/x86_var.h>
-extern long Maxmem;
-extern u_int basemem; /* PA of original top of base memory */
-extern int busdma_swi_pending;
-extern u_int cpu_exthigh;
-extern u_int cpu_feature;
-extern u_int cpu_feature2;
-extern u_int amd_feature;
-extern u_int amd_feature2;
-extern u_int amd_pminfo;
-extern u_int via_feature_rng;
-extern u_int via_feature_xcrypt;
-extern u_int cpu_clflush_line_size;
-extern u_int cpu_stdext_feature;
-extern u_int cpu_stdext_feature2;
-extern u_int cpu_fxsr;
-extern u_int cpu_high;
-extern u_int cpu_id;
-extern u_int cpu_max_ext_state_size;
-extern u_int cpu_mxcsr_mask;
-extern u_int cpu_procinfo;
-extern u_int cpu_procinfo2;
-extern char cpu_vendor[];
-extern u_int cpu_vendor_id;
-extern u_int cpu_mon_mwait_flags;
-extern u_int cpu_mon_min_size;
-extern u_int cpu_mon_max_size;
-extern u_int cpu_maxphyaddr;
extern u_int cyrix_did;
#if defined(I586_CPU) && !defined(NO_F00F_HACK)
extern int has_f00f_bug;
#endif
-extern u_int hv_high;
-extern char hv_vendor[];
-extern char kstack[];
-extern char sigcode[];
-extern int szsigcode;
#ifdef COMPAT_FREEBSD4
extern int szfreebsd4_sigcode;
#endif
@@ -79,29 +45,12 @@
extern int szosigcode;
#endif
extern uint32_t *vm_page_dump;
-extern int vm_page_dump_size;
-extern int workaround_erratum383;
-extern int _udatasel;
-extern int _ucodesel;
-extern int use_xsave;
-extern uint64_t xsave_mask;
typedef void alias_for_inthand_t(u_int cs, u_int ef, u_int esp, u_int ss);
-struct pcb;
-union savefpu;
-struct thread;
-struct reg;
-struct fpreg;
-struct dbreg;
-struct dumperinfo;
struct segment_descriptor;
+union savefpu;
-void *alloc_fpusave(int flags);
void bcopyb(const void *from, void *to, size_t len);
-void busdma_swi(void);
-bool cpu_mwait_usable(void);
-void cpu_probe_amdc1e(void);
-void cpu_setregs(void);
void cpu_switch_load_gs(void) __asm(__STRING(cpu_switch_load_gs));
void doreti_iret(void) __asm(__STRING(doreti_iret));
void doreti_iret_fault(void) __asm(__STRING(doreti_iret_fault));
@@ -111,26 +60,14 @@
void doreti_popl_es_fault(void) __asm(__STRING(doreti_popl_es_fault));
void doreti_popl_fs(void) __asm(__STRING(doreti_popl_fs));
void doreti_popl_fs_fault(void) __asm(__STRING(doreti_popl_fs_fault));
-void dump_add_page(vm_paddr_t);
-void dump_drop_page(vm_paddr_t);
void finishidentcpu(void);
-void fillw(int /*u_short*/ pat, void *base, size_t cnt);
void fill_based_sd(struct segment_descriptor *sdp, uint32_t base);
-void initializecpu(void);
-void initializecpucache(void);
-bool intel_fix_cpuid(void);
void i686_pagezero(void *addr);
void sse2_pagezero(void *addr);
void init_AMD_Elan_sc520(void);
-int is_physical_memory(vm_paddr_t addr);
-int isa_nmi(int cd);
vm_paddr_t kvtop(void *addr);
-void panicifcpuunsupported(void);
void ppro_reenable_apic(void);
-void printcpuinfo(void);
void setidt(int idx, alias_for_inthand_t *func, int typ, int dpl, int selec);
-int user_dbreg_trap(void);
-int minidumpsys(struct dumperinfo *);
union savefpu *get_pcb_user_save_td(struct thread *td);
union savefpu *get_pcb_user_save_pcb(struct pcb *pcb);
struct pcb *get_pcb_td(struct thread *td);
Index: head/sys/i386/include/smp.h
===================================================================
--- head/sys/i386/include/smp.h
+++ head/sys/i386/include/smp.h
@@ -19,6 +19,8 @@
#ifndef LOCORE
+#include <x86/x86_smp.h>
+
#include <sys/bus.h>
#include <machine/frame.h>
#include <machine/intr_machdep.h>
@@ -26,88 +28,10 @@
#include <machine/pcb.h>
/* global data in mpboot.s */
-extern int bootMP_size;
+extern int bootMP_size;
/* functions in mpboot.s */
-void bootMP(void);
-
-/* global data in mp_machdep.c */
-extern int mp_naps;
-extern int boot_cpu_id;
-extern struct pcb stoppcbs[];
-extern int cpu_apic_ids[];
-extern int bootAP;
-extern void *dpcpu;
-extern char *bootSTK;
-extern void *bootstacks[];
-extern volatile u_int cpu_ipi_pending[];
-extern volatile int aps_ready;
-extern struct mtx ap_boot_mtx;
-extern int cpu_logical;
-extern int cpu_cores;
-extern volatile int smp_tlb_wait;
-extern u_int xhits_gbl[];
-extern u_int xhits_pg[];
-extern u_int xhits_rng[];
-extern u_int ipi_global;
-extern u_int ipi_page;
-extern u_int ipi_range;
-extern u_int ipi_range_size;
-
-struct cpu_info {
- int cpu_present:1;
- int cpu_bsp:1;
- int cpu_disabled:1;
- int cpu_hyperthread:1;
-};
-extern struct cpu_info cpu_info[];
-
-#ifdef COUNT_IPIS
-extern u_long *ipi_invltlb_counts[MAXCPU];
-extern u_long *ipi_invlrng_counts[MAXCPU];
-extern u_long *ipi_invlpg_counts[MAXCPU];
-extern u_long *ipi_invlcache_counts[MAXCPU];
-extern u_long *ipi_rendezvous_counts[MAXCPU];
-#endif
-
-/* IPI handlers */
-inthand_t
- IDTVEC(invltlb), /* TLB shootdowns - global */
- IDTVEC(invlpg), /* TLB shootdowns - 1 page */
- IDTVEC(invlrng), /* TLB shootdowns - page range */
- IDTVEC(invlcache), /* Write back and invalidate cache */
- IDTVEC(ipi_intr_bitmap_handler), /* Bitmap based IPIs */
- IDTVEC(cpustop), /* CPU stops & waits to be restarted */
- IDTVEC(cpususpend), /* CPU suspends & waits to be resumed */
- IDTVEC(rendezvous); /* handle CPU rendezvous */
-
-/* functions in mp_machdep.c */
-void assign_cpu_ids(void);
-void cpu_add(u_int apic_id, char boot_cpu);
-void cpustop_handler(void);
-void cpususpend_handler(void);
-void init_secondary_tail(void);
-void invltlb_handler(void);
-void invlpg_handler(void);
-void invlrng_handler(void);
-void invlcache_handler(void);
-void init_secondary(void);
-void ipi_startup(int apic_id, int vector);
-void ipi_all_but_self(u_int ipi);
-void ipi_bitmap_handler(struct trapframe frame);
-void ipi_cpu(int cpu, u_int ipi);
-int ipi_nmi_handler(void);
-void ipi_selected(cpuset_t cpus, u_int ipi);
-u_int mp_bootaddress(u_int);
-void set_interrupt_apic_ids(void);
-void smp_cache_flush(void);
-void smp_masked_invlpg(cpuset_t mask, vm_offset_t addr);
-void smp_masked_invlpg_range(cpuset_t mask, vm_offset_t startva,
- vm_offset_t endva);
-void smp_masked_invltlb(cpuset_t mask, struct pmap *pmap);
-void mem_range_AP_init(void);
-void topo_probe(void);
-void ipi_send_cpu(int cpu, u_int ipi);
+void bootMP(void);
#endif /* !LOCORE */
#endif /* SMP */
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Fri, May 15, 2:15 AM (8 h, 50 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
33070430
Default Alt Text
D4358.id.diff (13 KB)
Attached To
Mode
D4358: Merge i386 and amd64 md_var.h and smp.h.
Attached
Detach File
Event Timeline
Log In to Comment