README revision 1.2
11.2Spgoyette $NetBSD: README,v 1.2 2015/05/13 22:41:48 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.1Spgoyette lua(9lua), modctl(2), modload(8), module(7), module(9), modstat(8), 471.1Spgoyette modunload(8) 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