linker: helper functions to test if pointer/region is pinned
This adds two helper functions to test if a pointer or a region resides in the pinned region. Signed-off-by: Daniel Leung <daniel.leung@intel.com>
This commit is contained in:
parent
8749cd4d76
commit
dc1f4b2715
1 changed files with 23 additions and 0 deletions
|
@ -411,6 +411,29 @@ extern char lnkr_pinned_bss_size[];
|
|||
extern char lnkr_pinned_noinit_start[];
|
||||
extern char lnkr_pinned_noinit_end[];
|
||||
extern char lnkr_pinned_noinit_size[];
|
||||
|
||||
__pinned_func
|
||||
static inline bool lnkr_is_pinned(uint8_t *addr)
|
||||
{
|
||||
if ((addr >= (uint8_t *)lnkr_pinned_start) &&
|
||||
(addr < (uint8_t *)lnkr_pinned_end)) {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
__pinned_func
|
||||
static inline bool lnkr_is_region_pinned(uint8_t *addr, size_t sz)
|
||||
{
|
||||
if ((addr >= (uint8_t *)lnkr_pinned_start) &&
|
||||
((addr + sz) < (uint8_t *)lnkr_pinned_end)) {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
#endif /* CONFIG_LINKER_USE_PINNED_SECTION */
|
||||
|
||||
#endif /* ! _ASMLANGUAGE */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue