1 #ifndef __X86_SETUP_H_
2 #define __X86_SETUP_H_
3 
4 #include <xen/multiboot.h>
5 #include <asm/numa.h>
6 
7 extern const char __2M_text_start[], __2M_text_end[];
8 extern const char __2M_rodata_start[], __2M_rodata_end[];
9 extern char __2M_init_start[], __2M_init_end[];
10 extern char __2M_rwdata_start[], __2M_rwdata_end[];
11 
12 extern unsigned long xenheap_initial_phys_start;
13 extern uint64_t boot_tsc_stamp;
14 
15 extern void *stack_start;
16 extern unsigned int multiboot_ptr;
17 
18 void early_cpu_init(bool verbose);
19 void early_time_init(void);
20 
21 void set_nr_cpu_ids(unsigned int max_cpus);
22 
23 void arch_init_memory(void);
24 void subarch_init_memory(void);
25 
26 void init_IRQ(void);
27 
28 struct boot_domain;
29 int construct_dom0(const struct boot_domain *bd);
30 
31 void setup_io_bitmap(struct domain *d);
32 
33 extern struct boot_info xen_boot_info;
34 
35 unsigned long initial_images_nrpages(nodeid_t node);
36 void free_boot_modules(void);
37 
38 struct boot_module;
39 void *bootstrap_map_bm(const struct boot_module *bm);
40 void bootstrap_unmap(void);
41 
42 void release_boot_module(struct boot_module *bm);
43 
44 struct rangeset;
45 int remove_xen_ranges(struct rangeset *r);
46 
47 int cf_check stub_selftest(void);
48 
49 #ifdef NDEBUG
50 # define highmem_start 0
51 #else
52 extern unsigned long highmem_start;
53 #endif
54 
55 extern unsigned int i8259A_alias_mask;
56 extern unsigned int pit_alias_mask;
57 
58 extern int8_t opt_smt;
59 extern int8_t opt_probe_port_aliases;
60 
61 #ifdef CONFIG_SHADOW_PAGING
62 extern bool opt_dom0_shadow;
63 #else
64 #define opt_dom0_shadow false
65 #endif
66 extern bool opt_dom0_pvh;
67 extern bool opt_dom0_verbose;
68 extern bool opt_dom0_cpuid_faulting;
69 extern bool opt_dom0_msr_relaxed;
70 
71 #define max_init_domid (0)
72 
73 #endif
74