| LSRC := ../linux |
| BROWSER := firefox |
| |
| CFLAGS += -I ${LSRC}/arch/x86/kernel/cpu/mcheck/ -g -Wall |
| |
| KFLAGS := -I ./kinclude |
| |
| EXE := tinjpage tsimpleinj tkillpoison tprctl tsoft tsoftinj thugetlb erst-inject |
| EXE += ttranshuge |
| EXEKERNEL := tring ttable |
| |
| OBJ := $(addsuffix .o,${EXE}) |
| OBJKERNEL := $(addsuffix .o,${EXEKERNEL}) |
| |
| .PHONY: clean distclean see test hard soft standalone |
| |
| all: standalone |
| |
| standalone: ${EXE} |
| |
| kernel: ${EXEKERNEL} |
| |
| tcases: tcases.c ${LSRC}/arch/x86/kernel/cpu/mcheck/mce-severity.c ${LSRC}/arch/x86/kernel/cpu/mcheck/mce-internal.h |
| ${CC} ${CFLAGS} ${KFLAGS} -o tcases tcases.c |
| |
| ttable: ttable.c ${LSRC}/arch/x86/kernel/cpu/mcheck/mce-severity.c ${LSRC}/arch/x86/kernel/cpu/mcheck/mce-internal.h |
| ${CC} ${CFLAGS} ${KFLAGS} -o ttable ttable.c |
| |
| tprctl: tprctl.o |
| |
| tring: tring.o |
| |
| tring : LDFLAGS += -lpthread |
| |
| x.html: ttable |
| ./ttable ${TFLAGS} > x.html |
| |
| include erst-inj/erst-inj.mk |
| |
| .PHONY: see |
| |
| see: x.html |
| ${BROWSER} x.html |
| |
| tinjpage: LDFLAGS += -lpthread |
| |
| .PHONY: clean distclean |
| |
| clean: |
| rm -f ${EXE} ${OBJ} |
| rm -f ${EXEKERNEL} ${OBJKERNEL} |
| rm -f x.html unpoison-failed offlined |
| rm -f ~test* ~poison* |
| |
| distclean: clean |
| |
| test: soft hard |
| |
| hard: standalone |
| ./tinjpage |
| ./tsimpleinj |
| if ! ./tkillpoison ; then echo "killed as expected" ; exit 0 ; else echo "didn't get killed" ; exit 1 ; fi |
| ./tprctl |
| |
| soft: standalone |
| ./tsoft |
| ./tsoftinj |
| echo "Running soft offliner for 60 seconds" |
| ./random_offline -t 60 |
| |
| test-kernel: tcases |
| ./tcases |
| |
| test-erst: erst-inject |
| ./erst-inject.sh |