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
This commit is contained in:
parent
006804e44f
commit
d796054bd9
@ -852,7 +852,11 @@ read_loader_env(const char *name, char *def_fn, bool once)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
caddr_t
|
||||
ptov(uintptr_t x)
|
||||
{
|
||||
return ((caddr_t)x);
|
||||
}
|
||||
|
||||
EFI_STATUS
|
||||
main(int argc, CHAR16 *argv[])
|
||||
|
@ -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
|
||||
|
@ -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)
|
||||
{
|
||||
|
@ -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 */
|
||||
|
Loading…
Reference in New Issue
Block a user