Server IP : 13.213.54.232 / Your IP : 216.73.217.11 Web Server : Apache/2.4.52 (Ubuntu) System : Linux ip-172-31-17-110 6.8.0-1029-aws #31~22.04.1-Ubuntu SMP Thu Apr 24 21:16:18 UTC 2025 x86_64 User : www-data ( 33) PHP Version : 7.1.33-67+ubuntu22.04.1+deb.sury.org+1 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, MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /usr/lib/modules/6.8.0-1031-aws/build/arch/s390/include/asm/ |
Upload File : |
/* SPDX-License-Identifier: GPL-2.0 */ /* * Copyright IBM Corp. 2017 * Author(s): Claudio Imbrenda <imbrenda@linux.vnet.ibm.com> */ #ifndef PAGE_STATES_H #define PAGE_STATES_H #include <asm/sections.h> #include <asm/page.h> #define ESSA_GET_STATE 0 #define ESSA_SET_STABLE 1 #define ESSA_SET_UNUSED 2 #define ESSA_SET_VOLATILE 3 #define ESSA_SET_POT_VOLATILE 4 #define ESSA_SET_STABLE_RESIDENT 5 #define ESSA_SET_STABLE_IF_RESIDENT 6 #define ESSA_SET_STABLE_NODAT 7 #define ESSA_MAX ESSA_SET_STABLE_NODAT extern int __bootdata_preserved(cmma_flag); static __always_inline unsigned long essa(unsigned long paddr, unsigned char cmd) { unsigned long rc; asm volatile( " .insn rrf,0xb9ab0000,%[rc],%[paddr],%[cmd],0" : [rc] "=d" (rc) : [paddr] "d" (paddr), [cmd] "i" (cmd)); return rc; } static __always_inline void __set_page_state(void *addr, unsigned long num_pages, unsigned char cmd) { unsigned long paddr = __pa(addr) & PAGE_MASK; while (num_pages--) { essa(paddr, cmd); paddr += PAGE_SIZE; } } static inline void __set_page_unused(void *addr, unsigned long num_pages) { __set_page_state(addr, num_pages, ESSA_SET_UNUSED); } static inline void __set_page_stable_dat(void *addr, unsigned long num_pages) { __set_page_state(addr, num_pages, ESSA_SET_STABLE); } static inline void __set_page_stable_nodat(void *addr, unsigned long num_pages) { __set_page_state(addr, num_pages, ESSA_SET_STABLE_NODAT); } static inline void __arch_set_page_nodat(void *addr, unsigned long num_pages) { if (!cmma_flag) return; if (cmma_flag < 2) __set_page_stable_dat(addr, num_pages); else __set_page_stable_nodat(addr, num_pages); } static inline void __arch_set_page_dat(void *addr, unsigned long num_pages) { if (!cmma_flag) return; __set_page_stable_dat(addr, num_pages); } #endif