User Tools

Site Tools


developersguide:newkernelcall

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
developersguide:newkernelcall [2015/09/22 20:18]
shawnsustrich Changed line text indicating where user should add sys_sample.c
developersguide:newkernelcall [2025/02/14 19:31] (current)
johnnoble
Line 5: Line 5:
 This tutorial helps you to add a new kernel call in MINIX. Let's say your new kernel call is called //sample//. This tutorial helps you to add a new kernel call in MINIX. Let's say your new kernel call is called //sample//.
  
-  ​Add the prototype of your kernel function do_sample() in the file: ///​usr/​src/​minix/​kernel/​system.h// ​+  ​Add the prototype of your kernel function do_sample() in the file: ///​usr/​src/​minix/​kernel/​system.h// ​
 <​code>​ <​code>​
 ... ...
Line 12: Line 12:
 #​endif ​ /* SYSTEM_H */ #​endif ​ /* SYSTEM_H */
 </​code>​ </​code>​
-  ​Write the implementation of do_sample() in its own source file: ///​usr/​src/​minix/​kernel/​system/​do_sample.c// ​+  ​Write the implementation of do_sample() in its own source file: ///​usr/​src/​minix/​kernel/​system/​do_sample.c// ​
 <​code>​ <​code>​
 #include "​kernel/​system.h"​ #include "​kernel/​system.h"​
 #include <​minix/​endpoint.h>​ #include <​minix/​endpoint.h>​
  
-/​*===========================================================================*+ /​*===========================================================================*
   *                                do_sample ​                                 *   *                                do_sample ​                                 *
   *===========================================================================*/​   *===========================================================================*/​
Line 25: Line 25:
 } }
 </​code>​ </​code>​
-  ​Add do_sample.c to the Makefile for compilation:​ ///​usr/​src/​minix/​kernel/​system/​Makefile.inc// ​+  ​Add do_sample.c to the Makefile for compilation:​ ///​usr/​src/​minix/​kernel/​system/​Makefile.inc// ​
 <​code>​ <​code>​
 # Makefile for system library implementation # Makefile for system library implementation
Line 39: Line 39:
         do_sample.c         do_sample.c
 </​code>​ </​code>​
-  ​Map SYS_SAMPLE to do_sample() in the system call table: ///​usr/​src/​minix/​kernel/​system.c// ​+  ​Map SYS_SAMPLE to do_sample() in the system call table: ///​usr/​src/​minix/​kernel/​system.c// ​
 <​code>​ <​code>​
 ... ...
Line 46: Line 46:
 ... ...
 </​code>​ </​code>​
-  ​Add a prototype for the sys_sample function in the file: ///​usr/​src/​minix/​include/​minix/​syslib.h// ​+  ​Add a prototype for the sys_sample function in the file: ///​usr/​src/​minix/​include/​minix/​syslib.h// ​
 <​code>​ <​code>​
 ... ...
Line 52: Line 52:
 ... ...
 </​code>​ </​code>​
-  ​Add the call number for sys_sample to the call vector and increment its dimension: ///​usr/​src/​minix/​include/​minix/​com.h// ​+  ​*  ​Add the call number for sys_sample to the call vector and increment its dimension: ///​usr/​src/​minix/​include/​minix/​com.h// ​
 <​code>​ <​code>​
 ... ...
Line 63: Line 63:
 ... ...
 </​code>​ </​code>​
-  ​Add the SAMPLE service to the system tab: ///​usr/​src/​minix/​commands/​service/​parse.c//;​ build the updated system tab and install it with //make; make install// from ///​usr/​src/​minix/​commands/​service/// ​+  ​Add the SAMPLE service to the system tab: ///​usr/​src/​minix/​commands/​service/​parse.c//;​ build the updated system tab and install it with //make; make install// from ///​usr/​src/​minix/​commands/​service/// ​
 <​code>​ <​code>​
 ... ...
Line 79: Line 79:
 ... ...
 </​code>​ </​code>​
-  ​Write your implementation of the function sys_sample in a new file: ///​usr/​src/​minix/​lib/​libsys/​sys_sample.c// ​+  ​Write your implementation of the function sys_sample in a new file: ///​usr/​src/​minix/​lib/​libsys/​sys_sample.c// ​
 <​code>​ <​code>​
 #include "​syslib.h"​ #include "​syslib.h"​
Line 90: Line 90:
 } }
 </​code>​ </​code>​
-  ​Add sys_sample.c to the ///​usr/​src/​minix/​lib/​libsys/​Makefile//,​ and install it in ///​usr/​lib/​${MACHINE_ARCH}//​ with //make install//​. ​+  ​Add sys_sample.c to the ///​usr/​src/​minix/​lib/​libsys/​Makefile//,​ and install it in ///​usr/​lib/​${MACHINE_ARCH}//​ with //make install//​. ​
 <​code>​ <​code>​
 # Makefile for libsys # Makefile for libsys
developersguide/newkernelcall.1442945921.txt.gz · Last modified: 2015/09/22 20:18 by shawnsustrich