Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0 */
0002 /*
0003  * Copyright (C) 2019 ARM Limited
0004  *
0005  * Utility macro to ease definition of testcases toggling mode EL
0006  */
0007 
0008 #define DEFINE_TESTCASE_MANGLE_PSTATE_INVALID_MODE(_mode)       \
0009                                     \
0010 static int mangle_invalid_pstate_run(struct tdescr *td, siginfo_t *si,  \
0011                      ucontext_t *uc)            \
0012 {                                   \
0013     ASSERT_GOOD_CONTEXT(uc);                    \
0014                                     \
0015     uc->uc_mcontext.pstate &= ~PSR_MODE_MASK;           \
0016     uc->uc_mcontext.pstate |= PSR_MODE_EL ## _mode;         \
0017                                     \
0018     return 1;                           \
0019 }                                   \
0020                                     \
0021 struct tdescr tde = {                           \
0022         .sanity_disabled = true,                \
0023         .name = "MANGLE_PSTATE_INVALID_MODE_EL"#_mode,      \
0024         .descr = "Mangling uc_mcontext INVALID MODE EL"#_mode,  \
0025         .sig_trig = SIGUSR1,                    \
0026         .sig_ok = SIGSEGV,                  \
0027         .run = mangle_invalid_pstate_run,           \
0028 }