(function(a,e,f,g,b,c,d){a.GoogleAnalyticsObject=b;a[b]=a[b]||function(){(a[b].q=a[b].q||[]).push(arguments)};a[b].l=1*new Date;c=e.createElement(f);d=e.getElementsByTagName(f)[0];c.async=1;c.src=g;d.parentNode.insertBefore(c,d)})(window,document,"script","https://www.google-analytics.com/analytics.js","ga");ga("create","UA-732153-7","auto",{allowLinker:!0,siteSpeedSampleRate:10});ga("set","transport","beacon");ga("set","anonymizeIp",!0);ga("require","linker"); ga("linker:autoLink","askapache.com askapache.net htaccess.io htaccesselite.com askapache.info htaccess.guru".split(" "),!0);ga("send","pageview"); CLASS="article" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#840084" ALINK="#0000FF" >

Implementing a System Call on Linux 2.6 for i386

Amit Choudhary


Revision History
Revision 1.02006-10-27Revised by: ac
official release

This HOWTO describes information about implementing system calls in the Linux operating system for i386 architecture with 2.6 kernels. General information about the used and modified files is available as well as description of the source and makefiles and test user space C program too.

Table of Contents
1. Introduction
2. System call
3. List of files to be modified/created
4. Kernel files to be modified
5. syscall_table.S
6. unistd.h
7. syscalls.h
8. Makefile
9. New kernel files/directories to be created
10. mycall
11. mycall.c
12. Makefile
13. New user space files, to be created, to test our system call
14. testmycall.h (new user space header file to be created)
15. testmycall.c (new user space source file to be created)
16. _syscallN macro
17. Testing our new system call
18. Questions And Suggestions
19. Copyright
20. License