Date: Mon, 26 May 2014 14:11:08 GMT From: op@FreeBSD.org To: svn-soc-all@FreeBSD.org Subject: socsvn commit: r268638 - in soc2014/op/tests/smap-tester: . kmod smap-test Message-ID: <201405261411.s4QEB8D6083569@socsvn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: op Date: Mon May 26 14:11:08 2014 New Revision: 268638 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=268638 Log: added basic kernel module framework for SMAP testing Signed-off-by: Oliver Pinter <oliver.pntr@gmail.com> Added: soc2014/op/tests/smap-tester/ soc2014/op/tests/smap-tester/Makefile soc2014/op/tests/smap-tester/kmod/ soc2014/op/tests/smap-tester/kmod/.clang_complete soc2014/op/tests/smap-tester/kmod/Makefile soc2014/op/tests/smap-tester/kmod/smap-tester-vuln-kld.c soc2014/op/tests/smap-tester/smap-test/ soc2014/op/tests/smap-tester/smap-test/Makefile soc2014/op/tests/smap-tester/smap-test/smap-test.c Added: soc2014/op/tests/smap-tester/Makefile ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ soc2014/op/tests/smap-tester/Makefile Mon May 26 14:11:08 2014 (r268638) @@ -0,0 +1,3 @@ +SUBDIR= kmod smap-test + +.include <bsd.subdir.mk> Added: soc2014/op/tests/smap-tester/kmod/.clang_complete ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ soc2014/op/tests/smap-tester/kmod/.clang_complete Mon May 26 14:11:08 2014 (r268638) @@ -0,0 +1,6 @@ +-D_KERNEL +-DKERNEL +-I/usr/src +-I/usr/src/sys +-I/usr/src/sys/amd64 +-I/usr/src/sys/x86 Added: soc2014/op/tests/smap-tester/kmod/Makefile ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ soc2014/op/tests/smap-tester/kmod/Makefile Mon May 26 14:11:08 2014 (r268638) @@ -0,0 +1,4 @@ +KMOD= smap-tester-vuln-kld +SRCS= smap-tester-vuln-kld.c + +.include <bsd.kmod.mk> Added: soc2014/op/tests/smap-tester/kmod/smap-tester-vuln-kld.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ soc2014/op/tests/smap-tester/kmod/smap-tester-vuln-kld.c Mon May 26 14:11:08 2014 (r268638) @@ -0,0 +1,89 @@ +#include <sys/types.h> +#include <sys/module.h> +#include <sys/systm.h> +#include <sys/param.h> +#include <sys/conf.h> +#include <sys/kernel.h> +#include <sys/sysctl.h> +#include <sys/uio.h> +#include <sys/malloc.h> +#include <vm/vm.h> + +const char *agreement = "shoot my foot!!!11oneone!!"; +static bool allow_tests = false; +static char *buf = NULL; +static caddr_t us_addr=NULL; + +MALLOC_DECLARE(M_SMAP_TEST); +MALLOC_DEFINE(M_SMAP_TEST, "smap test", "Intel SMAP test malloc area"); + +SYSCTL_DECL(_debug); +SYSCTL_NODE(_debug, OID_AUTO, smap, CTLFLAG_RD, 0, + "Intel SMAP test cases."); + +static int +sysctl_debug_smap_agreement(SYSCTL_HANDLER_ARGS) +{ + int error=0; + + error = sysctl_handle_string(oidp, buf, 4096, req); + if (error != 0 || req->newptr == NULL) + return (error); + + if (strcmp(buf, agreement) == 0) { + printf("SMAP test enabled!\n"); + allow_tests = true; + } else { + printf("SMAP test disabled!\n"); + allow_tests = false; + } + + return (error); +} + +SYSCTL_PROC(_debug_smap, OID_AUTO, agreement_string, CTLTYPE_STRING | CTLFLAG_RW, + 0, 0, sysctl_debug_smap_agreement, + "A", "shoot my foot!!!11oneone!!"); + +static int +sysctl_debug_smap_us_addr(SYSCTL_HANDLER_ARGS) +{ + int error=0; + + error = sysctl_handle_long(oidp, &us_addr, 0, req); + if (error != 0 || req->newptr == NULL) + return (error); + + printf("us_addr set to %p\n", us_addr); + + return (error); +} + +SYSCTL_PROC(_debug_smap, OID_AUTO, us_addr, CTLTYPE_LONG | CTLFLAG_RW, + 0, 0, sysctl_debug_smap_us_addr, + "L", "user-space address"); + + + +static int +smap_tester_vuln_kld_loader(struct module *m __unused, int what, void *arg __unused) +{ + int error = 0; + + switch (what) { + case MOD_LOAD: + buf = malloc(4096, M_SMAP_TEST, M_WAITOK | M_ZERO); + printf("SMAP tester loaded.\n"); + break; + case MOD_UNLOAD: + free(buf, M_SMAP_TEST); + printf("SMAP tester unloaded.\n"); + break; + default: + error = EOPNOTSUPP; + break; + } + return (error); +} + +DEV_MODULE(smap_tester_vuln_kld, smap_tester_vuln_kld_loader, NULL); Added: soc2014/op/tests/smap-tester/smap-test/Makefile ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ soc2014/op/tests/smap-tester/smap-test/Makefile Mon May 26 14:11:08 2014 (r268638) @@ -0,0 +1,5 @@ +PROG= smap-test + +NO_MAN= + +.include <bsd.prog.mk> Added: soc2014/op/tests/smap-tester/smap-test/smap-test.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ soc2014/op/tests/smap-tester/smap-test/smap-test.c Mon May 26 14:11:08 2014 (r268638) @@ -0,0 +1,10 @@ +#include <stdio.h> +#include <stdlib.h> + +int +main(int argc, char **argv) +{ + printf("NI!\n"); + + return (0); +}
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201405261411.s4QEB8D6083569>