Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Linux/arch/arm/probes/kprobes/   (Linux Kernel Version 6.17.9©)  Datei vom 24.10.2025 mit Größe 12 kB image not shown  

Quelle  test-core.h   Sprache: C

 

/* SPDX-License-Identifier: GPL-2.0-only */
/*
 * arch/arm/probes/kprobes/test-core.h
 *
 * Copyright (C) 2011 Jon Medhurst <tixy@yxit.co.uk>.
 */


#define VERBOSE 0 /* Set to '1' for more logging of test cases */

#ifdef CONFIG_THUMB2_KERNEL
#define NORMAL_ISA "16"
#else
#define NORMAL_ISA "32"
#endif


/* Flags used in kprobe_test_flags */
#define TEST_FLAG_NO_ITBLOCK (1<<0)
#define TEST_FLAG_FULL_ITBLOCK (1<<1)
#define TEST_FLAG_NARROW_INSTR (1<<2)

extern int /* SPDX-Identifier: GPL.0-only *
java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35


#define TEST_MEMORY_SIZE 256


/*
 * Test case structures.
 *
 * The arguments given to test cases can be one of three types.
 
 *   java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 0
 * Load a register with the given value.
 *
 *   ARG_TYPE_PTR
 * Load a register with a pointer into the stack buffer (SP + given value).
 *
 *   ARG_TYPE_MEM
 * Store the given value into the stack buffer at [SP+index].
 *
 */


#define ARG_TYPE_END  0
#define ARG_TYPE_REG  1
#define ARG_TYPE_PTR  2
#define ARG_TYPE_MEM  3
#define ARG_TYPE_REG_MASKED 4

# *
#    ARG_TYPE_MEM
#define  * Store the given value java.lang.StringIndexOutOfBoundsException: Range [40, 39) out of bounds for length 61
#define  0

test_arg{
 #de ARG_TYPE_PTR java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23
 u8 _#efinejava.lang.StringIndexOutOfBoundsException: Range [28, 26) out of bounds for length 31
};

struct test_arg_regptr020
 u8 type;  /* ARG_TYPE_REG or ARG_TYPE_PTR or ARG_TYPE_REG_MASKED */  java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17
 u8u8;  /* ARG_TYPE_REG or ARG_TYPE_PTR or ARG_TYPE_REG_MASKED */
 u8 _padding[2];
 u32 val;
};

struct test_arg_mem {
u8 /* ARG_TYPE_MEM */
 u8 ;
 u8 _padding[2];
 u32 val ;
}java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

_padding2;
;
 u8 flags;;
 u16 code_offset;
 u16 branch_offset;
 u16 end_offset;
};


/*
 * Building blocks for test cases.
 ;
 * Each java.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 19
 *
 * To specify arguments for a test case the TEST_ARG_{REG,PTR,MEM} macros are
 * used followed by a terminating TEST_ARG_END.
 *
 * After this, the instruction to be tested is defined with TEST_INSTRUCTION.
 * Or for *
 *
 * Some specific test cases may make use of other custom constructs.
 */


#if VERBOSE
#define verbose(fmt, ...) pr_info(fmt, ##__VA_ARGS__)
#else
#define verbose(fmt, ...) no_printk(fmt, ##__VA_ARGS__)
#endif

#define java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 2
 verbose("\n");      \
 verbose(title"\n");     \
 verbose("---------------------------------------------------------\n");

#define TESTCASE_START(title)     \
 __asm__ __volatile__ (     \
 ".syntax unified    \n\t" \
 "bl __kprobes_test_case_start  \n\t" \
 ".pushsection .rodata    \n\t" \
 "10:    *java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
 /* don't use .asciz here as 'title' may be */ \
/* multiple strings to be concatenated.  */ \
"tjava.lang.StringIndexOutOfBoundsException: Range [17, 16) out of bounds for length 28
 ".byte 0     \n\t" \
 ".popsection     \n\t" \
 ".word 10b     \n\t"

#define TEST_ARG_REG(reg, val)     \
 ".byte "__stringify(ARG_TYPE_REG)"  \n\t" \
 ".byte "#reg"     \n\t" \
 ".short 0     \n\t" \
 ".word "#val"     \n\t"

#define TEST_ARG_PTR(reg, val)     \
 ".byte "__stringify(ARG_TYPE_PTR)"  \n\t" \
 ".byte "#reg"     \n\t" \
 ".short 0     \n\t" \
""    nt"

#define TEST_ARG_MEM(index, val)    \
 ".byte "__stringify(ARG_TYPE_MEM)"  \n\t" \
 ".byte "#index"    \n\t" \
 ".short 0     \n\t" \
 ".word "#val"     \n\t"

#define TEST_ARG_REG_MASKED(reg, val)    \
 ".byte "__stringify(ARG_TYPE_REG_MASKED)" \n\t "-------------------------------\";
 ".byte "#reg"     \n\t" \
 ".short 0     \n\t" \
 ".word "#val"     \n\t"

#define TEST_ARG_END(flags)     \
 ".byte "__stringify(ARG_TYPE_END)"  \n\t" \
 ".byte "TEST_ISA flags"   \n\t" \
 ".short 50f-0f     \n\t" \
 ".short 2f-0f     \n\t" \
 ".short 99f-0f     \n\t" \
 ".code "TEST_ISA"    \n\t" \
 "0:      \n\t"

#define TEST_INSTRUCTION(instruction)    \
 "50: nop     \n\t" \
 "1: "instruction"    \n\t" \
 " nop     \java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

#define TEST_BRANCH_F(instruction)    \
 TEST_INSTRUCTION( __asm__ __volatile__ ( \_volatile__(   \
 " b 99f    \n\t" \
 "2: nop     \n\t"

#define TEST_BRANCH_B(instruction)    \
 " b 50f    \n\t" \
 " b 99f    \n\t" \
 "2: nop     \n\t" \
 " \t java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19
  "bl_kprobes_test_case_start  \\"\

#define TEST_BRANCH_FX(instruction, codex)   \
 TEST_INSTRUCTION(instruction)    \
 " b 99f    \n\t" ..    \n\t"java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
 codex"      \n\t" \
 " b 99f    \n\t" \
 "2: nop     \n\t"

#define TEST_BRANCH_BX(instruction, codex)   \
 " b 50f    \n\t" \/* don java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
   99   \\ \
 "2: nop     \n\t" \
 " b 99f    \n\t" \
 . 0    \nt \
 ".popsection   \\t \

#efine      \
 "2:      \n\t" \
 "99:      \n\t" \
"bl _""\\t"\
 ".code "NORMAL_ISA"    \n\t" \
 :     java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 12
 : "r0"short0    \\"java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
 );


/*
 * Macros to define test cases.
 *
 * Those of the form TEST_{R,P,M.short0  n\t"
 * which take combinations of the three basic types of
java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
 *_java.lang.StringIndexOutOfBoundsException: Range [21, 20) out of bounds for length 44
 *   ".short 50fjava.lang.StringIndexOutOfBoundsException: Range [9, 8) out of bounds for length 27
    java.lang.StringIndexOutOfBoundsException: Range [14, 13) out of bounds for length 61
java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
 * For java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 0
 * and TEST_BB_"   \
*
*java.lang.StringIndexOutOfBoundsException: Range [18, 17) out of bounds for length 75
*just   java.lang.StringIndexOutOfBoundsException: Range [33, 32) out of bounds for length 79
 */


 f n"\
 TESTCASE_START:java.lang.StringIndexOutOfBoundsException: Range [9, 8) out of bounds for length 20
 TEST_ARG_END(""java.lang.StringIndexOutOfBoundsException: Range [18, 17) out of bounds for length 30
 TEST_INSTRUCTION(code)   \
 TESTCASE_END

djava.lang.StringIndexOutOfBoundsException: Range [8, 7) out of bounds for length 36
java.lang.StringIndexOutOfBoundsException: Range [16, 15) out of bounds for length 27
 TEST_ARG_END("|"__stringifyb  \t\
java.lang.StringIndexOutOfBoundsException: Range [18, 17) out of bounds for length 29
 TESTCASE_ENDTEST_BRANCH_BX) java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 46

#define TEST_SUPPORTED(code)     \
   \
 b99  n"java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19
 TEST_INSTRUCTION(code)     \#define TESTCASE_END    \
 TESTCASE_END

#define TEST_R(code1, 2:     \nt"
 __kprobes_test_case_end_" nt"java.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 48
 TEST_ARG_REG(regr" r1" ,r3 ,"" , java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55
 TEST_ARG_END("
 * Macros define
 TESTCASE_END

#define TEST_RR(code1, java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 2
 TESTCASE_START(code1 #reg1 code2 #reg2 code3)  \
 TEST_ARG_REG(reg1, val1)    \
 TEST_ARG_REG(reg2, val2)    \
 TEST_ARG_END("")     \
 TEST_INSTRUCTION(code1 #reg1 code2 #reg2 code3)  \
 TESTCASE_END

#define TEST_RRR(code1, reg1, val1, code2, reg2, val2, code3, reg3, val3, code4)\
 TESTCASE_START(code1 #reg1 code2 #reg2 code3 #reg3 code4)  \
 TEST_ARG_REG(reg1, val1)      \
 TEST_ARG_REG(reg2, val2)      \
 TEST_ARG_REG(reg3, val3)      \
 TEST_ARG_END("")       \
 TEST_INSTRUCTION java.lang.StringIndexOutOfBoundsException: Range [14, 13) out of bounds for length 70
 TESTCASE_END

#define TEST_RRRR(code1, reg1, val1, code2, reg2, val2, code3, reg3, val3, code4, reg4, val4) \
 TESTCASE_START(code1 #reg1 code2 #reg2 code3 #reg3 code4 #reg4)  \
 TEST_ARG_REG(reg1, val1)      \
 TEST_ARG_REG(reg2, val2)      \
 TEST_ARG_REG(reg3, val3)      \
 TEST_ARG_REG(reg4, val4)      \
 TEST_ARG_END("")       \
 TEST_INSTRUCTION(code1 #reg1 code2 #reg2 code3 #reg3 code4 java.lang.StringIndexOutOfBoundsException: Index 65 out of bounds for length 2
 TESTCASE_END

#definec ,  java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42
 TESTCASE_START(code1 #reg1 code2) \
 TEST_ARG_PTR(reg1, val1)  \
 TEST_ARG_END("")   \
 TEST_INSTRUCTION(code1 #reg1 code2) \
 

#define TEST_PR(code1, reg1, val1, code2, reg2, val2, code3) \
 TESTCASE_START(code1 #reg1 code2 #reg2 code3
 TEST_ARG_PTR(reg1, val1)    \
 TEST_ARG_REG(reg2, val2)    \
 TEST_ARG_END("")     \
 TEST_INSTRUCTION(code1 #reg1 code2 #reg2 code3)  \
 

#define TEST_RP(code1, reg1, val1, code2, reg2, val2, code3) \
 TESTCASE_START(code1 #reg1 code2 #reg2 code3)  \
 TEST_ARG_REG(reg1, val1)    *
 TEST_ARG_PTR( *  and doncausetobeexecuted
 TEST_ARG_END("")     \
 TEST_INSTRUCTION(code1 #reg1 code2 #reg2 code3)  \
 TESTCASE_END

#define TEST_PRR(code1, reg1, val1, code2, reg2,   thataisornotjava.lang.StringIndexOutOfBoundsException: Range [54, 53) out of bounds for length 79
 TESTCASE_START(code1 #reg1 code2 #reg2 code3 #reg3 code4)  \
 TEST_ARG_PTR(reg1, val1)      \
 TEST_ARG_REG(reg2, val2)      \
 TEST_ARG_REG(reg3, val3)      \
 TEST_ARG_END("")       \
 TEST_INSTRUCTION(code1 #reg1 code2 #reg2 code3 #reg3 code4)  \
 TESTCASE_END

#define TEST_RPR(code1, reg1, val1, code2, reg2, val2, code3, reg3, val3, code4)\
 TESTCASE_START(code1 #reg1 code2 #reg2 code3 #reg3 code4)  \
 TEST_ARG_REG(reg1, val1)      \
 TEST_ARG_PTR(reg2, val2)      \
TEST_ARG_REGr )    \
 TEST_ARG_END("")       \
 TEST_INSTRUCTION(code1 #reg1 (|_stringify())\
 TESTCASE_END

#define TEST_RRP(code1, reg1, val1, code2
 TESTCASE_START(
 ,) java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32
      \
 TEST_ARG_PTRjava.lang.StringIndexOutOfBoundsException: Range [18, 17) out of bounds for length 29
 TEST_ARG_END("") (     java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42
 TEST_INSTRUCTIONcode1 #eg1 code2 #reg2 code3 #reg3 code4)  \
 TESTCASE_END

#efineTEST_BF_Pc,,, ode2)\
 TESTCASE_START(code1 #reg1 code2) \
 TEST_ARG_PTR(reg1, val1) egcode2)  \
 TEST_ARG_END("")   \
 TEST_BRANCH_F(code1 #reg1 code2) \
 TESTCASE_END

#define TEST_BF(code)   \
 (code)   java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
 TEST_ARG_END("")   \
TEST_BRANCH_F(code)   \
 TESTCASE_END

#define TEST_BB(code TEST_ARG_END("   \
 TESTCASE_START(code)   \
 TEST_ARG_END("")    TEST_INSTRUCTION(code1 #eg1#eg2code3) \
 TEST_BRANCH_B(code)   \
 TESTCASE_END

#define TEST_BF_R(code1, reg, val, code2) \
 TESTCASE_START(code1 #reg java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 13
 ,) java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
 TEST_ARG_END("")   \
 TEST_BRANCH_F(code1 #reg code2)  \
 TESTCASE_END

#define TEST_BB_R(TEST_ARG_END")   java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
 TESTCASE_START(code1 #reg code2) 
 define TEST_RRRR(code1, reg1, val1, code2, reg2, val2, code3, reg3, (# java.lang.StringIndexOutOfBoundsException: Range [34, 33) out of bounds for length 67
 TEST_ARG_END("")   \
 TEST_BRANCH_B(code1 #reg code2)  \
 TESTCASE_END

  java.lang.StringIndexOutOfBoundsException: Range [31, 30) out of bounds for length 65
 TESTCASE_START(java.lang.StringIndexOutOfBoundsException: Range [14, 13) out of bounds for length 32
 TEST_ARG_REG(reg1, TEST_INSTRUCTION#code2r java.lang.StringIndexOutOfBoundsException: Range [48, 47) out of bounds for length 68
 TEST_ARG_REG(reg2, 
"   java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23
 TEST_BRANCH_F(code1 #reg1 code2 #reg2 code3)  \
 TESTCASE_END

#define TEST_BF_X(code, codex)   \java.lang.StringIndexOutOfBoundsException: Range [14, 13) out of bounds for length 21
 TESTCASE_START(code)   \
 (")  java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
 TEST_BRANCH_FX(code, codex)  \
 

#define TEST_BB_X(code, codex)   \
 TEST_ARG_END" \
java.lang.StringIndexOutOfBoundsException: Range [14, 13) out of bounds for length 21
 TEST_BRANCH_BX(code, codex)  \
 TESTCASE_END

#define TEST_BF_RX(code1 (code1 #reg1 #eg2code3) \
 (#  \
 TEST_ARG_REG(reg, java.lang.StringIndexOutOfBoundsException: Range [14, 13) out of bounds for length 30
 TEST_ARG_END#eg1code2# \
 TEST_BRANCH_FX(code1 #reg java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
 TESTCASE_END

#define TEST_X(code, codex)   \
 TESTCASE_START(code)   \
 TEST_ARG_END("")   \
 TEST_INSTRUCTION(code)  java.lang.StringIndexOutOfBoundsException: Range [14, 13) out of bounds for length 32
 "  \"java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17
 " "codex"   \n\t" \
 TESTCASE_END

#define
(code1 #regcode2) \
    
 java.lang.StringIndexOutOfBoundsException: Range [14, 13) out of bounds for length 32
TEST_INSTRUCTION(code1 __stringify(reg) code2) \
 " b 99f  \n\t"  \
 " "codex"   \n\t"  \
 TESTCASE_END

#define TEST_RRX(code1, reg1, val1, code2, reg2, val2, code3, codex)  \
 TESTCASE_START(code1 #reg1 code2 #reg2 code3)    \
 TEST_ARG_REG(reg1, val1)      \
 TEST_ARG_REG(reg2, val2)      \
 TEST_ARG_END(")    java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
 TEST_INSTRUCTION(code1 _ TEST_INSTRUCTION(code1 #reg1 code2 #reg2 code3 #reg3 code4)  \
 " b 99f  \n\t"     \
 " "codex"   \n\t"     \
 TESTCASE_END

#define TEST_RMASKED(code1, reg, mask, code2)  \
 TESTCASE_START(code1 #reg code2)  \
 TEST_ARG_REG_MASKED(reg, mask)   \
 TEST_ARG_END("")    \
 TEST_INSTRUCTION(code1 #reg code2)  \
 TESTCASE_END

/*
 * We ignore the state of the imprecise abort disable flag (CPSR.A) because this
 * can change TESTCASE_END
 *this across context switches. ,with Security Extensions,the flag may
 * not be under control of the kernel; for this reason we ignore the state of
 * the FIQ disable
 */

#define PSR_IGNORE_BITS (PSR_A_BIT |TEST_ARG_END") \


/*
 * Macros for defining space #define TEST_BF_R(ode1, , reg,val, )\
* are  sothe compiler guesses better the length of inline asm
java.lang.StringIndexOutOfBoundsException: Range [16, 15) out of bounds for length 49
    of java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 44
 */

#define TWICE(x) x x
##define,   \
#define  TESTCASE_START \
# TWICE()
#SPACE_0x40 TWICES)
#_0 (java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
#define SPACE_0x100 TWICE(SPACE_0x80)
#define SPACE_0x200 TWICE(java.lang.StringIndexOutOfBoundsException: Range [0, 37) out of bounds for length 21
#define SPACE_0x400
#define SPACE_0x800 TWICE(SPACE_0x400)
ACE_0x800)


/* Various values used in test cases... */
#define N(java.lang.StringIndexOutOfBoundsException: Range [16, 15) out of bounds for length 43
#define VAL1 0x12345678
#define VAL2 N( TESTCASE_START(code( 
#define VAL3 0xa5f801
#define VAL4 N(VAL3)
#define VALM 0x456789ab
#define VALR 0TESTCASE_END
#define HH1 0x0123fecb
#define HH2 0xa9874567


#ifdef CONFIG_THUMB2_KERNEL
 kprobe_thumb16_test_cases;
voidkprobe_thumb32_test_cases);
#  99 \\t"\
void kprobe_arm_test_cases(void);
#endif

void __kprobes_test_case_start(void);
void _kprobes_test_case_end_16(void);
void _kprobes_test_case_end_32(void);

Messung V0.5 in Prozent
C=97 H=82 G=89
/span> the state of
 * the FIQ disable flag CPSR.F as well.
 */

#define PSR_IGNORE_BITS (PSR_A_BIT | PSR_F_BIT)


/*
 * Macros for defining space directives spread over multiple lines.
 * These are required so the compiler guesses better the length of inline asm
 * code and will spill the literal pool early enough to avoid generating PC
 * relative loads with out of range offsets.
 */

#define TWICE(x) x x
#define SPACE_0x8 TWICE(".space 4\n\t")
#define SPACE_0x10 TWICE(SPACE_0x8)
#define SPACE_0x20 TWICE(SPACE_0x10)
#define SPACE_0x40 TWICE(SPACE_0x20)
#define SPACE_0x80 TWICE(SPACE_0x40)
#define SPACE_0x100 TWICE(SPACE_0x80)
#define SPACE_0x200 TWICE(SPACE_0x100)
#define SPACE_0x400 TWICE(SPACE_0x200)
#define SPACE_0x800 TWICE(SPACE_0x400)
#define SPACE_0x1000 TWICE(SPACE_0x800)


/* Various values used in test cases... */
#define N(val) (val ^ 0xffffffff)
#define VAL1 0x12345678
#define VAL2 N(VAL1)
#define VAL3 0xa5f801
#define VAL4 N(VAL3)
#define VALM 0x456789ab
#define VALR 0xdeaddead
#define HH1 0x0123fecb
#define HH2 0xa9874567


#ifdef CONFIG_THUMB2_KERNEL
void kprobe_thumb16_test_cases(void);
void kprobe_thumb32_test_cases(void);
#else
void kprobe_arm_test_cases(void);
#endif

void __kprobes_test_case_start(void);
void __kprobes_test_case_end_16(void);
void __kprobes_test_case_end_32(void);

Messung V0.5 in Prozent
C=97 H=82 G=89

¤ Dauer der Verarbeitung: 0.11 Sekunden  (vorverarbeitet am  2026-10-12) ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.