[haiku-commits] BRANCH jessicah-github.efi.master [d026b9601a96] in src/system/boot: platform/efi loader loader/file_systems/bfs loader/net loader/file_systems/amiga_ffs

  • From: jessicah-github.efi.master <community@xxxxxxxxxxxx>
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Wed, 29 Apr 2015 04:46:45 +0200 (CEST)

added 2 changesets to branch 'refs/remotes/jessicah-github/efi.master'
old head: faabb8b673e412eebffec1d91577d37e5320e089
new head: d026b9601a9614a69743bbd93e2da75b721f4d03
overview: https://github.com/jessicah/haiku/compare/faabb8b673e4...d026b9601a96

----------------------------------------------------------------------------

004d05644c93: src/system/boot: re-enable -Werror

d026b9601a96: UEFI: cleanup some warnings

[ Jessica Hamilton <jessica.l.hamilton@xxxxxxxxx> ]

----------------------------------------------------------------------------

25 files changed, 47 insertions(+), 48 deletions(-)
headers/private/kernel/arch/x86/arch_kernel_args.h | 4 ++--
.../private/kernel/boot/platform/efi/platform_stage2_args.h | 2 --
src/system/boot/loader/elf.cpp | 9 ++++++++-
src/system/boot/loader/file_systems/amiga_ffs/File.cpp | 2 +-
src/system/boot/loader/file_systems/amiga_ffs/amiga_ffs.cpp | 2 +-
src/system/boot/loader/file_systems/bfs/Stream.cpp | 2 +-
src/system/boot/loader/file_systems/bfs/bfs.cpp | 2 +-
src/system/boot/loader/file_systems/fat/Stream.cpp | 2 +-
src/system/boot/loader/file_systems/packagefs/packagefs.cpp | 2 +-
src/system/boot/loader/load_driver_settings.cpp | 2 +-
src/system/boot/loader/loader.cpp | 6 +++---
src/system/boot/loader/net/RemoteDisk.cpp | 8 ++++----
src/system/boot/loader/partitions.cpp | 4 ++--
src/system/boot/loader/vfs.cpp | 8 ++++++--
src/system/boot/platform/efi/console.cpp | 4 ++--
src/system/boot/platform/efi/cpu.cpp | 4 ++--
src/system/boot/platform/efi/devices.cpp | 7 ++-----
src/system/boot/platform/efi/entry.S | 1 -
src/system/boot/platform/efi/heap.cpp | 1 -
src/system/boot/platform/efi/keyboard.cpp | 3 ++-
src/system/boot/platform/efi/menu.cpp | 7 -------
src/system/boot/platform/efi/mmu.cpp | 2 +-
src/system/boot/platform/efi/mmu.h | 1 +
src/system/boot/platform/efi/smp.cpp | 8 ++++----
src/system/boot/platform/efi/video.cpp | 2 +-

############################################################################

Commit: 004d05644c93085dc4328478b019fea88e1a3283
Author: Jessica Hamilton <jessica.l.hamilton@xxxxxxxxx>
Date: Wed Apr 29 00:48:14 2015 UTC

src/system/boot: re-enable -Werror

----------------------------------------------------------------------------

diff --git a/build/jam/ArchitectureRules b/build/jam/ArchitectureRules
index 2e90345..e5c20bc 100644
--- a/build/jam/ArchitectureRules
+++ b/build/jam/ArchitectureRules
@@ -644,7 +644,7 @@ rule ArchitectureSetupWarnings architecture
EnableWerror src kits ;
EnableWerror src preferences ;
EnableWerror src servers ;
-# EnableWerror src system boot ;
+ EnableWerror src system boot ;
EnableWerror src system kernel ;
EnableWerror src system libroot add-ons ;
EnableWerror src system libroot os ;
diff --git a/headers/private/kernel/arch/x86/arch_kernel_args.h
b/headers/private/kernel/arch/x86/arch_kernel_args.h
index cada9db..d1e202d 100644
--- a/headers/private/kernel/arch/x86/arch_kernel_args.h
+++ b/headers/private/kernel/arch/x86/arch_kernel_args.h
@@ -17,6 +17,12 @@

#define _PACKED __attribute__((packed))

+#ifdef _BOOT_PLATFORM_efi
+typedef uint64 physical_addr_t;
+#else
+typedef uint32 physical_addr_t;
+#endif
+
// kernel args
typedef struct {
// architecture specific
@@ -30,9 +36,9 @@ typedef struct {
uint64 page_hole;
// smp stuff
uint32 apic_time_cv_factor; // apic ticks per second
- uint32 apic_phys;
+ physical_addr_t apic_phys;
FixedWidthPointer<void> apic;
- uint32 ioapic_phys;
+ physical_addr_t ioapic_phys;
uint32 cpu_apic_id[SMP_MAX_CPUS];
uint32 cpu_apic_version[SMP_MAX_CPUS];
// hpet stuff
diff --git a/headers/private/kernel/boot/platform/efi/platform_stage2_args.h
b/headers/private/kernel/boot/platform/efi/platform_stage2_args.h
index 98a6f92..9e72860 100644
--- a/headers/private/kernel/boot/platform/efi/platform_stage2_args.h
+++ b/headers/private/kernel/boot/platform/efi/platform_stage2_args.h
@@ -5,8 +5,6 @@
# error This file is included from <boot/stage2_args.h> only
#endif

-#warning EFI: IMPLEMENT platform_stage2_args.h
-
struct platform_stage2_args {
};

diff --git a/src/system/boot/loader/elf.cpp b/src/system/boot/loader/elf.cpp
index 96f2edd..69b6d23 100644
--- a/src/system/boot/loader/elf.cpp
+++ b/src/system/boot/loader/elf.cpp
@@ -84,14 +84,22 @@ struct ELF32Class {
if (status != B_OK)
return status;

+#ifdef _BOOT_PLATFORM_efi
+ *_mappedAddress = (void*)((uint64)_address);
+#else
*_mappedAddress = (void*)*_address;
+#endif
return B_OK;
}

static inline void*
Map(AddrType address)
{
+#ifdef _BOOT_PLATFORM_efi
+ return (void*)((uint64)address);
+#else
return (void*)address;
+#endif
}
};

@@ -669,7 +677,6 @@ elf_load_image(int fd, preloaded_image** _image)
return status;
}
#endif
-
if (gKernelArgs.kernel_image == NULL
|| gKernelArgs.kernel_image->elf_class == ELFCLASS32) {
status = ELF32Loader::Create(fd, _image);
diff --git a/src/system/boot/loader/file_systems/amiga_ffs/File.cpp
b/src/system/boot/loader/file_systems/amiga_ffs/File.cpp
index f75be4f..26b857f 100644
--- a/src/system/boot/loader/file_systems/amiga_ffs/File.cpp
+++ b/src/system/boot/loader/file_systems/amiga_ffs/File.cpp
@@ -104,7 +104,7 @@ Stream::ReadAt(off_t offset, uint8 *buffer, size_t size)
{
if (offset < 0)
return B_BAD_VALUE;
- if (offset + size > fNode.Size())
+ if (offset + (ssize_t)size > fNode.Size())
size = fNode.Size() - offset;

ssize_t bytesLeft = (ssize_t)size;
diff --git a/src/system/boot/loader/file_systems/amiga_ffs/amiga_ffs.cpp
b/src/system/boot/loader/file_systems/amiga_ffs/amiga_ffs.cpp
index 28cc48f..1df6e85 100644
--- a/src/system/boot/loader/file_systems/amiga_ffs/amiga_ffs.cpp
+++ b/src/system/boot/loader/file_systems/amiga_ffs/amiga_ffs.cpp
@@ -186,7 +186,7 @@ HashIterator::GetNext(int32 &block)

fNode.SetTo(fData);
if (fNode.ValidateCheckSum() != B_OK) {
- dprintf("block at %ld bad checksum.\n", fBlock);
+ dprintf("block at %" B_PRId32 " bad checksum.\n", fBlock);
return NULL;
}

diff --git a/src/system/boot/loader/file_systems/bfs/Stream.cpp
b/src/system/boot/loader/file_systems/bfs/Stream.cpp
index 4cdea7d..fa83ff3 100644
--- a/src/system/boot/loader/file_systems/bfs/Stream.cpp
+++ b/src/system/boot/loader/file_systems/bfs/Stream.cpp
@@ -305,7 +305,7 @@ Stream::ReadAt(off_t pos, uint8* buffer, size_t* _length)

size_t length = *_length;

- if (pos + length > data.Size())
+ if (pos + (ssize_t)length > data.Size())
length = data.Size() - pos;

block_run run;
diff --git a/src/system/boot/loader/file_systems/bfs/bfs.cpp
b/src/system/boot/loader/file_systems/bfs/bfs.cpp
index 2bb31f9..9855255 100644
--- a/src/system/boot/loader/file_systems/bfs/bfs.cpp
+++ b/src/system/boot/loader/file_systems/bfs/bfs.cpp
@@ -111,7 +111,7 @@ Volume::ValidateBlockRun(block_run run)
|| run.Start() > (1UL << AllocationGroupShift())
|| run.length == 0
|| uint32(run.Length() + run.Start()) > (1UL <<
AllocationGroupShift())) {
- dprintf("bfs: invalid run(%ld,%d,%d)\n", run.AllocationGroup(),
run.Start(), run.Length());
+ dprintf("bfs: invalid run(%" B_PRId32 ",%" B_PRId32 ",%"
B_PRId32 ")\n", run.AllocationGroup(), run.Start(), run.Length());
return B_BAD_DATA;
}
return B_OK;
diff --git a/src/system/boot/loader/file_systems/fat/Stream.cpp
b/src/system/boot/loader/file_systems/fat/Stream.cpp
index 3ed255f..ed3f5da 100644
--- a/src/system/boot/loader/file_systems/fat/Stream.cpp
+++ b/src/system/boot/loader/file_systems/fat/Stream.cpp
@@ -257,7 +257,7 @@ Stream::ReadAt(off_t pos, void *_buffer, size_t *_length,
off_t *diskOffset)

size_t length = *_length;

- if (pos + length > fSize)
+ if (pos + (ssize_t)length > fSize)
length = fSize - pos;

off_t num; // block number
diff --git a/src/system/boot/loader/file_systems/packagefs/packagefs.cpp
b/src/system/boot/loader/file_systems/packagefs/packagefs.cpp
index 52be867..7ed5c29 100644
--- a/src/system/boot/loader/file_systems/packagefs/packagefs.cpp
+++ b/src/system/boot/loader/file_systems/packagefs/packagefs.cpp
@@ -525,7 +525,7 @@ struct File : ::Node {
off_t size = fFile->Size();
if (pos < 0 || pos > size)
return B_BAD_VALUE;
- if (pos + bufferSize > size)
+ if (pos + (ssize_t)bufferSize > size)
bufferSize = size - pos;

if (bufferSize > 0) {
diff --git a/src/system/boot/loader/load_driver_settings.cpp
b/src/system/boot/loader/load_driver_settings.cpp
index 5eabfd4..4bca48e 100644
--- a/src/system/boot/loader/load_driver_settings.cpp
+++ b/src/system/boot/loader/load_driver_settings.cpp
@@ -101,7 +101,7 @@ load_driver_settings(stage2_args* /*args*/, Directory*
volume)

status_t status = load_driver_settings_file(settings,
name);
if (status != B_OK)
- dprintf("Could not load \"%s\" error %ld\n",
name, status);
+ dprintf("Could not load \"%s\" error %"
B_PRId32 "\n", name, status);
}

settings->Close(cookie);
diff --git a/src/system/boot/loader/loader.cpp
b/src/system/boot/loader/loader.cpp
index 9824ee5..2651468 100644
--- a/src/system/boot/loader/loader.cpp
+++ b/src/system/boot/loader/loader.cpp
@@ -123,7 +123,7 @@ load_kernel(stage2_args* args, BootVolume& volume)
close(fd);

if (status < B_OK) {
- dprintf("loading kernel failed: %lx!\n", status);
+ dprintf("loading kernel failed: %" B_PRIx32 "!\n", status);
return status;
}

@@ -131,7 +131,7 @@ load_kernel(stage2_args* args, BootVolume& volume)

status = elf_relocate_image(gKernelArgs.kernel_image);
if (status < B_OK) {
- dprintf("relocating kernel failed: %lx!\n", status);
+ dprintf("relocating kernel failed: %" B_PRIx32 "!\n", status);
return status;
}

@@ -163,7 +163,7 @@ load_modules_from(BootVolume& volume, const char* path)

status_t status = elf_load_image(modules, name);
if (status != B_OK)
- dprintf("Could not load \"%s\" error %ld\n",
name, status);
+ dprintf("Could not load \"%s\" error %"
B_PRIx32 "\n", name, status);
}

modules->Close(cookie);
diff --git a/src/system/boot/loader/net/RemoteDisk.cpp
b/src/system/boot/loader/net/RemoteDisk.cpp
index b78e5fa..3bcbbb4 100644
--- a/src/system/boot/loader/net/RemoteDisk.cpp
+++ b/src/system/boot/loader/net/RemoteDisk.cpp
@@ -79,7 +79,7 @@ RemoteDisk::Init(ip_addr_t serverAddress, uint16 serverPort,
off_t imageSize)
fSocket = new(nothrow) UDPSocket;
if (!fSocket)
return B_NO_MEMORY;
-
+
status_t error = fSocket->Bind(INADDR_ANY, 6666);
if (error != B_OK)
return error;
@@ -165,7 +165,7 @@ RemoteDisk::GetName(char *nameBuffer, size_t bufferSize)
const
if (!nameBuffer)
return B_BAD_VALUE;

- snprintf(nameBuffer, bufferSize, "RemoteDisk:%ld.%ld.%ld.%ld:%hd",
+ snprintf(nameBuffer, bufferSize, "RemoteDisk:%" B_PRId32 ".%" B_PRId32
".%" B_PRId32 ".%" B_PRId32 ":%" B_PRId16 "",
(fServerAddress >> 24) & 0xff, (fServerAddress >> 16) & 0xff,
(fServerAddress >> 8) & 0xff, fServerAddress & 0xff,
fServerPort);

@@ -245,13 +245,13 @@ RemoteDisk::_ReadFromPacket(off_t &pos, uint8 *&buffer,
size_t &bufferSize)
uint32 packetSize = ntohs(header->size);
if (packetOffset > (uint64)pos || packetOffset + packetSize <=
(uint64)pos)
return 0;
-
+
// we do indeed have some bytes already
size_t toCopy = size_t(packetOffset + packetSize - (uint64)pos);
if (toCopy > bufferSize)
toCopy = bufferSize;
memcpy(buffer, header->data + (pos - packetOffset), toCopy);
-
+
pos += toCopy;
buffer += toCopy;
bufferSize -= toCopy;
diff --git a/src/system/boot/loader/partitions.cpp
b/src/system/boot/loader/partitions.cpp
index bbf7bc4..ea2f351 100644
--- a/src/system/boot/loader/partitions.cpp
+++ b/src/system/boot/loader/partitions.cpp
@@ -187,7 +187,7 @@ Partition::ReadAt(void *cookie, off_t position, void
*buffer, size_t bufferSize)
if (position < 0)
return B_BAD_VALUE;

- if (position + bufferSize > this->size)
+ if (position + (ssize_t)bufferSize > this->size)
bufferSize = this->size - position;

ssize_t result = read_pos(fFD, this->offset + position, buffer,
bufferSize);
@@ -204,7 +204,7 @@ Partition::WriteAt(void *cookie, off_t position, const void
*buffer,
if (position < 0)
return B_BAD_VALUE;

- if (position + bufferSize > this->size)
+ if (position + (ssize_t)bufferSize > this->size)
bufferSize = this->size - position;

ssize_t result = write_pos(fFD, this->offset + position, buffer,
diff --git a/src/system/boot/loader/vfs.cpp b/src/system/boot/loader/vfs.cpp
index 8408970..79c0ed0 100644
--- a/src/system/boot/loader/vfs.cpp
+++ b/src/system/boot/loader/vfs.cpp
@@ -292,8 +292,12 @@ MemoryDisk::MemoryDisk(const uint8* data, size_t size,
const char* name)


ssize_t
-MemoryDisk::ReadAt(void* cookie, off_t pos, void* buffer, size_t bufferSize)
+MemoryDisk::ReadAt(void* cookie, off_t offset, void* buffer, size_t bufferSize)
{
+ size_t pos = (size_t)offset;
+
+ if (offset < 0)
+ return B_BAD_VALUE;
if (pos >= fSize)
return 0;

@@ -525,7 +529,7 @@ BootVolume::_SetTo(Directory* rootDirectory,
fSystemDirectory = static_cast<Directory*>(systemNode);

if (packageVolumeInfo == NULL) {
- // get a package volume info
+ // get a package volume info
BReference<PackageVolumeInfo> packageVolumeInfoReference(
new(std::nothrow) PackageVolumeInfo);
status_t error =
packageVolumeInfoReference->SetTo(fSystemDirectory,
diff --git a/src/system/boot/platform/efi/console.cpp
b/src/system/boot/platform/efi/console.cpp
index 8106bb0..ff8a04f 100644
--- a/src/system/boot/platform/efi/console.cpp
+++ b/src/system/boot/platform/efi/console.cpp
@@ -184,11 +184,11 @@ static void updateScreenSize(void)
dprintf("mode: selecting %d\n", currentMode);
bestMode = currentMode;
}
- dprintf("mode: width = %d, height = %d\n", width,
height);
+ dprintf("mode: width = %" B_PRId64 ", height = %"
B_PRId64 "\n", width, height);
}
}

- dprintf("mode: set to %d, %dx%d\n", bestMode, width, height);
+ dprintf("mode: set to %" B_PRId64 ", %" B_PRId64 "x%" B_PRId64 "\n",
bestMode, width, height);

ConOut->SetMode(ConOut, bestMode);
ConOut->QueryMode(ConOut, ConOut->Mode->Mode, &width, &height);
diff --git a/src/system/boot/platform/efi/cpu.cpp
b/src/system/boot/platform/efi/cpu.cpp
index df488d1..7e75f39 100644
--- a/src/system/boot/platform/efi/cpu.cpp
+++ b/src/system/boot/platform/efi/cpu.cpp
@@ -300,12 +300,12 @@ slower_sample:
//dprintf("factors: %lu %llu\n", gTimeConversionFactor, clockSpeed);

if (quickSampleCount > 1) {
- dprintf("needed %lu quick samples for TSC calibration\n",
+ dprintf("needed %" B_PRIu32 " quick samples for TSC
calibration\n",
quickSampleCount);
}

if (slowSampleCount > 1) {
- dprintf("needed %lu slow samples for TSC calibration\n",
+ dprintf("needed %" B_PRIu32 " slow samples for TSC
calibration\n",
slowSampleCount);
}

diff --git a/src/system/boot/platform/efi/devices.cpp
b/src/system/boot/platform/efi/devices.cpp
index 4ccd847..265b9b0 100644
--- a/src/system/boot/platform/efi/devices.cpp
+++ b/src/system/boot/platform/efi/devices.cpp
@@ -59,7 +59,7 @@ class EFIBlockDevice : public Node {

static bool sBlockDevicesAdded = false;

-
+#if false
// we can actually determine this with EFI... to fix up
static void
check_cd_boot(EFIBlockDevice *device)
@@ -105,7 +105,6 @@ get_next_check_sum_offset(int32 index, off_t maxSize)
* array of uint32 values.
* Note, this must use the same method as the one used in
kernel/fs/vfs_boot.cpp.
*/
-
static uint32
compute_check_sum(EFIBlockDevice *device, off_t offset)
{
@@ -224,7 +223,7 @@ find_unique_check_sums(NodeList *devices)

dprintf("Could not make EFI block devices unique! Might boot from the
wrong disk...\n");
}
-
+#endif

static status_t
add_block_devices(NodeList *devicesList, bool identifierMissing) // should
bool be a reference?
@@ -237,8 +236,6 @@ add_block_devices(NodeList *devicesList, bool
identifierMissing) // should bool
EFI_HANDLE *handles, handle;
EFI_STATUS status;
UINTN size;
- CHAR16 *path;
- status_t result;

size = 0;
handles = NULL;
diff --git a/src/system/boot/platform/efi/heap.cpp
b/src/system/boot/platform/efi/heap.cpp
index 77d9544..c17410b 100644
--- a/src/system/boot/platform/efi/heap.cpp
+++ b/src/system/boot/platform/efi/heap.cpp
@@ -11,7 +11,6 @@


#define STAGE_PAGES 0x2000 /* 32 MB */
-#define PAGE_SIZE 0x1000 /* 4 kB */


EFI_PHYSICAL_ADDRESS staging;
diff --git a/src/system/boot/platform/efi/keyboard.cpp
b/src/system/boot/platform/efi/keyboard.cpp
index f7160e6..bded3c8 100644
--- a/src/system/boot/platform/efi/keyboard.cpp
+++ b/src/system/boot/platform/efi/keyboard.cpp
@@ -13,6 +13,7 @@
/*! Note, checking for keys doesn't seem to work in graphics
mode, at least in Bochs.
*/
+#if false
static uint16
check_for_key(void)
{
@@ -20,7 +21,7 @@ check_for_key(void)
return (kSystemTable->ConIn->ReadKeyStroke(kSystemTable->ConIn, &key) ==
EFI_NOT_READY) ? 0 : key.UnicodeChar;
}
-
+#endif

extern "C" void
clear_key_buffer(void)
diff --git a/src/system/boot/platform/efi/mmu.cpp
b/src/system/boot/platform/efi/mmu.cpp
index eafd0a7..7548f4e 100644
--- a/src/system/boot/platform/efi/mmu.cpp
+++ b/src/system/boot/platform/efi/mmu.cpp
@@ -277,7 +277,7 @@ mmu_map_physical_memory(addr_t physicalAddress, size_t
size, uint32 flags)
allocated_memory_regions = region;
region->vaddr = 0;
region->paddr = physicalAddress;
- region->size = size;
+ region->size = aligned_size;
region->released = false;

return physicalAddress + pageOffset;
diff --git a/src/system/boot/platform/efi/mmu.h
b/src/system/boot/platform/efi/mmu.h
index f26ca25..dd51d4f 100644
--- a/src/system/boot/platform/efi/mmu.h
+++ b/src/system/boot/platform/efi/mmu.h
@@ -8,6 +8,7 @@

#include <arch/x86/descriptors.h>

+#undef BOOT_GDT_SEGMENT_COUNT
#define BOOT_GDT_SEGMENT_COUNT (USER_DATA_SEGMENT + 1)

#ifndef _ASSEMBLER
diff --git a/src/system/boot/platform/efi/smp.cpp
b/src/system/boot/platform/efi/smp.cpp
index 5c606f3..ccd7216 100644
--- a/src/system/boot/platform/efi/smp.cpp
+++ b/src/system/boot/platform/efi/smp.cpp
@@ -75,7 +75,7 @@ smp_do_acpi_config(void)
}

gKernelArgs.arch_args.apic_phys = madt->local_apic_address;
- TRACE(("smp: local apic address is 0x%lx\n", madt->local_apic_address));
+ TRACE(("smp: local apic address is 0x%" B_PRIx32 "\n",
madt->local_apic_address));

acpi_apic *apic = (acpi_apic *)((uint8 *)madt + sizeof(acpi_madt));
acpi_apic *end = (acpi_apic *)((uint8 *)madt + madt->header.length);
@@ -108,7 +108,7 @@ smp_do_acpi_config(void)

case ACPI_MADT_IO_APIC: {
acpi_io_apic *ioApic = (acpi_io_apic *)apic;
- TRACE(("smp: found io APIC with id %u and
address 0x%lx\n",
+ TRACE(("smp: found io APIC with id %" B_PRIu32
" and address 0x%" B_PRIx32 "\n",
ioApic->io_apic_id,
ioApic->io_apic_address));
if (gKernelArgs.arch_args.ioapic_phys == 0)
gKernelArgs.arch_args.ioapic_phys =
ioApic->io_apic_address;
@@ -157,7 +157,7 @@ calculate_apic_timer_conversion_factor(void)
gKernelArgs.arch_args.apic_time_cv_factor
= (uint32)((1000000.0/(t2 - t1)) * count);

- TRACE(("APIC ticks/sec = %ld\n",
+ TRACE(("APIC ticks/sec = %" B_PRId32 "\n",
gKernelArgs.arch_args.apic_time_cv_factor));
}

@@ -199,7 +199,7 @@ smp_init_other_cpus(void)
if (gKernelArgs.arch_args.apic_phys == 0)
return;

- TRACE(("smp: found %ld cpu%s\n", gKernelArgs.num_cpus,
+ TRACE(("smp: found %" B_PRId32 " cpu%s\n", gKernelArgs.num_cpus,
gKernelArgs.num_cpus != 1 ? "s" : ""));
TRACE(("smp: apic_phys = %p\n", (void
*)gKernelArgs.arch_args.apic_phys));
TRACE(("smp: ioapic_phys = %p\n",
diff --git a/src/system/boot/platform/efi/video.cpp
b/src/system/boot/platform/efi/video.cpp
index e611220..283a22b 100644
--- a/src/system/boot/platform/efi/video.cpp
+++ b/src/system/boot/platform/efi/video.cpp
@@ -32,7 +32,7 @@ platform_init_video()
{
EFI_STATUS status = kBootServices->LocateProtocol(&sGraphicsOutputGuid,
NULL, (void **)&sGraphicsOutput);
- if (sGraphicsOutput == NULL) {
+ if (status != EFI_SUCCESS || sGraphicsOutput == NULL) {
gKernelArgs.frame_buffer.enabled = false;
return B_ERROR;
}

############################################################################

Commit: d026b9601a9614a69743bbd93e2da75b721f4d03
Author: Jessica Hamilton <jessica.l.hamilton@xxxxxxxxx>
Date: Wed Apr 29 02:44:54 2015 UTC

UEFI: cleanup some warnings

----------------------------------------------------------------------------

diff --git a/build/jam/ArchitectureRules b/build/jam/ArchitectureRules
index e5c20bc..2e90345 100644
--- a/build/jam/ArchitectureRules
+++ b/build/jam/ArchitectureRules
@@ -644,7 +644,7 @@ rule ArchitectureSetupWarnings architecture
EnableWerror src kits ;
EnableWerror src preferences ;
EnableWerror src servers ;
- EnableWerror src system boot ;
+# EnableWerror src system boot ;
EnableWerror src system kernel ;
EnableWerror src system libroot add-ons ;
EnableWerror src system libroot os ;
diff --git a/headers/private/kernel/arch/x86/arch_kernel_args.h
b/headers/private/kernel/arch/x86/arch_kernel_args.h
index d1e202d..95ea5fd 100644
--- a/headers/private/kernel/arch/x86/arch_kernel_args.h
+++ b/headers/private/kernel/arch/x86/arch_kernel_args.h
@@ -17,12 +17,6 @@

#define _PACKED __attribute__((packed))

-#ifdef _BOOT_PLATFORM_efi
-typedef uint64 physical_addr_t;
-#else
-typedef uint32 physical_addr_t;
-#endif
-
// kernel args
typedef struct {
// architecture specific
@@ -36,9 +30,9 @@ typedef struct {
uint64 page_hole;
// smp stuff
uint32 apic_time_cv_factor; // apic ticks per second
- physical_addr_t apic_phys;
+ phys_addr_t apic_phys;
FixedWidthPointer<void> apic;
- physical_addr_t ioapic_phys;
+ phys_addr_t ioapic_phys;
uint32 cpu_apic_id[SMP_MAX_CPUS];
uint32 cpu_apic_version[SMP_MAX_CPUS];
// hpet stuff
diff --git a/src/system/boot/loader/file_systems/bfs/bfs.cpp
b/src/system/boot/loader/file_systems/bfs/bfs.cpp
index 9855255..ea4f3f8 100644
--- a/src/system/boot/loader/file_systems/bfs/bfs.cpp
+++ b/src/system/boot/loader/file_systems/bfs/bfs.cpp
@@ -111,7 +111,7 @@ Volume::ValidateBlockRun(block_run run)
|| run.Start() > (1UL << AllocationGroupShift())
|| run.length == 0
|| uint32(run.Length() + run.Start()) > (1UL <<
AllocationGroupShift())) {
- dprintf("bfs: invalid run(%" B_PRId32 ",%" B_PRId32 ",%"
B_PRId32 ")\n", run.AllocationGroup(), run.Start(), run.Length());
+ dprintf("bfs: invalid run(%" B_PRId32 ",%d,%d)\n",
run.AllocationGroup(), run.Start(), run.Length());
return B_BAD_DATA;
}
return B_OK;
diff --git a/src/system/boot/platform/efi/entry.S
b/src/system/boot/platform/efi/entry.S
index 5c5180d..715ccec 100644
--- a/src/system/boot/platform/efi/entry.S
+++ b/src/system/boot/platform/efi/entry.S
@@ -7,7 +7,6 @@

#include <asm_defs.h>

-#define __x86_64__
#include <arch/x86/descriptors.h>

#include "mmu.h"
diff --git a/src/system/boot/platform/efi/menu.cpp
b/src/system/boot/platform/efi/menu.cpp
index aca2f9c..43541d3 100644
--- a/src/system/boot/platform/efi/menu.cpp
+++ b/src/system/boot/platform/efi/menu.cpp
@@ -12,13 +12,6 @@
#include <boot/platform/generic/text_menu.h>


-static void
-warm_reboot(char key)
-{
- kRuntimeServices->ResetSystem(EfiResetWarm, 0, 0, NULL);
-}
-
-
void
platform_add_menus(Menu *menu)
{


Other related posts:

  • » [haiku-commits] BRANCH jessicah-github.efi.master [d026b9601a96] in src/system/boot: platform/efi loader loader/file_systems/bfs loader/net loader/file_systems/amiga_ffs - jessicah-github . efi . master