README revision 1.8 1 1.8 kamil $NetBSD: README,v 1.8 2018/05/29 16:53:56 kamil Exp $
2 1.1 pgoyette
3 1.1 pgoyette Kernel Developer's Manual
4 1.1 pgoyette
5 1.1 pgoyette DESCRIPTION
6 1.1 pgoyette The kernel example dynamic modules.
7 1.1 pgoyette
8 1.6 kamil This directory contains the following example modules:
9 1.6 kamil * executor - basic implementation of callout and RUN_ONCE
10 1.1 pgoyette * hello - the simplest `hello world' module
11 1.6 kamil * luahello - the simplest `hello world' Lua module
12 1.6 kamil * luareadhappy - demonstrates calling Lua code from C
13 1.8 kamil * panic_string - shows how panic is being called through a device
14 1.8 kamil * ping - basic ioctl(9)
15 1.1 pgoyette * properties - handle incoming properties during the module load
16 1.1 pgoyette * readhappy - basic implementation of read(9) with happy numbers
17 1.7 kamil * readhappy_mpsafe- demonstrates how to make a module MPSAFE
18 1.5 kamil * sysctl - demonstrates adding a sysctl handle dynamically
19 1.1 pgoyette
20 1.1 pgoyette To build the examples you need a local copy of NetBSD sources. You also
21 1.1 pgoyette need the comp set with toolchain. To build the module just enter a
22 1.1 pgoyette directory with example modules and use make(1):
23 1.1 pgoyette
24 1.1 pgoyette # make
25 1.1 pgoyette
26 1.1 pgoyette To load, unload, and stat the module use modload(8), modunload(8) and
27 1.1 pgoyette modstat(8).
28 1.1 pgoyette
29 1.1 pgoyette The S parameter in the Makefile files points to src/sys and it can be
30 1.1 pgoyette overloaded in this way:
31 1.1 pgoyette
32 1.1 pgoyette # make S=/data/netbsd/src/sys
33 1.1 pgoyette
34 1.1 pgoyette The code of a module does not need to be in src/sys unless you use
35 1.1 pgoyette the autoconf(9) framework.
36 1.1 pgoyette
37 1.1 pgoyette A cross-built of a module for a target platform is possible with the
38 1.1 pgoyette build.sh framework. You need to generate the toolchain and set
39 1.1 pgoyette appropriately PATH to point bin/ in the TOOLDIR path. An example command
40 1.1 pgoyette to cross-build a module with the amd64 toolchain is as follows:
41 1.1 pgoyette
42 1.1 pgoyette # nbmake-amd64 S=/data/netbsd/src/sys
43 1.1 pgoyette
44 1.1 pgoyette
45 1.1 pgoyette The example modules should not be used on a production machine.
46 1.1 pgoyette
47 1.1 pgoyette All modules that create a cdevsw should be verified that the major number
48 1.1 pgoyette should not conflict with a real device.
49 1.1 pgoyette
50 1.1 pgoyette SEE ALSO
51 1.3 pgoyette modctl(2), module(7), modload(8), modstat(8), modunload(8), module(9),
52 1.3 pgoyette intro(9lua)
53 1.1 pgoyette
54 1.1 pgoyette HISTORY
55 1.1 pgoyette An example of handling incoming properties first appeared in NetBSD 5.0
56 1.1 pgoyette and was written by Julio Merino with further modifications by Martin
57 1.1 pgoyette Husemann, Adam Hamsik, John Nemeth and Mindaugas Rasiukevicius.
58 1.1 pgoyette
59 1.1 pgoyette This document and additional modules (hello, readhappy, properties,
60 1.4 sevan ping, luahello and luareadhappy) first appeared in NetBSD 8.0; they were
61 1.4 sevan written by Kamil Rytarowski.
62 1.1 pgoyette
63 1.7 kamil The readhappy_mpsafe, executor and sysctls modules first appeared in NetBSD
64 1.7 kamil 9.0 and were authored by Siddharth Muralee.
65 1.5 kamil
66 1.8 kamil The panic_string module first appeared in NetBSD 9.0 and was authored by
67 1.8 kamil Harry Pantazis.
68 1.8 kamil
69 1.1 pgoyette AUTHORS
70 1.1 pgoyette This document was written by Kamil Rytarowski.
71