svn commit: r358135 - in head/stand: efi/loader i386/libi386 i386/loader libsa
Warner Losh
imp at FreeBSD.org
Thu Feb 20 00:46:17 UTC 2020
Author: imp
Date: Thu Feb 20 00:46:16 2020
New Revision: 358135
URL: https://svnweb.freebsd.org/changeset/base/358135
Log:
Create ptov() function.
Create a ptov() function. It's basically the same as the btx PTOV
macro, but works everywhere. smbios needs this to translate addresses,
but the translation differs between BIOS booting and EFI booting. Make
it a function so one smbios.o can be used everywhere. Provide
definitions for it in the two loaders affected.
Differential Revision: https://reviews.freebsd.org/D23660
Modified:
head/stand/efi/loader/main.c
head/stand/i386/libi386/smbios.c
head/stand/i386/loader/main.c
head/stand/libsa/stand.h
Modified: head/stand/efi/loader/main.c
==============================================================================
--- head/stand/efi/loader/main.c Thu Feb 20 00:34:46 2020 (r358134)
+++ head/stand/efi/loader/main.c Thu Feb 20 00:46:16 2020 (r358135)
@@ -852,7 +852,11 @@ read_loader_env(const char *name, char *def_fn, bool o
}
}
-
+caddr_t
+ptov(uintptr_t x)
+{
+ return ((caddr_t)x);
+}
EFI_STATUS
main(int argc, CHAR16 *argv[])
Modified: head/stand/i386/libi386/smbios.c
==============================================================================
--- head/stand/i386/libi386/smbios.c Thu Feb 20 00:34:46 2020 (r358134)
+++ head/stand/i386/libi386/smbios.c Thu Feb 20 00:46:16 2020 (r358135)
@@ -28,16 +28,9 @@
__FBSDID("$FreeBSD$");
#include <stand.h>
-#include <bootstrap.h>
#include <sys/endian.h>
-#ifdef EFI
-/* In EFI, we don't need PTOV(). */
-#define PTOV(x) (caddr_t)(x)
-#else
-#include "btxv86.h"
-#endif
-#include "smbios.h"
+#define PTOV(x) ptov(x)
/*
* Detect SMBIOS and export information about the SMBIOS into the
Modified: head/stand/i386/loader/main.c
==============================================================================
--- head/stand/i386/loader/main.c Thu Feb 20 00:34:46 2020 (r358134)
+++ head/stand/i386/loader/main.c Thu Feb 20 00:46:16 2020 (r358135)
@@ -86,6 +86,12 @@ extern char end[];
static void *heap_top;
static void *heap_bottom;
+caddr_t
+ptov(uintptr_t x)
+{
+ return (PTOV(x));
+}
+
int
main(void)
{
Modified: head/stand/libsa/stand.h
==============================================================================
--- head/stand/libsa/stand.h Thu Feb 20 00:34:46 2020 (r358134)
+++ head/stand/libsa/stand.h Thu Feb 20 00:46:16 2020 (r358135)
@@ -452,4 +452,9 @@ const char *x86_hypervisor(void);
#define reallocf(x, y) Reallocf(x, y, NULL, 0)
#endif
+/*
+ * va <-> pa routines. MD code must supply.
+ */
+caddr_t ptov(uintptr_t);
+
#endif /* STAND_H */
More information about the svn-src-all
mailing list