Rework instruction filtering

Add a new instruction filter that allows filtering a list of
ranges read from a file. This allows us to specify multiple
ranges, e.g., to leave out instructions or to focus on multiple
functions

Change-Id: Iba13cda00d0a73edaef270b3cd9100afe3e4668b
This commit is contained in:
Björn Döbel
2013-08-27 11:26:27 +02:00
parent 1fefef06b0
commit 10420938d2
4 changed files with 83 additions and 19 deletions

View File

@ -5,20 +5,16 @@
#define MAX_INSTR_BYTES 15
// the bounds of the program (space, instructions and time)
#define L4SYS_ADDRESS_SPACE 0x1fd6e000
#define L4SYS_FUNC_ENTRY 0x01000200
#define L4SYS_FUNC_EXIT 0x01000245
#define L4SYS_ADDRESS_SPACE 0x1fd4c000
#define L4SYS_FUNC_ENTRY 0x010002a0
#define L4SYS_FUNC_EXIT 0x01000380
// Instruction filtering: Allows to specify a range within
// which to perform injection experiments. If in doubt, set
// to the whole user-addressable area (0, 0xC0000000)
// select instruction filtering
#define L4SYS_FILTER_INSTRUCTIONS 1
#define L4SYS_ADDRESS_LBOUND 0
#define L4SYS_ADDRESS_UBOUND 0xC0000000
// kernel: 2377547, userland: 79405472
#define L4SYS_NUMINSTR 3281
#define L4SYS_TOTINSTR 228218
#define L4SYS_NUMINSTR 15099
#define L4SYS_TOTINSTR 60214
#define L4SYS_BOCHS_IPS 5000000
// several file names used
@ -26,10 +22,11 @@
#define L4SYS_INSTRUCTION_LIST "ip.list"
#define L4SYS_ALU_INSTRUCTIONS "alu.list"
#define L4SYS_CORRECT_OUTPUT "golden.out"
#define L4SYS_FILTER "filter.list"
// flags
// 0 - preparation complete
// >0 - next step to execute
#define PREPARATION_STEP 0
#define PREPARATION_STEP 2
#endif // __L4SYS_EXPERIMENT_INFO_HPP__