ABI spec - verification
From: | alexander.levin-AT-verizon.com | |
To: | "dvyukov-AT-google.com" <dvyukov-AT-google.com> | |
Subject: | [RFC 0/3] ABI spec - verification | |
Date: | Wed, 16 Nov 2016 17:37:00 +0000 | |
Message-ID: | <1479317803-17220-1-git-send-email-alexander.levin@verizon.com> | |
Cc: | "tglx-AT-linutronix.de" <tglx-AT-linutronix.de>, "scientist-AT-fb.com" <scientist-AT-fb.com>, "glider-AT-google.com" <glider-AT-google.com>, "andreyknvl-AT-google.com" <andreyknvl-AT-google.com>, "rostedt-AT-goodmis.org" <rostedt-AT-goodmis.org>, "arnd-AT-arndb.de" <arnd-AT-arndb.de>, "mathieu.desnoyers-AT-efficios.com" <mathieu.desnoyers-AT-efficios.com>, "daniel.vetter-AT-ffwll.ch" <daniel.vetter-AT-ffwll.ch>, "linux-kernel-AT-vger.kernel.org" <linux-kernel-AT-vger.kernel.org>, alexander.levin-AT-verizon.com |
As discussed at plumbers, having a standard spec for the kernel's ABI has quite a few uses and enough people wanted it to get the ball rolling. We agreed that it's desirable to have something that can be used from code rather than just a spec on paper both for validation and allowing other users (like fuzzers, userspace libraries, and various userspace tools) to build on that. What we ended up deciding on at plumbers is: - I'll do a few kernel bits do demonstrate how we can validate the spec from the kernel. - Dmitry Vyukov will provide a way to translate syzkaller's syscall documentation into something that can be easily used in the kernel and userspace. - Various projects will attempt to integrate it to make sure that the framework works for them. Once those bits are done we can focus on getting the spec right, and we'll have a good way to validate our work both in userspace and in the kernel. This patchset is a basic draft of said kernel bits. I mostly want to make sure that Dmitry and myself are on the same page as to how integration will look like, but also to open it to criticism and suggestions (bikeshedding). Sasha Levin (3): abi_spec: basic definitions of constraints, args and syscalls abi_spec: hooks into syscall to allow pre and post checking abi_spec: example spec for open(), placeholder for rest of syscalls include/linux/syscalls.h | 7 +- include/uapi/linux/abi_spec.h | 58 ++++++ kernel/Makefile | 2 + kernel/abi_spec.c | 456 ++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 522 insertions(+), 1 deletion(-) create mode 100644 include/uapi/linux/abi_spec.h create mode 100644 kernel/abi_spec.c -- 2.7.4