From owner-svn-soc-all@FreeBSD.ORG Mon May 26 14:11:10 2014 Return-Path: Delivered-To: svn-soc-all@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id A87E3B33 for ; Mon, 26 May 2014 14:11:10 +0000 (UTC) Received: from socsvn.freebsd.org (socsvn.freebsd.org [IPv6:2001:1900:2254:206a::50:2]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 8ABDC2760 for ; Mon, 26 May 2014 14:11:10 +0000 (UTC) Received: from socsvn.freebsd.org ([127.0.1.124]) by socsvn.freebsd.org (8.14.8/8.14.8) with ESMTP id s4QEBACJ084021 for ; Mon, 26 May 2014 14:11:10 GMT (envelope-from op@FreeBSD.org) Received: (from www@localhost) by socsvn.freebsd.org (8.14.8/8.14.8/Submit) id s4QEB8D6083569 for svn-soc-all@FreeBSD.org; Mon, 26 May 2014 14:11:08 GMT (envelope-from op@FreeBSD.org) Date: Mon, 26 May 2014 14:11:08 GMT Message-Id: <201405261411.s4QEB8D6083569@socsvn.freebsd.org> X-Authentication-Warning: socsvn.freebsd.org: www set sender to op@FreeBSD.org using -f From: op@FreeBSD.org To: svn-soc-all@FreeBSD.org Subject: socsvn commit: r268638 - in soc2014/op/tests/smap-tester: . kmod smap-test MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 May 2014 14:11:10 -0000 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 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 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 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 +#include +#include +#include +#include +#include +#include +#include +#include +#include + +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 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 +#include + +int +main(int argc, char **argv) +{ + printf("NI!\n"); + + return (0); +}