On 10.10.2014 23:23, Colin Watson wrote: > On Fri, Oct 10, 2014 at 04:44:39PM +0000, Rigoberto Corujo wrote: >> I attached a patch to bug #42944 and would like to know how I would go about >> getting it committed to the source tree? >> https://savannah.gnu.org/bugs/?42944 > > I'd suggest attaching the patch to a mail here (not encased in a zip > file). It's usually easier to get public review that way. > I don't like to use EFI timers if we can avoid them, they've been known to hang. Attached is a patch to use pmtimer for calibration
=== modified file 'grub-core/Makefile.am' --- grub-core/Makefile.am 2012-06-11 18:44:38 +0000 +++ grub-core/Makefile.am 2012-06-14 18:52:24 +0000 @@ -88,29 +88,33 @@ KERNEL_HEADER_FILES += $(top_builddir)/include/grub/machine/kernel.h KERNEL_HEADER_FILES += $(top_builddir)/include/grub/machine/pxe.h KERNEL_HEADER_FILES += $(top_builddir)/include/grub/machine/int.h -KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/i386/pit.h +KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/i386/tsc.h +KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/acpi.h endif if COND_i386_efi KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/efi/efi.h KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/efi/disk.h -KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/i386/pit.h +KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/i386/tsc.h KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/pci.h +KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/acpi.h endif if COND_i386_coreboot -KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/i386/pit.h KERNEL_HEADER_FILES += $(top_builddir)/include/grub/i386/pc/int.h +KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/i386/tsc.h +KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/acpi.h endif if COND_i386_multiboot -KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/i386/pit.h KERNEL_HEADER_FILES += $(top_builddir)/include/grub/i386/pc/int.h +KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/i386/tsc.h +KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/acpi.h endif if COND_i386_qemu KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/pci.h -KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/i386/pit.h +KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/i386/tsc.h endif if COND_i386_ieee1275 @@ -118,19 +122,21 @@ KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/terminfo.h KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/extcmd.h KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/lib/arg.h -KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/i386/pit.h +KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/i386/tsc.h endif if COND_x86_64_efi KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/efi/efi.h KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/efi/disk.h -KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/i386/pit.h +KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/i386/tsc.h KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/pci.h +KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/acpi.h endif if COND_ia64_efi KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/efi/efi.h KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/efi/disk.h +KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/acpi.h endif if COND_mips
=== modified file 'grub-core/Makefile.core.def' --- grub-core/Makefile.core.def 2012-06-11 18:44:38 +0000 +++ grub-core/Makefile.core.def 2012-06-14 18:53:29 +0000 @@ -127,18 +127,26 @@ i386_pc = term/i386/vga_common.c; x86 = kern/i386/pit.c; + x86 = kern/i386/tsc.c; + + efi = kern/acpi.c; + i386_coreboot = kern/acpi.c; + i386_multiboot = kern/acpi.c; + i386_pc = kern/acpi.c; + i386_pc = kern/i386/pc/acpi.c; + i386_coreboot = kern/i386/pc/acpi.c; + i386_multiboot = kern/i386/pc/acpi.c; efi = disk/efi/efidisk.c; efi = kern/efi/efi.c; efi = kern/efi/init.c; efi = kern/efi/mm.c; efi = term/efi/console.c; + efi = kern/efi/acpi.c; - i386_efi = kern/i386/tsc.c; i386_efi = kern/i386/efi/init.c; i386_efi = bus/pci.c; - x86_64_efi = kern/i386/tsc.c; x86_64_efi = kern/x86_64/dl.c; x86_64_efi = kern/x86_64/efi/callwrap.S; x86_64_efi = kern/i386/efi/init.c; @@ -151,19 +159,15 @@ i386_pc = kern/i386/pc/init.c; i386_pc = kern/i386/pc/mmap.c; - i386_pc = kern/i386/tsc.c; i386_pc = term/i386/pc/console.c; i386_qemu = bus/pci.c; i386_qemu = kern/vga_init.c; i386_qemu = kern/i386/qemu/mmap.c; - i386_qemu = kern/i386/tsc.c; i386_coreboot = kern/i386/coreboot/mmap.c; - i386_coreboot = kern/i386/tsc.c; i386_multiboot = kern/i386/multiboot_mmap.c; - i386_multiboot = kern/i386/tsc.c; mips = kern/mips/cache.S; mips = kern/mips/dl.c; @@ -526,10 +530,6 @@ name = acpi; common = commands/acpi.c; - efi = commands/efi/acpi.c; - i386_pc = commands/i386/pc/acpi.c; - i386_coreboot = commands/i386/pc/acpi.c; - i386_multiboot = commands/i386/pc/acpi.c; enable = efi; enable = i386_pc; === modified file 'grub-core/commands/acpi.c' --- grub-core/commands/acpi.c 2012-03-06 14:03:33 +0000 +++ grub-core/commands/acpi.c 2012-06-14 19:10:26 +0000 @@ -61,18 +61,6 @@ {0, 0, 0, 0, 0, 0} }; -/* Simple checksum by summing all bytes. Used by ACPI and SMBIOS. */ -grub_uint8_t -grub_byte_checksum (void *base, grub_size_t size) -{ - grub_uint8_t *ptr; - grub_uint8_t ret = 0; - for (ptr = (grub_uint8_t *) base; ptr < ((grub_uint8_t *) base) + size; - ptr++) - ret += *ptr; - return ret; -} - /* rev1 is 1 if ACPIv1 is to be generated, 0 otherwise. rev2 contains the revision of ACPIv2+ to generate or 0 if none. */ static int rev1, rev2; === modified file 'grub-core/commands/acpihalt.c' --- grub-core/commands/acpihalt.c 2012-03-03 11:59:28 +0000 +++ grub-core/commands/acpihalt.c 2012-06-14 19:00:14 +0000 @@ -302,56 +302,35 @@ void grub_acpi_halt (void) { - struct grub_acpi_rsdp_v20 *rsdp2; - struct grub_acpi_rsdp_v10 *rsdp1; - struct grub_acpi_table_header *rsdt; - grub_uint32_t *entry_ptr; - - rsdp2 = grub_acpi_get_rsdpv2 (); - if (rsdp2) - rsdp1 = &(rsdp2->rsdpv1); - else - rsdp1 = grub_acpi_get_rsdpv1 (); - grub_dprintf ("acpi", "rsdp1=%p\n", rsdp1); - if (!rsdp1) - return; - - rsdt = (struct grub_acpi_table_header *) (grub_addr_t) rsdp1->rsdt_addr; - for (entry_ptr = (grub_uint32_t *) (rsdt + 1); - entry_ptr < (grub_uint32_t *) (((grub_uint8_t *) rsdt) - + rsdt->length); - entry_ptr++) - { - if (grub_memcmp ((void *) (grub_addr_t) *entry_ptr, "FACP", 4) == 0) - { - grub_uint32_t port; - struct grub_acpi_fadt *fadt - = ((struct grub_acpi_fadt *) (grub_addr_t) *entry_ptr); - struct grub_acpi_table_header *dsdt - = (struct grub_acpi_table_header *) (grub_addr_t) fadt->dsdt_addr; - int sleep_type = -1; - - port = fadt->pm1a; - - grub_dprintf ("acpi", "PM1a port=%x\n", port); - - if (grub_memcmp (dsdt->signature, "DSDT", - sizeof (dsdt->signature)) != 0) - break; - - sleep_type = get_sleep_type ((grub_uint8_t *) dsdt, - (grub_uint8_t *) dsdt + dsdt->length); - - if (sleep_type < 0 || sleep_type >= 8) - break; - - grub_dprintf ("acpi", "SLP_TYP = %d, port = 0x%x\n", - sleep_type, port); - - grub_outw (GRUB_ACPI_SLP_EN - | (sleep_type << GRUB_ACPI_SLP_TYP_OFFSET), port & 0xffff); - } - } + struct grub_acpi_fadt *fadt; + grub_uint32_t port; + struct grub_acpi_table_header *dsdt; + int sleep_type = -1; + + fadt = grub_acpi_find_fadt (); + if (!fadt) + return; + + dsdt = (struct grub_acpi_table_header *) (grub_addr_t) fadt->dsdt_addr; + port = fadt->pm1a; + + grub_dprintf ("acpi", "PM1a port=%x\n", port); + + if (grub_memcmp (dsdt->signature, "DSDT", + sizeof (dsdt->signature)) != 0) + return; + + sleep_type = get_sleep_type ((grub_uint8_t *) dsdt, + (grub_uint8_t *) dsdt + dsdt->length); + + if (sleep_type < 0 || sleep_type >= 8) + return; + + grub_dprintf ("acpi", "SLP_TYP = %d, port = 0x%x\n", + sleep_type, port); + + grub_outw (GRUB_ACPI_SLP_EN + | (sleep_type << GRUB_ACPI_SLP_TYP_OFFSET), port & 0xffff); grub_millisleep (1500); === added file 'grub-core/kern/acpi.c' --- grub-core/kern/acpi.c 1970-01-01 00:00:00 +0000 +++ grub-core/kern/acpi.c 2012-06-14 19:10:31 +0000 @@ -0,0 +1,119 @@ +/* + * GRUB -- GRand Unified Bootloader + * Copyright (C) 2012 Free Software Foundation, Inc. + * + * GRUB is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * GRUB is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GRUB. If not, see <http://www.gnu.org/licenses/>. + */ + +#include <grub/types.h> +#include <grub/time.h> +#include <grub/misc.h> +#include <grub/acpi.h> + +static void * +grub_acpi_rsdt_find_table (struct grub_acpi_table_header *rsdt, const char *sig) +{ + grub_size_t s; + grub_uint32_t *ptr; + + if (!rsdt) + return 0; + + if (grub_memcmp (rsdt->signature, "RSDT", 4) != 0) + return 0; + + ptr = (grub_uint32_t *) (rsdt + 1); + s = (rsdt->length - sizeof (*rsdt)) / sizeof (grub_uint32_t); + for (; s; s--, ptr++) + { + struct grub_acpi_table_header *tbl; + tbl = (struct grub_acpi_table_header *) (grub_addr_t) *ptr; + if (grub_memcmp (tbl->signature, sig, 4) == 0) + return tbl; + } + return 0; +} + +static void * +grub_acpi_xsdt_find_table (struct grub_acpi_table_header *xsdt, const char *sig) +{ + grub_size_t s; + grub_uint64_t *ptr; + + if (!xsdt) + return 0; + + if (grub_memcmp (xsdt->signature, "XSDT", 4) != 0) + return 0; + + ptr = (grub_uint64_t *) (xsdt + 1); + s = (xsdt->length - sizeof (*xsdt)) / sizeof (grub_uint32_t); + for (; s; s--, ptr++) + { + struct grub_acpi_table_header *tbl; +#if GRUB_CPU_SIZEOF_VOID_P != 8 + if (*ptr >> 32) + continue; +#endif + tbl = (struct grub_acpi_table_header *) (grub_addr_t) *ptr; + if (grub_memcmp (tbl->signature, sig, 4) == 0) + return tbl; + } + return 0; +} + +struct grub_acpi_fadt * +grub_acpi_find_fadt (void) +{ + struct grub_acpi_fadt *fadt = 0; + struct grub_acpi_rsdp_v10 *rsdpv1; + struct grub_acpi_rsdp_v20 *rsdpv2; + rsdpv1 = grub_machine_acpi_get_rsdpv1 (); + if (rsdpv1) + fadt = grub_acpi_rsdt_find_table ((struct grub_acpi_table_header *) + (grub_addr_t) rsdpv1->rsdt_addr, + GRUB_ACPI_FADT_SIGNATURE); + if (fadt) + return fadt; + rsdpv2 = grub_machine_acpi_get_rsdpv2 (); + if (rsdpv2) + fadt = grub_acpi_rsdt_find_table ((struct grub_acpi_table_header *) + (grub_addr_t) rsdpv2->rsdpv1.rsdt_addr, + GRUB_ACPI_FADT_SIGNATURE); + if (fadt) + return fadt; + if (rsdpv2 +#if GRUB_CPU_SIZEOF_VOID_P != 8 + && !(rsdpv2->xsdt_addr >> 32) +#endif + ) + fadt = grub_acpi_xsdt_find_table ((struct grub_acpi_table_header *) + (grub_addr_t) rsdpv2->xsdt_addr, + GRUB_ACPI_FADT_SIGNATURE); + if (fadt) + return fadt; + return 0; +} + +/* Simple checksum by summing all bytes. Used by ACPI and SMBIOS. */ +grub_uint8_t +grub_byte_checksum (void *base, grub_size_t size) +{ + grub_uint8_t *ptr; + grub_uint8_t ret = 0; + for (ptr = (grub_uint8_t *) base; ptr < ((grub_uint8_t *) base) + size; + ptr++) + ret += *ptr; + return ret; +} === renamed file 'grub-core/commands/efi/acpi.c' => 'grub-core/kern/efi/acpi.c' === renamed file 'grub-core/commands/i386/pc/acpi.c' => 'grub-core/kern/i386/pc/acpi.c' === modified file 'grub-core/kern/i386/tsc.c' --- grub-core/kern/i386/tsc.c 2012-06-11 18:44:38 +0000 +++ grub-core/kern/i386/tsc.c 2012-06-14 22:56:04 +0000 @@ -1,6 +1,6 @@ /* kern/i386/tsc.c - x86 TSC time source implementation * Requires Pentium or better x86 CPU that supports the RDTSC instruction. - * This module uses the RTC (via grub_get_rtc()) to calibrate the TSC to + * This module uses the PIT to calibrate the TSC to * real time. * * GRUB -- GRand Unified Bootloader @@ -25,23 +25,60 @@ #include <grub/misc.h> #include <grub/i386/tsc.h> #include <grub/i386/pit.h> +#include <grub/i386/io.h> +#include <grub/acpi.h> /* This defines the value TSC had at the epoch (that is, when we calibrated it). */ static grub_uint64_t tsc_boot_time; /* Calibrated TSC rate. (In TSC ticks per millisecond.) */ -static grub_uint64_t tsc_ticks_per_ms; - - -grub_uint64_t +grub_uint64_t grub_tsc_ticks_per_ms; + + +static grub_uint64_t grub_tsc_get_time_ms (void) { - return tsc_boot_time + grub_divmod64 (grub_get_tsc (), tsc_ticks_per_ms, 0); -} - - -/* How many RTC ticks to use for calibration loop. (>= 1) */ -#define CALIBRATION_TICKS 2 + return grub_divmod64 (grub_get_tsc () - tsc_boot_time, + grub_tsc_ticks_per_ms, 0); +} + +static int +grub_pmtimer_tsc_calibrate (void) +{ + grub_uint32_t start; + grub_uint32_t last; + grub_uint32_t cur, end; + struct grub_acpi_fadt *fadt; + grub_port_t p; + grub_uint64_t start_tsc; + grub_uint64_t end_tsc; + + fadt = grub_acpi_find_fadt (); + if (!fadt) + return 0; + p = fadt->pmtimer; + if (!p) + return 0; + + start = grub_inl (p) & 0xffffff; + last = start; + /* It's 3.579545 MHz clock. Wait 1 ms. */ + end = start + 3580; + start_tsc = grub_get_tsc (); + while (1) + { + cur = grub_inl (p) & 0xffffff; + if (cur < last) + cur |= 0x1000000; + if (cur >= end) + { + end_tsc = grub_get_tsc (); + grub_tsc_ticks_per_ms = end_tsc - start_tsc; + grub_printf ("synced on PM\n"); + return 1; + } + } +} /* Calibrate the TSC based on the RTC. */ static void @@ -51,11 +88,14 @@ grub_uint64_t start_tsc; grub_uint64_t end_tsc; + if (grub_pmtimer_tsc_calibrate ()) + return; + start_tsc = grub_get_tsc (); grub_pit_wait (0xffff); end_tsc = grub_get_tsc (); - tsc_ticks_per_ms = grub_divmod64 (end_tsc - start_tsc, 55, 0); + grub_tsc_ticks_per_ms = grub_divmod64 (end_tsc - start_tsc, 55, 0); } void === modified file 'grub-core/kern/ieee1275/init.c' --- grub-core/kern/ieee1275/init.c 2012-06-11 18:44:38 +0000 +++ grub-core/kern/ieee1275/init.c 2012-06-14 18:00:27 +0000 @@ -32,12 +32,17 @@ #include <grub/ieee1275/ofdisk.h> #include <grub/ieee1275/ieee1275.h> #include <grub/net.h> +#include <grub/loader.h> #include <grub/offsets.h> #include <grub/memory.h> #ifdef __sparc__ #include <grub/machine/kernel.h> #endif +#ifdef __i386__ +#include <grub/i386/tsc.h> +#endif + /* The minimal heap size we can live with. */ #define HEAP_MIN_SIZE (unsigned long) (2 * 1024 * 1024) @@ -254,8 +259,6 @@ } } -static grub_uint64_t ieee1275_get_time_ms (void); - grub_addr_t grub_modbase; void @@ -273,7 +276,7 @@ grub_parse_cmdline (); - grub_install_get_time_ms (ieee1275_get_time_ms); + grub_install_get_time_ms (grub_rtc_get_time_ms); } void @@ -283,8 +286,8 @@ grub_console_fini (); } -static grub_uint64_t -ieee1275_get_time_ms (void) +grub_uint64_t +grub_rtc_get_time_ms (void) { grub_uint32_t msecs = 0; === modified file 'grub-core/loader/i386/xnu.c' --- grub-core/loader/i386/xnu.c 2012-05-28 15:49:18 +0000 +++ grub-core/loader/i386/xnu.c 2012-06-14 18:00:27 +0000 @@ -24,9 +24,8 @@ #include <grub/mm.h> #include <grub/loader.h> #include <grub/autoefi.h> +#include <grub/efi/api.h> #include <grub/i386/tsc.h> -#include <grub/efi/api.h> -#include <grub/i386/pit.h> #include <grub/misc.h> #include <grub/charset.h> #include <grub/term.h> @@ -125,11 +124,8 @@ { const grub_uint64_t sane_value = 100000000; grub_uint32_t manufacturer[3], max_cpuid, capabilities, msrlow; - grub_uint64_t start_tsc; - grub_uint64_t end_tsc; - grub_uint64_t tsc_ticks_per_ms; - if (! grub_cpu_is_cpuid_supported ()) + if (!grub_tsc_ticks_per_ms) return sane_value; #ifdef __APPLE__ @@ -192,14 +188,6 @@ if (! (capabilities & (1 << 7))) return sane_value; - /* Calibrate the TSC rate. */ - - start_tsc = grub_get_tsc (); - grub_pit_wait (0xffff); - end_tsc = grub_get_tsc (); - - tsc_ticks_per_ms = grub_divmod64 (end_tsc - start_tsc, 55, 0); - /* Read the multiplier. */ asm volatile ("movl $0x198, %%ecx\n" "rdmsr" @@ -207,7 +195,7 @@ : : "%ecx", "%eax"); - return grub_divmod64 (2000 * tsc_ticks_per_ms, + return grub_divmod64 (2000 * grub_tsc_ticks_per_ms, ((msrlow >> 7) & 0x3e) + ((msrlow >> 14) & 1), 0); } === modified file 'include/grub/acpi.h' --- include/grub/acpi.h 2012-02-22 15:02:03 +0000 +++ include/grub/acpi.h 2012-06-14 19:10:11 +0000 @@ -60,16 +60,34 @@ struct grub_acpi_fadt { struct grub_acpi_table_header hdr; + /* 36 */ grub_uint32_t facs_addr; grub_uint32_t dsdt_addr; + /* 44 */ grub_uint8_t somefields1[20]; + /* 64 */ grub_uint32_t pm1a; - grub_uint8_t somefields2[64]; + /* 68 */ + grub_uint8_t somefields2[8]; + /* 76 */ + grub_uint32_t pmtimer; + /* 80 */ + grub_uint8_t somefields3[32]; + /* 112 */ + grub_uint32_t flags; + /* 116 */ + grub_uint8_t somefields4[16]; + /* 132 */ grub_uint64_t facs_xaddr; grub_uint64_t dsdt_xaddr; - grub_uint8_t somefields3[96]; + grub_uint8_t somefields5[96]; } __attribute__ ((packed)); +enum + { + GRUB_ACPI_FADT_FLAGS_LONG_PMTIMER = (1 << 8) + }; + #define GRUB_ACPI_MADT_SIGNATURE "APIC" struct grub_acpi_madt_entry_header @@ -144,9 +162,9 @@ #ifndef GRUB_DSDT_TEST struct grub_acpi_rsdp_v10 *grub_acpi_get_rsdpv1 (void); struct grub_acpi_rsdp_v20 *grub_acpi_get_rsdpv2 (void); -struct grub_acpi_rsdp_v10 *grub_machine_acpi_get_rsdpv1 (void); -struct grub_acpi_rsdp_v20 *grub_machine_acpi_get_rsdpv2 (void); -grub_uint8_t grub_byte_checksum (void *base, grub_size_t size); +struct grub_acpi_rsdp_v10 *EXPORT_FUNC(grub_machine_acpi_get_rsdpv1) (void); +struct grub_acpi_rsdp_v20 *EXPORT_FUNC(grub_machine_acpi_get_rsdpv2) (void); +grub_uint8_t EXPORT_FUNC(grub_byte_checksum) (void *base, grub_size_t size); grub_err_t grub_acpi_create_ebda (void); @@ -179,4 +197,7 @@ GRUB_ACPI_EXTOPCODE_INDEX_FIELD_OP = 0x86, }; +struct grub_acpi_fadt * +EXPORT_FUNC(grub_acpi_find_fadt) (void); + #endif /* ! GRUB_ACPI_HEADER */ === modified file 'include/grub/i386/pit.h' --- include/grub/i386/pit.h 2009-05-02 23:19:20 +0000 +++ include/grub/i386/pit.h 2012-06-14 18:04:16 +0000 @@ -22,6 +22,6 @@ #include <grub/types.h> #include <grub/err.h> -void EXPORT_FUNC(grub_pit_wait) (grub_uint16_t tics); +void grub_pit_wait (grub_uint16_t tics); #endif /* ! KERNEL_CPU_PIT_HEADER */ === modified file 'include/grub/i386/tsc.h' --- include/grub/i386/tsc.h 2012-05-28 15:49:18 +0000 +++ include/grub/i386/tsc.h 2012-06-14 18:00:27 +0000 @@ -136,6 +136,7 @@ } void grub_tsc_init (void); -grub_uint64_t grub_tsc_get_time_ms (void); + +extern grub_uint64_t EXPORT_VAR(grub_tsc_ticks_per_ms); #endif /* ! KERNEL_CPU_TSC_HEADER */ === modified file 'po/POTFILES.in' --- po/POTFILES.in 2012-03-08 17:47:51 +0000 +++ po/POTFILES.in 2012-06-14 19:13:30 +0000 @@ -29,7 +29,6 @@ ./grub-core/commands/configfile.c ./grub-core/commands/date.c ./grub-core/commands/echo.c -./grub-core/commands/efi/acpi.c ./grub-core/commands/efi/fixvideo.c ./grub-core/commands/efi/loadbios.c ./grub-core/commands/efi/lsefimmap.c @@ -44,7 +43,6 @@ ./grub-core/commands/hexdump.c ./grub-core/commands/i386/cmostest.c ./grub-core/commands/i386/cpuid.c -./grub-core/commands/i386/pc/acpi.c ./grub-core/commands/i386/pc/drivemap.c ./grub-core/commands/i386/pc/halt.c ./grub-core/commands/i386/pc/lsapm.c @@ -106,6 +104,7 @@ ./grub-core/disk/luks.c ./grub-core/disk/lvm.c ./grub-core/disk/mdraid1x_linux.c +./grub-core/disk/mdraid_linux_be.c ./grub-core/disk/mdraid_linux.c ./grub-core/disk/memdisk.c ./grub-core/disk/pata.c @@ -147,8 +146,11 @@ ./grub-core/fs/hfsplus.c ./grub-core/fs/iso9660.c ./grub-core/fs/jfs.c +./grub-core/fs/minix2_be.c ./grub-core/fs/minix2.c +./grub-core/fs/minix3_be.c ./grub-core/fs/minix3.c +./grub-core/fs/minix_be.c ./grub-core/fs/minix.c ./grub-core/fs/newc.c ./grub-core/fs/nilfs2.c @@ -290,11 +292,13 @@ ./grub-core/io/gzio.c ./grub-core/io/lzopio.c ./grub-core/io/xzio.c +./grub-core/kern/acpi.c ./grub-core/kern/command.c ./grub-core/kern/corecmd.c ./grub-core/kern/device.c ./grub-core/kern/disk.c ./grub-core/kern/dl.c +./grub-core/kern/efi/acpi.c ./grub-core/kern/efi/efi.c ./grub-core/kern/efi/init.c ./grub-core/kern/efi/mm.c @@ -320,6 +324,7 @@ ./grub-core/kern/i386/dl.c ./grub-core/kern/i386/efi/init.c ./grub-core/kern/i386/multiboot_mmap.c +./grub-core/kern/i386/pc/acpi.c ./grub-core/kern/i386/pc/init.c ./grub-core/kern/i386/pc/mmap.c ./grub-core/kern/i386/pit.c @@ -557,6 +562,7 @@ ./grub-core/term/i386/pc/vga_text.c ./grub-core/term/i386/vga_common.c ./grub-core/term/ieee1275/console.c +./grub-core/term/ieee1275/escc.c ./grub-core/term/ieee1275/serial.c ./grub-core/term/ns8250.c ./grub-core/term/serial.c @@ -567,6 +573,7 @@ ./grub-core/tests/lib/functional_test.c ./grub-core/tests/lib/test.c ./grub-core/tests/test_blockarg.c +./grub-core/unidata.c ./grub-core/video/bitmap.c ./grub-core/video/bitmap_scale.c ./grub-core/video/bochs.c @@ -631,7 +638,6 @@ ./include/grub/efi/memory.h ./include/grub/efi/pci.h ./include/grub/efi/pe32.h -./include/grub/efi/time.h ./include/grub/efi/uga_draw.h ./include/grub/elf.h ./include/grub/elfload.h @@ -676,7 +682,6 @@ ./include/grub/i386/efiemu.h ./include/grub/i386/efi/memory.h ./include/grub/i386/efi/serial.h -./include/grub/i386/efi/time.h ./include/grub/i386/floppy.h ./include/grub/i386/freebsd_linker.h ./include/grub/i386/freebsd_reboot.h @@ -684,7 +689,6 @@ ./include/grub/i386/ieee1275/ieee1275.h ./include/grub/i386/ieee1275/memory.h ./include/grub/i386/ieee1275/serial.h -./include/grub/i386/ieee1275/time.h ./include/grub/i386/io.h ./include/grub/i386/linux.h ./include/grub/i386/macho.h @@ -820,7 +824,6 @@ ./include/grub/pci.h ./include/grub/pciutils.h ./include/grub/powerpc/ieee1275/ieee1275.h -./include/grub/powerpc/ieee1275/time.h ./include/grub/powerpc/kernel.h ./include/grub/powerpc/memory.h ./include/grub/powerpc/relocator.h @@ -843,7 +846,6 @@ ./include/grub/sparc64/ieee1275/boot.h ./include/grub/sparc64/ieee1275/ieee1275.h ./include/grub/sparc64/ieee1275/kernel.h -./include/grub/sparc64/ieee1275/time.h ./include/grub/sparc64/setjmp.h ./include/grub/sparc64/time.h ./include/grub/sparc64/types.h @@ -874,7 +876,6 @@ ./include/grub/x86_64/efi/loader.h ./include/grub/x86_64/efi/memory.h ./include/grub/x86_64/efi/serial.h -./include/grub/x86_64/efi/time.h ./include/grub/x86_64/io.h ./include/grub/x86_64/linux.h ./include/grub/x86_64/macho.h @@ -906,6 +907,7 @@ ./include/grub/zfs/zio.h ./include/multiboot2.h ./include/multiboot.h +./tests/cmp_unit_test.c ./tests/example_unit_test.c ./tests/lib/unit_test.c ./tests/printf_unit_test.c
signature.asc
Description: OpenPGP digital signature
_______________________________________________ Grub-devel mailing list Grub-devel@gnu.org https://lists.gnu.org/mailman/listinfo/grub-devel