diff options
Diffstat (limited to 'share/examples/lkm')
-rw-r--r-- | share/examples/lkm/vfs/Makefile | 48 | ||||
-rw-r--r-- | share/examples/lkm/vfs/README | 107 | ||||
-rw-r--r-- | share/examples/lkm/vfs/module/Makefile | 71 | ||||
-rw-r--r-- | share/examples/lkm/vfs/module/kernfsmod.c | 127 |
4 files changed, 0 insertions, 353 deletions
diff --git a/share/examples/lkm/vfs/Makefile b/share/examples/lkm/vfs/Makefile deleted file mode 100644 index 9e66928..0000000 --- a/share/examples/lkm/vfs/Makefile +++ /dev/null @@ -1,48 +0,0 @@ -# 25 May 93 -# -# Makefile for sample loadable file system -# -# 25 May 93 Terry Lambert Original -# -# Copyright (c) 1993 Terrence R. Lambert. -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions -# are met: -# 1. Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# 2. Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the distribution. -# 3. All advertising materials mentioning features or use of this software -# must display the following acknowledgement: -# This product includes software developed by Terrence R. Lambert. -# 4. The name Terrence R. Lambert may not be used to endorse or promote -# products derived from this software without specific prior written -# permission. -# -# THIS SOFTWARE IS PROVIDED BY TERRENCE R. LAMBERT ``AS IS'' AND ANY -# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -# ARE DISCLAIMED. IN NO EVENT SHALL THE TERRENCE R. LAMBERT BE LIABLE -# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -# SUCH DAMAGE. -# - -SUBDIR= module - -load: _SUBDIRUSE - -unload: _SUBDIRUSE - -.include <bsd.subdir.mk> - -# -# EOF -- This file has not been truncated. -# diff --git a/share/examples/lkm/vfs/README b/share/examples/lkm/vfs/README deleted file mode 100644 index f5c1ac7..0000000 --- a/share/examples/lkm/vfs/README +++ /dev/null @@ -1,107 +0,0 @@ -# Copyright (c) 1993 Terrence R. Lambert. -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions -# are met: -# 1. Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# 2. Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the distribution. -# 3. All advertising materials mentioning features or use of this software -# must display the following acknowledgement: -# This product includes software developed by Terrence R. Lambert. -# 4. The name Terrence R. Lambert may not be used to endorse or promote -# products derived from this software without specific prior written -# permission. -# -# THIS SOFTWARE IS PROVIDED BY TERRENCE R. LAMBERT ``AS IS'' AND ANY -# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -# ARE DISCLAIMED. IN NO EVENT SHALL THE TERRENCE R. LAMBERT BE LIABLE -# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -# SUCH DAMAGE. - -1.0 Overview - - This is the README file for the sample loaded file system. - - -2.0 Preparation - - To use this module, you must have a kernel the does *NOT* - have an existing "kernfs" file system in it. To determine - if your system has the "kernfs" file system in it, check - the build file for your kernel (usually this file is named - "/sys/i386/conf/GENERICISA") for the following: - - options KERNFS - - By default, NetBSD has this file system compiled as part - of the kernel; if you wish to use this example with NetBSD - you will have to remove this "options" line and rebuild - your kernel. - - Note: The file "/usr/include/sys/mount.h" must have the - "kernfs" file system type in it for this example; if you - do not have the following line in this file, you will not - be able to use this example: - - #define MOUNT_KERNFS 7 - - This line is created by applying the "kernfs" patches to - your system. NetBSD as distributed already has these - patches applied; if you are running vanilla 386BSD, you - will have to locate and add these patches to use this - example. - - -3.0 Directions - - To test the module, do the following: - - cd module - make load - - A load message (the copyright) will be printed on the console. - - You must then add the following line to the "/etc/fstab" file: - - kernfs /kern kernfs rw 1 1 - - At the root prompt, type the following: - - mkdir /kern - - Ignore the following error if it occurs: - - mkdir: /kern: File exists - - Again at the root prompt, type the following command: - - mount /kern - cd /kern - cat version - - This will verify that the module is working correctly. - - -4.0 Recovering resources - - The file system consumes 8 pages of memory when loaded; it - can be freed up by unloading it. To unload it, type the - following from the directory this file is in: - - cd module - make unload - - The file system will be unloaded by name. - - -5.0 END OF DOCUMENT diff --git a/share/examples/lkm/vfs/module/Makefile b/share/examples/lkm/vfs/module/Makefile deleted file mode 100644 index 63055f9..0000000 --- a/share/examples/lkm/vfs/module/Makefile +++ /dev/null @@ -1,71 +0,0 @@ -# 05 Jun 93 -# -# Makefile for newsyscall -# -# 05 Jun 93 Terry Lambert Original -# -# Copyright (c) 1993 Terrence R. Lambert. -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions -# are met: -# 1. Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# 2. Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the distribution. -# 3. All advertising materials mentioning features or use of this software -# must display the following acknowledgement: -# This product includes software developed by Terrence R. Lambert. -# 4. The name Terrence R. Lambert may not be used to endorse or promote -# products derived from this software without specific prior written -# permission. -# -# THIS SOFTWARE IS PROVIDED BY TERRENCE R. LAMBERT ``AS IS'' AND ANY -# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -# ARE DISCLAIMED. IN NO EVENT SHALL THE TERRENCE R. LAMBERT BE LIABLE -# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -# SUCH DAMAGE. -# - -SRCS=kernfsmod.c -OBJS=$(SRCS:.c=.o) - -KSRCS=/sys/miscfs/kernfs/kernfs_vfsops.c /sys/miscfs/kernfs/kernfs_vnops.c -KOBJS=kernfs_vfsops.o kernfs_vnops.o - -MODOBJ=combined.o - -KMOD=kernfsmod -CFLAGS= -DKERNEL -I/sys/sys -I/sys - -all: $(MODOBJ) - -clean: - rm -f $(OBJS) $(KOBJS) $(MODOBJ) $(KMOD) - -load: - /sbin/modload -o $(KMOD) -e$(KMOD) $(MODOBJ) - -unload: - /sbin/modunload -n $(KMOD) - -kernfs_vfsops.o: /sys/miscfs/kernfs/kernfs_vfsops.c - $(CC) $(CFLAGS) -c -O $@ $< - -kernfs_vnops.o: /sys/miscfs/kernfs/kernfs_vnops.c - $(CC) $(CFLAGS) -c -O $@ $< - -$(MODOBJ): $(OBJS) $(KOBJS) - $(LD) -r -o $(MODOBJ) $(OBJS) $(KOBJS) - -# -# EOF -- This file has not been truncated -# diff --git a/share/examples/lkm/vfs/module/kernfsmod.c b/share/examples/lkm/vfs/module/kernfsmod.c deleted file mode 100644 index 2a083f6..0000000 --- a/share/examples/lkm/vfs/module/kernfsmod.c +++ /dev/null @@ -1,127 +0,0 @@ -/* 05 Jun 93*/ -/* - * kernfsmod.c - * - * 05 Jun 93 Terry Lambert Original - * - * Copyright (c) 1993 Terrence R. Lambert. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by Terrence R. Lambert. - * 4. The name Terrence R. Lambert may not be used to endorse or promote - * products derived from this software without specific prior written - * permission. - * - * THIS SOFTWARE IS PROVIDED BY TERRENCE R. LAMBERT ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE TERRENCE R. LAMBERT BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - */ -#define printf I_HATE_ANSI -#include <stdio.h> -#undef printf -#include <stdlib.h> -#include <sys/param.h> -#include <sys/ioctl.h> -#include <sys/systm.h> -#include <sys/conf.h> -#include <sys/mount.h> -#include <sys/exec.h> -#include <sys/lkm.h> -#include <a.out.h> -#include <sys/file.h> -#include <sys/errno.h> - -/* - * This is the vfsops table from /sys/miscfs/kernfs/kernfs_vfsops.c - */ -extern struct vfsops kernfs_vfsops; - -/* - * Currently, the mount system call is broken in the way it operates - * and the vfssw[] table does not have a character string identifier - * for the file system type; therefore, to remount a file system after - * it has been mounted in the first place, the offset into the table - * must be the same; this will be corrected in future patches, but - * not right now. At the same time the fstab format will need to - * change to allow definition without mount of file systems. - * - * The flags field is a parameter to the init; this could be used to - * change the file system operation: for instance, in ISOFS, this - * could be used to enable/disable Rockridge extensions. - */ -MOD_VFS("kernfs",MOUNT_KERNFS,0,&kernfs_vfsops) - -/* - * This function is called each time the module is loaded. Technically, - * we could have made this "nosys" in the "DISPATCH" in "kernfsmod()", - * but it's a convenient place to kick a copyright out to the console. - */ -static int -kernfsmod_load( lkmtp, cmd) -struct lkm_table *lkmtp; -int cmd; -{ - if( cmd == LKM_E_LOAD) { /* print copyright on console*/ - printf( "\nSample Loaded file system\n"); - printf( "Copyright (c) 1990, 1992 Jan-Simon Pendry\n"); - printf( "All rights reserved.\n"); - printf( "\nLoader stub and module loader is\n"); - printf( "Copyright (c) 1993\n"); - printf( "Terrence R. Lambert\n"); - printf( "All rights reserved\n"); - } - - return( 0); -} - - -/* - * External entry point; should generally match name of .o file. The - * arguments are always the same for all loaded modules. The "load", - * "unload", and "stat" functions in "DISPATCH" will be called under - * their respective circumstances unless their value is "nosys". If - * called, they are called with the same arguments (cmd is included to - * allow the use of a single function, ver is included for version - * matching between modules and the kernel loader for the modules). - * - * Since we expect to link in the kernel and add external symbols to - * the kernel symbol name space in a future version, generally all - * functions used in the implementation of a particular module should - * be static unless they are expected to be seen in other modules or - * to resolve unresolved symbols alread existing in the kernel (the - * second case is not likely to ever occur). - * - * The entry point should return 0 unless it is refusing load (in which - * case it should return an errno from errno.h). - */ -kernfsmod( lkmtp, cmd, ver) -struct lkm_table *lkmtp; -int cmd; -int ver; -{ - DISPATCH(lkmtp,cmd,ver,kernfsmod_load,nosys,nosys) -} - - -/* - * EOF -- This file has not been truncated. - */ |