Given that I've gotten some of the details wrong in the past (and I've seen others do likewise), I thought it might be helpful to collate the best practices for adding a new system call to the kernel. Apologies for the wide circulation -- I've tried to include folk who've recently added or proposed a system call, as they're most likely to have opinions on: - whether this a useful addition to Documentation/ - whether the details of the advice are correct and complete. Thanks, David (With thanks to Andrew Morton for looking over an initial draft, and to Michael Kerrisk for suggesting several clarifications and additions.) Changes since v3: - remove suggestion of adding new capability bit [Josh Triplett] - clarifications & typos [Pavel Machek] Changes since v2: - add struct-with-size as option for extensibility [Ingo Molnar] - mention LTP and xfstests [Cyril Hrubis] - always use file descriptors as handles for kernel objects [Josh Triplett] - consider poll(2) semantics for new file descriptors [Josh Triplett] - use a CONFIG option to control new functionality [Josh Triplett] - check ptrace_may_access() for process manipulation [Josh Triplett] - various minor markups [Josh Triplett] Changes since v1: - added paragraph on build requirements to Testing section [Shuah Khan, Peter Zijlstra] - various text clarifications [Kees Cook] - added Reviewed-by markers David Drysdale (1): Documentation: describe how to add a system call Documentation/adding-syscalls.txt | 527 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 527 insertions(+) create mode 100644 Documentation/adding-syscalls.txt -- 2.2.0.rc0.207.ga3a616c -- To unsubscribe from this list: send the line "unsubscribe linux-api" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html