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
65252dc903
commit
ed2a65769a
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=358135
@ -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
|
EFI_STATUS
|
||||||
main(int argc, CHAR16 *argv[])
|
main(int argc, CHAR16 *argv[])
|
||||||
|
@ -28,16 +28,9 @@
|
|||||||
__FBSDID("$FreeBSD$");
|
__FBSDID("$FreeBSD$");
|
||||||
|
|
||||||
#include <stand.h>
|
#include <stand.h>
|
||||||
#include <bootstrap.h>
|
|
||||||
#include <sys/endian.h>
|
#include <sys/endian.h>
|
||||||
|
|
||||||
#ifdef EFI
|
#define PTOV(x) ptov(x)
|
||||||
/* In EFI, we don't need PTOV(). */
|
|
||||||
#define PTOV(x) (caddr_t)(x)
|
|
||||||
#else
|
|
||||||
#include "btxv86.h"
|
|
||||||
#endif
|
|
||||||
#include "smbios.h"
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Detect SMBIOS and export information about the SMBIOS into the
|
* Detect SMBIOS and export information about the SMBIOS into the
|
||||||
|
@ -86,6 +86,12 @@ extern char end[];
|
|||||||
static void *heap_top;
|
static void *heap_top;
|
||||||
static void *heap_bottom;
|
static void *heap_bottom;
|
||||||
|
|
||||||
|
caddr_t
|
||||||
|
ptov(uintptr_t x)
|
||||||
|
{
|
||||||
|
return (PTOV(x));
|
||||||
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
main(void)
|
main(void)
|
||||||
{
|
{
|
||||||
|
@ -452,4 +452,9 @@ const char *x86_hypervisor(void);
|
|||||||
#define reallocf(x, y) Reallocf(x, y, NULL, 0)
|
#define reallocf(x, y) Reallocf(x, y, NULL, 0)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* va <-> pa routines. MD code must supply.
|
||||||
|
*/
|
||||||
|
caddr_t ptov(uintptr_t);
|
||||||
|
|
||||||
#endif /* STAND_H */
|
#endif /* STAND_H */
|
||||||
|
Loading…
Reference in New Issue
Block a user