README revision 1.15 1 1.15 christos $NetBSD: README,v 1.15 2020/04/30 00:48:10 christos 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.14 kamil * current_time - prints current date and time in GMT/UTC
10 1.6 kamil * executor - basic implementation of callout and RUN_ONCE
11 1.13 kamil * fopsmapper - basic implementation of mmap with fileops fo_mmap
12 1.1 pgoyette * hello - the simplest `hello world' module
13 1.6 kamil * luahello - the simplest `hello world' Lua module
14 1.6 kamil * luareadhappy - demonstrates calling Lua code from C
15 1.9 kamil * mapper - basic implementation of mmap
16 1.8 kamil * panic_string - shows how panic is being called through a device
17 1.8 kamil * ping - basic ioctl(9)
18 1.11 kamil * ping_block - basic ioctl(9) with a block device
19 1.1 pgoyette * properties - handle incoming properties during the module load
20 1.15 christos * pollpal - implementation of basic poll(9) using palindrome
21 1.1 pgoyette * readhappy - basic implementation of read(9) with happy numbers
22 1.7 kamil * readhappy_mpsafe- demonstrates how to make a module MPSAFE
23 1.5 kamil * sysctl - demonstrates adding a sysctl handle dynamically
24 1.1 pgoyette
25 1.1 pgoyette To build the examples you need a local copy of NetBSD sources. You also
26 1.1 pgoyette need the comp set with toolchain. To build the module just enter a
27 1.1 pgoyette directory with example modules and use make(1):
28 1.1 pgoyette
29 1.1 pgoyette # make
30 1.1 pgoyette
31 1.1 pgoyette To load, unload, and stat the module use modload(8), modunload(8) and
32 1.1 pgoyette modstat(8).
33 1.1 pgoyette
34 1.1 pgoyette The S parameter in the Makefile files points to src/sys and it can be
35 1.1 pgoyette overloaded in this way:
36 1.1 pgoyette
37 1.1 pgoyette # make S=/data/netbsd/src/sys
38 1.1 pgoyette
39 1.12 pgoyette The code of a module does not need to be in src/sys unless it uses
40 1.1 pgoyette the autoconf(9) framework.
41 1.1 pgoyette
42 1.12 pgoyette A cross-build of a module for a target platform is possible with the
43 1.1 pgoyette build.sh framework. You need to generate the toolchain and set
44 1.1 pgoyette appropriately PATH to point bin/ in the TOOLDIR path. An example command
45 1.1 pgoyette to cross-build a module with the amd64 toolchain is as follows:
46 1.1 pgoyette
47 1.1 pgoyette # nbmake-amd64 S=/data/netbsd/src/sys
48 1.1 pgoyette
49 1.1 pgoyette
50 1.1 pgoyette The example modules should not be used on a production machine.
51 1.1 pgoyette
52 1.12 pgoyette All modules that create a cdevsw (or bdevsw) should be verified that
53 1.12 pgoyette the major number(s) should not conflict with a real device.
54 1.1 pgoyette
55 1.1 pgoyette SEE ALSO
56 1.3 pgoyette modctl(2), module(7), modload(8), modstat(8), modunload(8), module(9),
57 1.3 pgoyette intro(9lua)
58 1.1 pgoyette
59 1.1 pgoyette HISTORY
60 1.1 pgoyette An example of handling incoming properties first appeared in NetBSD 5.0
61 1.1 pgoyette and was written by Julio Merino with further modifications by Martin
62 1.1 pgoyette Husemann, Adam Hamsik, John Nemeth and Mindaugas Rasiukevicius.
63 1.1 pgoyette
64 1.1 pgoyette This document and additional modules (hello, readhappy, properties,
65 1.4 sevan ping, luahello and luareadhappy) first appeared in NetBSD 8.0; they were
66 1.4 sevan written by Kamil Rytarowski.
67 1.1 pgoyette
68 1.7 kamil The readhappy_mpsafe, executor and sysctls modules first appeared in NetBSD
69 1.7 kamil 9.0 and were authored by Siddharth Muralee.
70 1.5 kamil
71 1.8 kamil The panic_string module first appeared in NetBSD 9.0 and was authored by
72 1.8 kamil Harry Pantazis.
73 1.8 kamil
74 1.9 kamil The mapper module first appeared in NetBSD 9.0 and was authored by
75 1.9 kamil Akul Pillai.
76 1.10 kamil
77 1.10 kamil The ping_block module first appeared in NetBSD 10.0 and was authored by
78 1.10 kamil Nisarg Joshi.
79 1.9 kamil
80 1.13 kamil The fopsmapper module first appeared in NetBSD 10.0 and was authored by
81 1.13 kamil Aditya Vardhan Padala.
82 1.13 kamil
83 1.14 kamil The current_time module first appeared in NetBSD 10.0 and was authored by
84 1.14 kamil Apurva Nandan.
85 1.14 kamil
86 1.15 christos The pollpall module first appeared in NetBSD 10.0 and was authored by
87 1.15 christos Ayushi Sharma.
88 1.15 christos
89 1.1 pgoyette AUTHORS
90 1.1 pgoyette This document was written by Kamil Rytarowski.
91