summaryrefslogtreecommitdiff
path: root/usr/src
diff options
context:
space:
mode:
authorToomas Soome <tsoome@me.com>2019-08-09 11:35:49 +0300
committerToomas Soome <tsoome@me.com>2019-08-21 08:36:09 +0300
commit7e6ac63905653744ac6703d7bc31790c363cf5e7 (patch)
tree7944c56d76444d844717b5efd4690f0718b11633 /usr/src
parent889229bb296dd6f2b73fa6bb3247c58a71282836 (diff)
downloadillumos-joyent-7e6ac63905653744ac6703d7bc31790c363cf5e7.tar.gz
11539 dboot: build errors with gcc9
Reviewed by: Robert Mustacchi <robert.mustacchi@joyent.com> Approved by: Dan McDonald <danmcd@joyent.com>
Diffstat (limited to 'usr/src')
-rw-r--r--usr/src/uts/i86pc/dboot/dboot_elfload.c7
-rw-r--r--usr/src/uts/i86pc/dboot/dboot_startkern.c47
2 files changed, 32 insertions, 22 deletions
diff --git a/usr/src/uts/i86pc/dboot/dboot_elfload.c b/usr/src/uts/i86pc/dboot/dboot_elfload.c
index 937bf9c144..c03f66145f 100644
--- a/usr/src/uts/i86pc/dboot/dboot_elfload.c
+++ b/usr/src/uts/i86pc/dboot/dboot_elfload.c
@@ -182,10 +182,11 @@ dboot_elfload64(uintptr_t file_image)
/* zero out bss */
if (shdr->sh_type == SHT_NOBITS) {
if (prom_debug)
- dboot_printf("zeroing BSS %ld bytes from "
- "physaddr 0x%llx (end=0x%llx)\n",
+ dboot_printf("zeroing BSS %lu bytes from "
+ "physaddr 0x%" PRIx64
+ " (end=0x%" PRIx64 ")\n",
(ulong_t)shdr->sh_size,
- (long long unsigned)next_addr,
+ next_addr,
next_addr + shdr->sh_size);
(void) memset((void *)(uintptr_t)next_addr, 0,
shdr->sh_size);
diff --git a/usr/src/uts/i86pc/dboot/dboot_startkern.c b/usr/src/uts/i86pc/dboot/dboot_startkern.c
index 9647dbe87d..87261b4df8 100644
--- a/usr/src/uts/i86pc/dboot/dboot_startkern.c
+++ b/usr/src/uts/i86pc/dboot/dboot_startkern.c
@@ -683,17 +683,19 @@ dboot_loader_mmap_entries(void)
DBG(mb_info->flags);
if (mb_info->flags & 0x40) {
mb_memory_map_t *mmap;
+ caddr32_t mmap_addr;
DBG(mb_info->mmap_addr);
DBG(mb_info->mmap_length);
check_higher(mb_info->mmap_addr + mb_info->mmap_length);
- for (mmap = (mb_memory_map_t *)mb_info->mmap_addr;
- (uint32_t)mmap < mb_info->mmap_addr +
+ for (mmap_addr = mb_info->mmap_addr;
+ mmap_addr < mb_info->mmap_addr +
mb_info->mmap_length;
- mmap = (mb_memory_map_t *)((uint32_t)mmap +
- mmap->size + sizeof (mmap->size)))
+ mmap_addr += mmap->size + sizeof (mmap->size)) {
+ mmap = (mb_memory_map_t *)(uintptr_t)mmap_addr;
++num_entries;
+ }
num_entries_set = B_TRUE;
}
@@ -719,16 +721,17 @@ dboot_loader_mmap_get_type(int index)
{
#if !defined(__xpv)
mb_memory_map_t *mp, *mpend;
+ caddr32_t mmap_addr;
int i;
switch (multiboot_version) {
case 1:
- mp = (mb_memory_map_t *)mb_info->mmap_addr;
- mpend = (mb_memory_map_t *)
+ mp = (mb_memory_map_t *)(uintptr_t)mb_info->mmap_addr;
+ mpend = (mb_memory_map_t *)(uintptr_t)
(mb_info->mmap_addr + mb_info->mmap_length);
for (i = 0; mp < mpend && i != index; i++)
- mp = (mb_memory_map_t *)((uint32_t)mp + mp->size +
+ mp = (mb_memory_map_t *)((uintptr_t)mp + mp->size +
sizeof (mp->size));
if (mp >= mpend) {
dboot_panic("dboot_loader_mmap_get_type(): index "
@@ -765,7 +768,7 @@ dboot_loader_mmap_get_base(int index)
(mb_info->mmap_addr + mb_info->mmap_length);
for (i = 0; mp < mpend && i != index; i++)
- mp = (mb_memory_map_t *)((uint32_t)mp + mp->size +
+ mp = (mb_memory_map_t *)((uintptr_t)mp + mp->size +
sizeof (mp->size));
if (mp >= mpend) {
dboot_panic("dboot_loader_mmap_get_base(): index "
@@ -804,7 +807,7 @@ dboot_loader_mmap_get_length(int index)
(mb_info->mmap_addr + mb_info->mmap_length);
for (i = 0; mp < mpend && i != index; i++)
- mp = (mb_memory_map_t *)((uint32_t)mp + mp->size +
+ mp = (mb_memory_map_t *)((uintptr_t)mp + mp->size +
sizeof (mp->size));
if (mp >= mpend) {
dboot_panic("dboot_loader_mmap_get_length(): index "
@@ -1654,6 +1657,7 @@ process_efi32(EFI_SYSTEM_TABLE32 *efi)
{
uint32_t entries;
EFI_CONFIGURATION_TABLE32 *config;
+ efi_guid_t VendorGuid;
int i;
entries = efi->NumberOfTableEntries;
@@ -1661,21 +1665,23 @@ process_efi32(EFI_SYSTEM_TABLE32 *efi)
efi->ConfigurationTable;
for (i = 0; i < entries; i++) {
- if (dboot_same_guids(&config[i].VendorGuid, &smbios3)) {
+ (void) memcpy(&VendorGuid, &config[i].VendorGuid,
+ sizeof (VendorGuid));
+ if (dboot_same_guids(&VendorGuid, &smbios3)) {
bi->bi_smbios = (native_ptr_t)(uintptr_t)
config[i].VendorTable;
}
if (bi->bi_smbios == 0 &&
- dboot_same_guids(&config[i].VendorGuid, &smbios)) {
+ dboot_same_guids(&VendorGuid, &smbios)) {
bi->bi_smbios = (native_ptr_t)(uintptr_t)
config[i].VendorTable;
}
- if (dboot_same_guids(&config[i].VendorGuid, &acpi2)) {
+ if (dboot_same_guids(&VendorGuid, &acpi2)) {
bi->bi_acpi_rsdp = (native_ptr_t)(uintptr_t)
config[i].VendorTable;
}
if (bi->bi_acpi_rsdp == 0 &&
- dboot_same_guids(&config[i].VendorGuid, &acpi1)) {
+ dboot_same_guids(&VendorGuid, &acpi1)) {
bi->bi_acpi_rsdp = (native_ptr_t)(uintptr_t)
config[i].VendorTable;
}
@@ -1687,6 +1693,7 @@ process_efi64(EFI_SYSTEM_TABLE64 *efi)
{
uint64_t entries;
EFI_CONFIGURATION_TABLE64 *config;
+ efi_guid_t VendorGuid;
int i;
entries = efi->NumberOfTableEntries;
@@ -1694,22 +1701,24 @@ process_efi64(EFI_SYSTEM_TABLE64 *efi)
efi->ConfigurationTable;
for (i = 0; i < entries; i++) {
- if (dboot_same_guids(&config[i].VendorGuid, &smbios3)) {
+ (void) memcpy(&VendorGuid, &config[i].VendorGuid,
+ sizeof (VendorGuid));
+ if (dboot_same_guids(&VendorGuid, &smbios3)) {
bi->bi_smbios = (native_ptr_t)(uintptr_t)
config[i].VendorTable;
}
if (bi->bi_smbios == 0 &&
- dboot_same_guids(&config[i].VendorGuid, &smbios)) {
+ dboot_same_guids(&VendorGuid, &smbios)) {
bi->bi_smbios = (native_ptr_t)(uintptr_t)
config[i].VendorTable;
}
/* Prefer acpi v2+ over v1. */
- if (dboot_same_guids(&config[i].VendorGuid, &acpi2)) {
+ if (dboot_same_guids(&VendorGuid, &acpi2)) {
bi->bi_acpi_rsdp = (native_ptr_t)(uintptr_t)
config[i].VendorTable;
}
if (bi->bi_acpi_rsdp == 0 &&
- dboot_same_guids(&config[i].VendorGuid, &acpi1)) {
+ dboot_same_guids(&VendorGuid, &acpi1)) {
bi->bi_acpi_rsdp = (native_ptr_t)(uintptr_t)
config[i].VendorTable;
}
@@ -1841,7 +1850,7 @@ print_efi64(EFI_SYSTEM_TABLE64 *efi)
dboot_printf("%c", (char)data[i]);
dboot_printf("\nEFI firmware revision: ");
dboot_print_efi_version(efi->FirmwareRevision);
- dboot_printf("EFI system table number of entries: %lld\n",
+ dboot_printf("EFI system table number of entries: %" PRIu64 "\n",
efi->NumberOfTableEntries);
conf = (EFI_CONFIGURATION_TABLE64 *)(uintptr_t)
efi->ConfigurationTable;
@@ -2191,7 +2200,7 @@ dboot_loader_name(void)
switch (multiboot_version) {
case 1:
- return ((char *)mb_info->boot_loader_name);
+ return ((char *)(uintptr_t)mb_info->boot_loader_name);
case 2:
tag = dboot_multiboot2_find_tag(mb2_info,