From 95ede670bcfea5ea22965962fe764841243eb864 Mon Sep 17 00:00:00 2001 From: Michael Brown Date: Sun, 11 May 2025 13:04:51 +0100 Subject: [riscv] Hold virtual address offset in the thread pointer register iPXE does not make use of any thread-local storage. Use the otherwise unused thread pointer register ("tp") to hold the current value of the virtual address offset, rather than using a global variable. This ensures that virt_offset can be made valid even during very early initialisation (when iPXE may be executing directly from read-only memory and so cannot update a global variable). Signed-off-by: Michael Brown --- src/include/bits/virt_offset.h | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 src/include/bits/virt_offset.h (limited to 'src/include/bits/virt_offset.h') diff --git a/src/include/bits/virt_offset.h b/src/include/bits/virt_offset.h new file mode 100644 index 000000000..5f026284c --- /dev/null +++ b/src/include/bits/virt_offset.h @@ -0,0 +1,15 @@ +#ifndef _BITS_VIRT_OFFSET_H +#define _BITS_VIRT_OFFSET_H + +/** @file + * + * Dummy architecture-specific virtual address offset + * + * This file is included only if the architecture does not provide its + * own version of this file. + * + */ + +FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ); + +#endif /* _BITS_VIRT_OFFSET_H */ -- cgit v1.2.3-55-g7522