... decreasing cache footprint. As a prerequisite this requires making cmdline_parse() a little more flexible. Also remove a few variables altogether, and adjust sections annotations for several others. Signed-off-by: Jan Beulich --- a/xen/arch/ia64/xen/xenmem.c +++ b/xen/arch/ia64/xen/xenmem.c @@ -30,7 +30,7 @@ ((1UL << (PAGE_SHIFT - 3)) - 1))) static unsigned long table_size; -static int opt_contig_mem = 0; +static bool_t __read_mostly opt_contig_mem; boolean_param("contig_mem", opt_contig_mem); #else #define opt_contig_mem 1 --- a/xen/arch/ia64/xen/xensetup.c +++ b/xen/arch/ia64/xen/xensetup.c @@ -56,7 +56,7 @@ extern void trap_init(void); extern void xen_patch_kernel(void); /* nosmp: ignore secondary processors */ -static int __initdata opt_nosmp; +static bool_t __initdata opt_nosmp; boolean_param("nosmp", opt_nosmp); /* maxcpus: maximum number of CPUs to activate */ @@ -70,7 +70,7 @@ static int __initdata opt_xencons = 1; integer_param("xencons", opt_xencons); /* xencons_poll: toggle non-legacy xencons UARTs to run in polling mode */ -static int __initdata opt_xencons_poll; +static bool_t __initdata opt_xencons_poll; boolean_param("xencons_poll", opt_xencons_poll); #define XENHEAP_DEFAULT_SIZE KERNEL_TR_PAGE_SIZE @@ -148,7 +148,7 @@ struct ns16550_defaults ns16550_com2 = { }; /* efi_print: print efi table at boot */ -static int __initdata opt_efi_print; +static bool_t __initdata opt_efi_print; boolean_param("efi_print", opt_efi_print); /* print EFI memory map: */ --- a/xen/arch/x86/acpi/boot.c +++ b/xen/arch/x86/acpi/boot.c @@ -53,22 +53,20 @@ int sbf_port; #define PREFIX "ACPI: " #ifdef CONFIG_ACPI_PCI -int acpi_noirq __initdata; /* skip ACPI IRQ initialization */ -int acpi_pci_disabled __initdata; /* skip ACPI PCI scan and IRQ initialization */ +bool_t __initdata acpi_noirq; /* skip ACPI IRQ initialization */ +bool_t __initdata acpi_pci_disabled; /* skip ACPI PCI scan and IRQ initialization */ #else -int acpi_noirq __initdata = 1; -int acpi_pci_disabled __initdata = 1; +bool_t __initdata acpi_noirq = 1; +bool_t __initdata acpi_pci_disabled = 1; #endif -int acpi_ht __initdata = 1; /* enable HT */ +bool_t __initdata acpi_ht = 1; /* enable HT */ -int acpi_lapic; -int acpi_ioapic; -int acpi_strict; -EXPORT_SYMBOL(acpi_strict); +bool_t __initdata acpi_lapic; +bool_t __initdata acpi_ioapic; u8 acpi_sci_flags __initdata; int acpi_sci_override_gsi __initdata; -int acpi_skip_timer_override __initdata; +bool_t acpi_skip_timer_override __initdata; #ifdef CONFIG_X86_LOCAL_APIC static u64 acpi_lapic_addr __initdata = APIC_DEFAULT_PHYS_BASE; @@ -687,8 +685,6 @@ static void __init acpi_process_madt(voi return; } -extern int acpi_force; - #ifdef __i386__ static int __init disable_acpi_irq(struct dmi_system_id *d) --- a/xen/arch/x86/acpi/cpu_idle.c +++ b/xen/arch/x86/acpi/cpu_idle.c @@ -79,7 +79,7 @@ extern void menu_get_trace_data(u32 *exp static void (*pm_idle_save) (void) __read_mostly; unsigned int max_cstate __read_mostly = ACPI_PROCESSOR_MAX_POWER - 1; integer_param("max_cstate", max_cstate); -static int local_apic_timer_c2_ok __read_mostly = 0; +static bool_t __read_mostly local_apic_timer_c2_ok; boolean_param("lapic_timer_c2_ok", local_apic_timer_c2_ok); static struct acpi_processor_power *__read_mostly processor_powers[NR_CPUS]; --- a/xen/arch/x86/apic.c +++ b/xen/arch/x86/apic.c @@ -43,8 +43,8 @@ #define APIC_TIMER_MODE_TSC_DEADLINE (2 << 17) #define APIC_TIMER_MODE_MASK (3 << 17) -static int tdt_enabled __read_mostly; -static int tdt_enable __initdata = 1; +static bool_t tdt_enabled __read_mostly; +static bool_t tdt_enable __initdata = 1; boolean_param("tdt", tdt_enable); static struct { @@ -76,7 +76,7 @@ static int enable_local_apic __initdata */ int apic_verbosity; -static int opt_x2apic = 1; +static bool_t __initdata opt_x2apic = 1; boolean_param("x2apic", opt_x2apic); int x2apic_enabled __read_mostly = 0; --- a/xen/arch/x86/cpu/common.c +++ b/xen/arch/x86/cpu/common.c @@ -19,10 +19,13 @@ #define disable_pse 0 static int cachesize_override __cpuinitdata = -1; -static int disable_x86_fxsr __cpuinitdata; -static int disable_x86_serial_nr __cpuinitdata; +size_param("cachesize", cachesize_override); +static bool_t __cpuinitdata disable_x86_fxsr; +boolean_param("nofxsr", disable_x86_fxsr); +static bool_t __cpuinitdata disable_x86_serial_nr; +boolean_param("noserialnumber", disable_x86_serial_nr); -static int use_xsave; +static bool_t __cpuinitdata use_xsave; boolean_param("xsave", use_xsave); unsigned int __devinitdata opt_cpuid_mask_ecx = ~0u; integer_param("cpuid_mask_ecx", opt_cpuid_mask_ecx); @@ -66,9 +69,7 @@ static struct cpu_dev default_cpu = { }; static struct cpu_dev * this_cpu = &default_cpu; -integer_param("cachesize", cachesize_override); - -int __cpuinitdata opt_cpu_info; +bool_t __cpuinitdata opt_cpu_info; boolean_param("cpuinfo", opt_cpu_info); int __cpuinit get_model_name(struct cpuinfo_x86 *c) @@ -194,9 +195,6 @@ static void __cpuinit get_cpu_vendor(str } -boolean_param("nofxsr", disable_x86_fxsr); - - /* Standard macro to see if a specific flag is changeable */ static inline int flag_is_changeable_p(unsigned long flag) { @@ -343,9 +341,6 @@ static void __cpuinit squash_the_stupid_ } } -boolean_param("noserialnumber", disable_x86_serial_nr); - - /* * This does the hard work of actually picking apart the CPU stuff... --- a/xen/arch/x86/cpu/mcheck/mce.c +++ b/xen/arch/x86/cpu/mcheck/mce.c @@ -23,13 +23,12 @@ #include "mce.h" -int mce_disabled; +bool_t __read_mostly mce_disabled; invbool_param("mce", mce_disabled); -int is_mc_panic; -unsigned int nr_mce_banks; - -int mce_broadcast = 0; -int firstbank; +bool_t __read_mostly mce_broadcast = 0; +bool_t is_mc_panic; +unsigned int __read_mostly nr_mce_banks; +int __read_mostly firstbank; static void intpose_init(void); static void mcinfo_clear(struct mc_info *); --- a/xen/arch/x86/cpu/mcheck/mce.h +++ b/xen/arch/x86/cpu/mcheck/mce.h @@ -128,10 +128,9 @@ struct mca_summary { DECLARE_PER_CPU(struct mca_banks *, poll_bankmask); DECLARE_PER_CPU(struct mca_banks *, no_cmci_banks); -extern int cmci_support; -extern int ser_support; -extern int is_mc_panic; -extern int mce_broadcast; +extern bool_t cmci_support; +extern bool_t is_mc_panic; +extern bool_t mce_broadcast; extern void mcheck_mca_clearbanks(struct mca_banks *); extern mctelem_cookie_t mcheck_mca_logout(enum mca_source, struct mca_banks *, --- a/xen/arch/x86/cpu/mcheck/mce_intel.c +++ b/xen/arch/x86/cpu/mcheck/mce_intel.c @@ -20,9 +20,9 @@ DEFINE_PER_CPU(struct mca_banks *, mce_banks_owned); DEFINE_PER_CPU(struct mca_banks *, no_cmci_banks); DEFINE_PER_CPU(struct mca_banks *, mce_clear_banks); -int cmci_support = 0; -int ser_support = 0; -static int mce_force_broadcast; +bool_t __read_mostly cmci_support = 0; +static bool_t __read_mostly ser_support = 0; +static bool_t __read_mostly mce_force_broadcast; boolean_param("mce_fb", mce_force_broadcast); static int nr_intel_ext_msrs = 0; @@ -1135,7 +1135,8 @@ static int mce_is_broadcast(struct cpuin /* Check and init MCA */ static void intel_init_mca(struct cpuinfo_x86 *c) { - int broadcast, cmci=0, ser=0, ext_num = 0, first; + bool_t broadcast, cmci = 0, ser = 0; + int ext_num = 0, first; uint64_t msr_content; broadcast = mce_is_broadcast(c); --- a/xen/arch/x86/cpu/mcheck/x86_mca.h +++ b/xen/arch/x86/cpu/mcheck/x86_mca.h @@ -179,7 +179,7 @@ struct mca_error_handler }; /* Global variables */ -extern int mce_disabled; +extern bool_t mce_disabled; extern unsigned int nr_mce_banks; #endif /* X86_MCA_H */ --- a/xen/arch/x86/dmi_scan.c +++ b/xen/arch/x86/dmi_scan.c @@ -200,8 +200,6 @@ static __init int reset_videomode_after_ #ifdef CONFIG_ACPI_BOOT -extern int acpi_force; - static __init __attribute__((unused)) int dmi_disable_acpi(struct dmi_blacklist *d) { if (!acpi_force) { --- a/xen/arch/x86/domain_build.c +++ b/xen/arch/x86/domain_build.c @@ -100,7 +100,7 @@ struct vcpu *__init alloc_dom0_vcpu0(voi return alloc_vcpu(dom0, 0, 0); } -static unsigned int __initdata opt_dom0_shadow; +static bool_t __initdata opt_dom0_shadow; boolean_param("dom0_shadow", opt_dom0_shadow); static char __initdata opt_dom0_ioports_disable[200] = ""; --- a/xen/arch/x86/e820.c +++ b/xen/arch/x86/e820.c @@ -25,11 +25,11 @@ static unsigned long long __initdata opt size_param("availmem", opt_availmem); /* opt_nomtrr_check: Don't clip ram to highest cacheable MTRR. */ -static int __initdata e820_mtrr_clip = -1; +static s8 __initdata e820_mtrr_clip = -1; boolean_param("e820-mtrr-clip", e820_mtrr_clip); /* opt_e820_verbose: Be verbose about clipping, the original e820, &c */ -static int __initdata e820_verbose; +static bool_t __initdata e820_verbose; boolean_param("e820-verbose", e820_verbose); struct e820map e820; @@ -429,7 +429,7 @@ static void __init clip_to_limit(uint64_ /* Conservative estimate of top-of-RAM by looking for MTRR WB regions. */ #define MSR_MTRRphysBase(reg) (0x200 + 2 * (reg)) #define MSR_MTRRphysMask(reg) (0x200 + 2 * (reg) + 1) -static uint64_t mtrr_top_of_ram(void) +static uint64_t __init mtrr_top_of_ram(void) { uint32_t eax, ebx, ecx, edx; uint64_t mtrr_cap, mtrr_def, addr_mask, base, mask, top; --- a/xen/arch/x86/genapic/x2apic.c +++ b/xen/arch/x86/genapic/x2apic.c @@ -27,7 +27,7 @@ #include #include -static int __initdata x2apic_phys; /* By default we use logical cluster mode. */ +static bool_t __initdata x2apic_phys; /* By default we use logical cluster mode. */ boolean_param("x2apic_phys", x2apic_phys); static void init_apic_ldr_x2apic_phys(void) --- a/xen/arch/x86/hpet.c +++ b/xen/arch/x86/hpet.c @@ -72,7 +72,7 @@ unsigned long hpet_address; * if RTC interrupts are enabled. Enable this option if want to always enable * legacy hpet broadcast for deep C state */ -int force_hpet_broadcast; +static bool_t __read_mostly force_hpet_broadcast; boolean_param("hpetbroadcast", force_hpet_broadcast); /* --- a/xen/arch/x86/hvm/quirks.c +++ b/xen/arch/x86/hvm/quirks.c @@ -23,7 +23,7 @@ #include #include -int __read_mostly hvm_port80_allowed = -1; +s8 __read_mostly hvm_port80_allowed = -1; boolean_param("hvm_port80", hvm_port80_allowed); static int __init dmi_hvm_deny_port80(/*const*/ struct dmi_system_id *id) --- a/xen/arch/x86/hvm/vmx/vmcs.c +++ b/xen/arch/x86/hvm/vmx/vmcs.c @@ -38,10 +38,10 @@ #include #include -static int __read_mostly opt_vpid_enabled = 1; +static bool_t __read_mostly opt_vpid_enabled = 1; boolean_param("vpid", opt_vpid_enabled); -static int __read_mostly opt_unrestricted_guest_enabled = 1; +static bool_t __read_mostly opt_unrestricted_guest_enabled = 1; boolean_param("unrestricted_guest", opt_unrestricted_guest_enabled); /* --- a/xen/arch/x86/hvm/vpmu.c +++ b/xen/arch/x86/hvm/vpmu.c @@ -33,7 +33,7 @@ #include #include -static int __read_mostly opt_vpmu_enabled; +static bool_t __read_mostly opt_vpmu_enabled; boolean_param("vpmu", opt_vpmu_enabled); int vpmu_do_wrmsr(unsigned int msr, uint64_t msr_content) --- a/xen/arch/x86/io_apic.c +++ b/xen/arch/x86/io_apic.c @@ -43,7 +43,7 @@ static struct { int pin, apic; } ioapic_ static DEFINE_SPINLOCK(ioapic_lock); -int skip_ioapic_setup; +bool_t __read_mostly skip_ioapic_setup; #ifndef sis_apic_bug /* @@ -619,7 +619,7 @@ void /*__init*/ setup_ioapic_dest(void) int pin, ioapic, irq, irq_entry; struct irq_cfg *cfg; - if (skip_ioapic_setup == 1) + if (skip_ioapic_setup) return; for (ioapic = 0; ioapic < nr_ioapics; ioapic++) { --- a/xen/arch/x86/irq.c +++ b/xen/arch/x86/irq.c @@ -25,7 +25,7 @@ #include /* opt_noirqbalance: If true, software IRQ balancing/affinity is disabled. */ -int __read_mostly opt_noirqbalance = 0; +bool_t __read_mostly opt_noirqbalance = 0; boolean_param("noirqbalance", opt_noirqbalance); unsigned int __read_mostly nr_irqs_gsi = 16; --- a/xen/arch/x86/mm.c +++ b/xen/arch/x86/mm.c @@ -137,7 +137,7 @@ l1_pgentry_t __attribute__ ((__section__ #define PTE_UPDATE_WITH_CMPXCHG #endif -int mem_hotplug = 0; +bool_t __read_mostly mem_hotplug = 0; /* Private domain structs for DOMID_XEN and DOMID_IO. */ struct domain *dom_xen, *dom_io, *dom_cow; @@ -154,7 +154,7 @@ bool_t __read_mostly mpt_valid; #define PAGE_CACHE_ATTRS (_PAGE_PAT|_PAGE_PCD|_PAGE_PWT) -int opt_allow_superpage; +bool_t __read_mostly opt_allow_superpage; boolean_param("allowsuperpage", opt_allow_superpage); #ifdef __i386__ --- a/xen/arch/x86/mm/p2m.c +++ b/xen/arch/x86/mm/p2m.c @@ -40,7 +40,7 @@ #define P2M_DEBUGGING 0 /* turn on/off 1GB host page table support for hap */ -static int opt_hap_1gb = 0; +static bool_t __read_mostly opt_hap_1gb; boolean_param("hap_1gb", opt_hap_1gb); /* Printouts */ --- a/xen/arch/x86/platform_hypercall.c +++ b/xen/arch/x86/platform_hypercall.c @@ -178,7 +178,6 @@ ret_t do_platform_op(XEN_GUEST_HANDLE(xe case XENPF_platform_quirk: { - extern int opt_noirqbalance; int quirk_id = op->u.platform_quirk.quirk_id; ret = xsm_platform_quirk(quirk_id); --- a/xen/arch/x86/setup.c +++ b/xen/arch/x86/setup.c @@ -50,7 +50,7 @@ extern u8 boot_edid_info[128]; extern struct boot_video_info boot_vid_info; /* opt_nosmp: If true, secondary processors are ignored. */ -static int __initdata opt_nosmp = 0; +static bool_t __initdata opt_nosmp; boolean_param("nosmp", opt_nosmp); /* maxcpus: maximum number of CPUs to activate. */ @@ -58,7 +58,7 @@ static unsigned int __initdata max_cpus integer_param("maxcpus", max_cpus); /* opt_watchdog: If true, run a watchdog NMI on each processor. */ -static int __initdata opt_watchdog = 0; +static bool_t __initdata opt_watchdog; boolean_param("watchdog", opt_watchdog); /* **** Linux config option: propagated to domain0. */ @@ -80,10 +80,10 @@ boolean_param("noapic", skip_ioapic_setu /* **** Linux config option: propagated to domain0. */ /* xen_cpuidle: xen control cstate. */ -/*static*/ int xen_cpuidle = -1; +s8 __read_mostly xen_cpuidle = -1; boolean_param("cpuidle", xen_cpuidle); -int early_boot = 1; +bool_t __read_mostly early_boot = 1; cpumask_t __read_mostly cpu_present_map; @@ -103,9 +103,8 @@ struct cpuinfo_x86 __read_mostly boot_cp unsigned long __read_mostly mmu_cr4_features = X86_CR4_PSE | X86_CR4_PGE | X86_CR4_PAE; -int __read_mostly acpi_disabled; - -int __read_mostly acpi_force; +bool_t __initdata acpi_disabled; +bool_t __initdata acpi_force; static char __initdata acpi_param[10] = ""; static void __init parse_acpi_param(char *s) { @@ -123,10 +122,6 @@ static void __init parse_acpi_param(char acpi_ht = 1; acpi_disabled = 0; } - else if ( !strcmp(s, "strict") ) - { - acpi_strict = 1; - } else if ( !strcmp(s, "ht") ) { if ( !acpi_force ) --- a/xen/arch/x86/time.c +++ b/xen/arch/x86/time.c @@ -175,7 +175,6 @@ static inline struct time_scale scale_re * cpu_mask that denotes the CPUs that needs timer interrupt coming in as * IPIs in place of local APIC timers */ -extern int xen_cpuidle; static cpumask_t pit_broadcast_mask; static void smp_send_timer_broadcast_ipi(void) --- a/xen/arch/x86/traps.c +++ b/xen/arch/x86/traps.c @@ -127,7 +127,7 @@ void (*ioemul_handle_quirk)( static int debug_stack_lines = 20; integer_param("debug_stack_lines", debug_stack_lines); -static int opt_ler; +static bool_t __devinitdata opt_ler; boolean_param("ler", opt_ler); #ifdef CONFIG_X86_32 --- a/xen/common/domain.c +++ b/xen/common/domain.c @@ -41,7 +41,7 @@ unsigned int xen_processor_pmbits = XEN_PROCESSOR_PM_PX; /* opt_dom0_vcpus_pin: If true, dom0 VCPUs are pinned. */ -static unsigned int opt_dom0_vcpus_pin; +static bool_t opt_dom0_vcpus_pin; boolean_param("dom0_vcpus_pin", opt_dom0_vcpus_pin); /* set xen as default cpufreq */ --- a/xen/common/kernel.c +++ b/xen/common/kernel.c @@ -70,6 +70,8 @@ void __init cmdline_parse(char *cmdline) for ( param = &__setup_start; param <= &__setup_end; param++ ) { + uint64_t val; + if ( strcmp(param->name, optkey) ) continue; @@ -77,36 +79,43 @@ void __init cmdline_parse(char *cmdline) { case OPT_STR: strlcpy(param->var, optval, param->len); - break; + continue; case OPT_UINT: - *(unsigned int *)param->var = simple_strtol(optval, NULL, 0); + val = simple_strtoll(optval, NULL, 0); break; case OPT_BOOL: case OPT_INVBOOL: if ( !parse_bool(optval) ) bool_assert = !bool_assert; - if ( param->type == OPT_INVBOOL ) - bool_assert = !bool_assert; - *(int *)param->var = bool_assert; + val = (param->type == OPT_BOOL) == bool_assert; break; - case OPT_SIZE: { - uint64_t sz = parse_size_and_unit(optval, NULL); - switch ( param->len ) - { - case sizeof(uint32_t): - *(uint32_t *)param->var = sz; - break; - case sizeof(uint64_t): - *(uint64_t *)param->var = sz; - break; - default: - BUG(); - } + case OPT_SIZE: + val = parse_size_and_unit(optval, NULL); break; - } case OPT_CUSTOM: ((void (*)(const char *))param->var)(optval); + continue; + default: + BUG(); + continue; + } + + switch ( param->len ) + { + case sizeof(uint8_t): + *(uint8_t *)param->var = val; + break; + case sizeof(uint16_t): + *(uint16_t *)param->var = val; + break; + case sizeof(uint32_t): + *(uint32_t *)param->var = val; + break; + case sizeof(uint64_t): + *(uint64_t *)param->var = val; break; + default: + BUG(); } } } --- a/xen/common/page_alloc.c +++ b/xen/common/page_alloc.c @@ -51,7 +51,7 @@ string_param("badpage", opt_badpage); /* * no-bootscrub -> Free pages are not zeroed during boot. */ -static int opt_bootscrub __initdata = 1; +static bool_t opt_bootscrub __initdata = 1; boolean_param("bootscrub", opt_bootscrub); /* --- a/xen/common/sched_credit.c +++ b/xen/common/sched_credit.c @@ -111,7 +111,7 @@ /* * Boot parameters */ -int sched_credit_default_yield = 0; +static bool_t __read_mostly sched_credit_default_yield; boolean_param("sched_credit_default_yield", sched_credit_default_yield); /* @@ -247,7 +247,7 @@ static void burn_credits(struct csched_v svc->start_time += (credits * MILLISECS(1)) / CSCHED_CREDITS_PER_MSEC; } -static int opt_tickle_one_idle __read_mostly = 1; +static bool_t __read_mostly opt_tickle_one_idle = 1; boolean_param("tickle_one_idle_cpu", opt_tickle_one_idle); DEFINE_PER_CPU(unsigned int, last_tickle_cpu); --- a/xen/common/schedule.c +++ b/xen/common/schedule.c @@ -43,7 +43,7 @@ string_param("sched", opt_sched); * scheduler will give preferrence to partially idle package compared to * the full idle package, when picking pCPU to schedule vCPU. */ -int sched_smt_power_savings = 0; +bool_t sched_smt_power_savings = 0; boolean_param("sched_smt_power_savings", sched_smt_power_savings); /* Various timer handlers. */ --- a/xen/common/shutdown.c +++ b/xen/common/shutdown.c @@ -11,7 +11,7 @@ #include /* opt_noreboot: If true, machine will need manual reset on error. */ -int opt_noreboot; +bool_t __read_mostly opt_noreboot; boolean_param("noreboot", opt_noreboot); static void maybe_reboot(void) --- a/xen/common/tmem_xen.c +++ b/xen/common/tmem_xen.c @@ -15,22 +15,22 @@ #define EXPORT /* indicates code other modules are dependent upon */ -EXPORT int opt_tmem = 1; +EXPORT bool_t __read_mostly opt_tmem = 1; boolean_param("tmem", opt_tmem); -EXPORT int opt_tmem_compress = 0; +EXPORT bool_t __read_mostly opt_tmem_compress = 0; boolean_param("tmem_compress", opt_tmem_compress); -EXPORT int opt_tmem_dedup = 0; +EXPORT bool_t __read_mostly opt_tmem_dedup = 0; boolean_param("tmem_dedup", opt_tmem_dedup); -EXPORT int opt_tmem_tze = 0; +EXPORT bool_t __read_mostly opt_tmem_tze = 0; boolean_param("tmem_tze", opt_tmem_tze); -EXPORT int opt_tmem_shared_auth = 0; +EXPORT bool_t __read_mostly opt_tmem_shared_auth = 0; boolean_param("tmem_shared_auth", opt_tmem_shared_auth); -EXPORT int opt_tmem_lock = 0; +EXPORT int __read_mostly opt_tmem_lock = 0; integer_param("tmem_lock", opt_tmem_lock); EXPORT atomic_t freeable_page_count = ATOMIC_INIT(0); --- a/xen/drivers/char/console.c +++ b/xen/drivers/char/console.c @@ -49,15 +49,15 @@ static unsigned char __read_mostly opt_c string_param("conswitch", opt_conswitch); /* sync_console: force synchronous console output (useful for debugging). */ -static int __read_mostly opt_sync_console; +static bool_t __initdata opt_sync_console; boolean_param("sync_console", opt_sync_console); /* console_to_ring: send guest (incl. dom 0) console data to console ring. */ -static int __read_mostly opt_console_to_ring; +static bool_t __read_mostly opt_console_to_ring; boolean_param("console_to_ring", opt_console_to_ring); /* console_timestamps: include a timestamp prefix on every Xen console line. */ -static int __read_mostly opt_console_timestamps; +static bool_t __read_mostly opt_console_timestamps; boolean_param("console_timestamps", opt_console_timestamps); /* conring_size: allows a large console ring than default (16kB). */ --- a/xen/drivers/passthrough/vtd/x86/vtd.c +++ b/xen/drivers/passthrough/vtd/x86/vtd.c @@ -34,7 +34,7 @@ * iommu_inclusive_mapping: when set, all memory below 4GB is included in dom0 * 1:1 iommu mappings except xen and unusable regions. */ -static int __read_mostly iommu_inclusive_mapping = 1; +static bool_t __initdata iommu_inclusive_mapping = 1; boolean_param("iommu_inclusive_mapping", iommu_inclusive_mapping); void *map_vtd_domain_page(u64 maddr) --- a/xen/include/asm-x86/acpi.h +++ b/xen/include/asm-x86/acpi.h @@ -78,15 +78,10 @@ int __acpi_release_global_lock(unsigned :"=r"(n_hi), "=r"(n_lo) \ :"0"(n_hi), "1"(n_lo)) -extern int acpi_lapic; -extern int acpi_ioapic; -extern int acpi_noirq; -extern int acpi_strict; -extern int acpi_disabled; -extern int acpi_ht; -extern int acpi_pci_disabled; -extern int acpi_skip_timer_override; -extern int acpi_use_timer_override; +extern bool_t acpi_lapic, acpi_ioapic, acpi_noirq; +extern bool_t acpi_force, acpi_ht; +extern bool_t acpi_disabled, acpi_pci_disabled; +extern bool_t acpi_skip_timer_override; extern u32 acpi_smi_cmd; extern u8 acpi_enable_value, acpi_disable_value; extern u8 acpi_sci_flags; --- a/xen/include/asm-x86/io_apic.h +++ b/xen/include/asm-x86/io_apic.h @@ -183,7 +183,7 @@ static inline void io_apic_modify(unsign } /* 1 if "noapic" boot option passed */ -extern int skip_ioapic_setup; +extern bool_t skip_ioapic_setup; #ifdef CONFIG_ACPI_BOOT extern int io_apic_get_unique_id (int ioapic, int apic_id); --- a/xen/include/asm-x86/irq.h +++ b/xen/include/asm-x86/irq.h @@ -38,6 +38,8 @@ DECLARE_PER_CPU(vector_irq_t, vector_irq extern u8 *irq_vector; +extern bool_t opt_noirqbalance; + /* * Per-cpu current frame pointer - the location of the last exception frame on * the stack --- a/xen/include/asm-x86/mm.h +++ b/xen/include/asm-x86/mm.h @@ -397,8 +397,8 @@ pae_copy_root(struct vcpu *v, l3_pgentry int check_descriptor(const struct domain *, struct desc_struct *d); -extern int opt_allow_superpage; -extern int mem_hotplug; +extern bool_t opt_allow_superpage; +extern bool_t mem_hotplug; /****************************************************************************** * With shadow pagetables, the different kinds of address start --- a/xen/include/asm-x86/processor.h +++ b/xen/include/asm-x86/processor.h @@ -195,7 +195,7 @@ extern struct cpuinfo_x86 cpu_data[]; extern u64 host_pat; extern int phys_proc_id[NR_CPUS]; extern int cpu_core_id[NR_CPUS]; -extern int opt_cpu_info; +extern bool_t opt_cpu_info; /* Maximum width of physical addresses supported by the hardware */ extern unsigned int paddr_bits; --- a/xen/include/asm-x86/setup.h +++ b/xen/include/asm-x86/setup.h @@ -3,7 +3,8 @@ #include -extern int early_boot; +extern bool_t early_boot; +extern s8 xen_cpuidle; extern unsigned long xenheap_initial_phys_start; void init_done(void); --- a/xen/include/xen/acpi.h +++ b/xen/include/xen/acpi.h @@ -440,8 +440,6 @@ static inline int acpi_get_pxm(acpi_hand } #endif -extern int pnpacpi_disabled; - void acpi_reboot(void); #endif /*_LINUX_ACPI_H*/ --- a/xen/include/xen/sched.h +++ b/xen/include/xen/sched.h @@ -630,7 +630,7 @@ void watchdog_domain_destroy(struct doma void set_vcpu_migration_delay(unsigned int delay); unsigned int get_vcpu_migration_delay(void); -extern int sched_smt_power_savings; +extern bool_t sched_smt_power_savings; extern enum cpufreq_controller { FREQCTL_none, FREQCTL_dom0_kernel, FREQCTL_xen --- a/xen/include/xen/shutdown.h +++ b/xen/include/xen/shutdown.h @@ -2,7 +2,7 @@ #define __XEN_SHUTDOWN_H__ /* opt_noreboot: If true, machine will need manual reset on error. */ -extern int opt_noreboot; +extern bool_t opt_noreboot; void dom0_shutdown(u8 reason); --- a/xen/include/xen/tmem_xen.h +++ b/xen/include/xen/tmem_xen.h @@ -51,20 +51,20 @@ extern int tmh_init(void); extern void tmh_release_avail_pages_to_host(void); extern void tmh_scrub_page(struct page_info *pi, unsigned int memflags); -extern int opt_tmem_compress; -static inline int tmh_compression_enabled(void) +extern bool_t opt_tmem_compress; +static inline bool_t tmh_compression_enabled(void) { return opt_tmem_compress; } -extern int opt_tmem_dedup; -static inline int tmh_dedup_enabled(void) +extern bool_t opt_tmem_dedup; +static inline bool_t tmh_dedup_enabled(void) { return opt_tmem_dedup; } -extern int opt_tmem_tze; -static inline int tmh_tze_enabled(void) +extern bool_t opt_tmem_tze; +static inline bool_t tmh_tze_enabled(void) { return opt_tmem_tze; } @@ -74,22 +74,20 @@ static inline void tmh_tze_disable(void) opt_tmem_tze = 0; } -extern int opt_tmem_shared_auth; -static inline int tmh_shared_auth(void) +extern bool_t opt_tmem_shared_auth; +static inline bool_t tmh_shared_auth(void) { return opt_tmem_shared_auth; } -extern int opt_tmem; -static inline int tmh_enabled(void) +extern bool_t opt_tmem; +static inline bool_t tmh_enabled(void) { return opt_tmem; } extern int opt_tmem_lock; -extern int opt_tmem_flush_dups; - /* * Memory free page list management */ @@ -289,7 +287,6 @@ static inline void tmh_free_infra(void * } #define tmh_lock_all opt_tmem_lock -#define tmh_flush_dups opt_tmem_flush_dups #define tmh_called_from_tmem(_memflags) (_memflags & MEMF_tmem) /* "Client" (==domain) abstraction */