|
Server : LiteSpeed System : Linux srv107862549.host 5.15.0-124-generic #134-Ubuntu SMP Fri Sep 27 20:20:17 UTC 2024 x86_64 User : malam2778 ( 1069) PHP Version : 8.0.30 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, Directory : /usr/src/linux-headers-5.15.0-58/include/linux/ |
Upload File : |
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
#ifndef _LINUX_SECRETMEM_H
#define _LINUX_SECRETMEM_H
#ifdef CONFIG_SECRETMEM
extern const struct address_space_operations secretmem_aops;
static inline bool page_is_secretmem(struct page *page)
{
struct address_space *mapping;
/*
* Using page_mapping() is quite slow because of the actual call
* instruction and repeated compound_head(page) inside the
* page_mapping() function.
* We know that secretmem pages are not compound and LRU so we can
* save a couple of cycles here.
*/
if (PageCompound(page) || !PageLRU(page))
return false;
mapping = (struct address_space *)
((unsigned long)page->mapping & ~PAGE_MAPPING_FLAGS);
if (!mapping || mapping != page->mapping)
return false;
return mapping->a_ops == &secretmem_aops;
}
bool vma_is_secretmem(struct vm_area_struct *vma);
bool secretmem_active(void);
#else
static inline bool vma_is_secretmem(struct vm_area_struct *vma)
{
return false;
}
static inline bool page_is_secretmem(struct page *page)
{
return false;
}
static inline bool secretmem_active(void)
{
return false;
}
#endif /* CONFIG_SECRETMEM */
#endif /* _LINUX_SECRETMEM_H */