README revision 1.3
11.3Spgoyette	$NetBSD: README,v 1.3 2015/05/15 06:21:12 pgoyette Exp $
21.1Spgoyette
31.1Spgoyette                           Kernel Developer's Manual
41.1Spgoyette
51.1SpgoyetteDESCRIPTION
61.1Spgoyette     The kernel example dynamic modules.
71.1Spgoyette
81.1Spgoyette     This directory contains the following example modules:
91.1Spgoyette     * hello           - the simplest `hello world' module
101.1Spgoyette     * properties      - handle incoming properties during the module load
111.1Spgoyette     * readhappy       - basic implementation of read(9) with happy numbers
121.1Spgoyette     * ping            - basic ioctl(9)
131.2Spgoyette     * luahello        - the simplest `hello world' Lua module
141.1Spgoyette
151.1Spgoyette     To build the examples you need a local copy of NetBSD sources. You also
161.1Spgoyette     need the comp set with toolchain. To build the module just enter a
171.1Spgoyette     directory with example modules and use make(1):
181.1Spgoyette
191.1Spgoyette         # make
201.1Spgoyette
211.1Spgoyette     To load, unload, and stat the module use modload(8), modunload(8) and
221.1Spgoyette     modstat(8).
231.1Spgoyette
241.1Spgoyette     The S parameter in the Makefile files points to src/sys and it can be
251.1Spgoyette     overloaded in this way:
261.1Spgoyette
271.1Spgoyette         # make S=/data/netbsd/src/sys
281.1Spgoyette
291.1Spgoyette     The code of a module does not need to be in src/sys unless you use
301.1Spgoyette     the autoconf(9) framework.
311.1Spgoyette
321.1Spgoyette     A cross-built of a module for a target platform is possible with the
331.1Spgoyette     build.sh framework. You need to generate the toolchain and set
341.1Spgoyette     appropriately PATH to point bin/ in the TOOLDIR path. An example command
351.1Spgoyette     to cross-build a module with the amd64 toolchain is as follows:
361.1Spgoyette
371.1Spgoyette        # nbmake-amd64 S=/data/netbsd/src/sys
381.1Spgoyette
391.1Spgoyette
401.1Spgoyette     The example modules should not be used on a production machine.
411.1Spgoyette
421.1Spgoyette     All modules that create a cdevsw should be verified that the major number
431.1Spgoyette     should not conflict with a real device.
441.1Spgoyette
451.1SpgoyetteSEE ALSO
461.3Spgoyette     modctl(2), module(7), modload(8), modstat(8), modunload(8), module(9),
471.3Spgoyette     intro(9lua)
481.1Spgoyette
491.1SpgoyetteHISTORY
501.1Spgoyette     An example of handling incoming properties first appeared in NetBSD 5.0
511.1Spgoyette     and was written by Julio Merino with further modifications by Martin
521.1Spgoyette     Husemann, Adam Hamsik, John Nemeth and Mindaugas Rasiukevicius.
531.1Spgoyette
541.1Spgoyette     This document and additional modules (hello, readhappy, properties,
551.2Spgoyette     ping, and luahello) first appeared in NetBSD 8.0; they were written
561.1Spgoyette     by Kamil Rytarowski.
571.1Spgoyette
581.1SpgoyetteAUTHORS
591.1Spgoyette     This document was written by Kamil Rytarowski.
60