diff options
| author | cvs2svn <cvs2svn@FreeBSD.org> | 1999-01-21 00:55:32 +0000 | 
|---|---|---|
| committer | cvs2svn <cvs2svn@FreeBSD.org> | 1999-01-21 00:55:32 +0000 | 
| commit | 76b5366091f76c9bc73570149ef5055648fc2c39 (patch) | |
| tree | 590d020e0f2a5bea6e09d66d951a674443b21d67 /share/examples/kld/cdev/module | |
| parent | 4b4d01da6f07f7754ff6a6e4f5223e9f0984d1a6 (diff) | |
Diffstat (limited to 'share/examples/kld/cdev/module')
| -rw-r--r-- | share/examples/kld/cdev/module/Makefile | 91 | ||||
| -rw-r--r-- | share/examples/kld/cdev/module/cdev.c | 124 | ||||
| -rw-r--r-- | share/examples/kld/cdev/module/cdev.h | 98 | ||||
| -rw-r--r-- | share/examples/kld/cdev/module/cdevmod.c | 122 | 
4 files changed, 0 insertions, 435 deletions
| diff --git a/share/examples/kld/cdev/module/Makefile b/share/examples/kld/cdev/module/Makefile deleted file mode 100644 index aa07686853d25..0000000000000 --- a/share/examples/kld/cdev/module/Makefile +++ /dev/null @@ -1,91 +0,0 @@ -# 08 Nov 1998 -# -# Makefile for kld char device driver. -# -# 08 Nov 1998 Rajesh Vaidheeswarran -# -# Copyright (c) 1998 Rajesh Vaidheeswarran -# 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 Rajesh Vaidheeswarran. -# 4. The name Rajesh Vaidheeswarran may not be used to endorse or promote -#    products derived from this software without specific prior written -#    permission. -# -# THIS SOFTWARE IS PROVIDED BY RAJESH VAIDHEESWARRAN ``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 RAJESH VAIDHEESWARRAN 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. -# -# $Id: Makefile,v 1.5 1998/11/08 22:31:00 rv Exp $ -# -# 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. -# - -BINDIR	= /tmp -SRCS	= cdev.c cdevmod.c -KMOD	= cdev_mod -NOMAN	= t -KLDMOD	= t - -KLDLOAD		= /sbin/kldload -KLDUNLOAD	= /sbin/kldunload - -CLEANFILES+= ${KMOD} - -load: /dev/cdev -	${KLDLOAD} -v ./${KMOD} - -unload: -	rm -f /dev/cdev -	${KLDUNLOAD} -v -n ${KMOD} - -/dev/cdev: -	mknod /dev/cdev c 32 0 - -.include <bsd.kmod.mk> diff --git a/share/examples/kld/cdev/module/cdev.c b/share/examples/kld/cdev/module/cdev.c deleted file mode 100644 index 4c9e1397d26bb..0000000000000 --- a/share/examples/kld/cdev/module/cdev.c +++ /dev/null @@ -1,124 +0,0 @@ -/* 08 Nov 1998*/ -/* - * cdev.c - * - * 08 Nov 1998	Rajesh Vaidheeswarran - * - * Copyright (c) 1998 Rajesh Vaidheeswarran - * 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 Rajesh Vaidheeswarran. - * 4. The name Rajesh Vaidheeswarran may not be used to endorse or promote - *    products derived from this software without specific prior written - *    permission. - * - * THIS SOFTWARE IS PROVIDED BY RAJESH VAIDHEESWARRAN ``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 RAJESH VAIDHEESWARRAN 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. - * -  * 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. - * - */ -#include <sys/param.h> -#include <sys/systm.h> -#include <sys/ioccom.h> -#include "cdev.h" - -/* - * This is the actual code for the system call... it can't be static because - * it is exported to another part of the module... the only place it needs - * to be referenced is the sysent we are interested in. - * - * To write your own system call using this as a template, you could strip - * out this code and use the rest as a prototype module, changing only the - * function names and the number of arguments to the call in the module - * specific "sysent". - * - * You would have to use the "-R" option of "ld" to ensure a linkable file - * if you were to do this, since you would need to combine multiple ".o" - * files into a single ".o" file for use by "modload". - */ - -#define CDEV_IOCTL1         _IOR('C', 1, u_int) - -int -mydev_open(dev_t dev, int flag, int otyp, struct proc *procp) -{ -    printf("mydev_open: dev_t=%d, flag=%x, otyp=%x, procp=%p\n", -	   dev, flag, otyp, procp); -    return (0); -} - -int -mydev_close(dev_t dev, int flag, int otyp, struct proc *procp) -{ -    printf("mydev_close: dev_t=%d, flag=%x, otyp=%x, procp=%p\n", -	      dev, flag, otyp, procp); -    return (0); -} - -int -mydev_ioctl(dev_t dev, u_long cmd, caddr_t arg, int mode, struct proc *procp) -{ -    int error = 0; - -    printf("mydev_ioctl: dev_t=%d, cmd=%lx, arg=%p, mode=%x procp=%p\n", -	   dev, cmd, arg, mode, procp); - -    switch(cmd) { -    case CDEV_IOCTL1: -	printf("you called mydev_ioctl CDEV_IOCTL1\n"); -	break; -    default: -	printf("No such ioctl for me!\n"); -	error = EINVAL; -	break; -    } -    return error; -} diff --git a/share/examples/kld/cdev/module/cdev.h b/share/examples/kld/cdev/module/cdev.h deleted file mode 100644 index ae07c342e65d6..0000000000000 --- a/share/examples/kld/cdev/module/cdev.h +++ /dev/null @@ -1,98 +0,0 @@ -/* 08 Nov 1998*/ -/* - * cdev.h - header for sample kld module implementing a character device - *          driver. - * - * 08 Nov 1998  Rajesh Vaidheeswarran - * - * Copyright (c) 1998 Rajesh Vaidheeswarran - * 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 Rajesh Vaidheeswarran. - * 4. The name Rajesh Vaidheeswarran may not be used to endorse or promote - *    products derived from this software without specific prior written - *    permission. - * - * THIS SOFTWARE IS PROVIDED BY RAJESH VAIDHEESWARRAN ``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 RAJESH VAIDHEESWARRAN 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. - * - * 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. - * - */ - -#ifndef __CDEV_H_ -#define __CDEV_H_ - -#include <sys/conf.h> - -d_open_t mydev_open; -d_close_t mydev_close; -d_ioctl_t mydev_ioctl; - -#define CDEV_MAJOR 32 - -static struct cdevsw my_devsw = { -    mydev_open, -    mydev_close, -    noread, -    nowrite, -    mydev_ioctl, -    nostop, -    nullreset, -    nodevtotty, -    NULL, -    nommap, -    NULL, -    "cdev", -    NULL, -    CDEV_MAJOR -}; - -#endif  diff --git a/share/examples/kld/cdev/module/cdevmod.c b/share/examples/kld/cdev/module/cdevmod.c deleted file mode 100644 index f8440924c2e4b..0000000000000 --- a/share/examples/kld/cdev/module/cdevmod.c +++ /dev/null @@ -1,122 +0,0 @@ -/* 08 Nov 1998*/ -/* - * cdevmod.c - a sample kld module implementing a character device driver. - * - * 08 Nov 1998  Rajesh Vaidheeswarran - * - * Copyright (c) 1998 Rajesh Vaidheeswarran - * 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 Rajesh Vaidheeswarran. - * 4. The name Rajesh Vaidheeswarran may not be used to endorse or promote - *    products derived from this software without specific prior written - *    permission. - * - * THIS SOFTWARE IS PROVIDED BY RAJESH VAIDHEESWARRAN ``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 RAJESH VAIDHEESWARRAN 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. - * - * 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. - * - */ -#include <sys/param.h> -#include <sys/systm.h> -#include <sys/kernel.h> -#include <sys/module.h> - -#include "cdev.h" - -static int cdev_load(module_t,   modeventtype_t, void *); - -/* - * This function is called each time the module is loaded or unloaded. - * Since we are a miscellaneous module, we have to provide whatever - * code is necessary to patch ourselves into the area we are being - * loaded to change. - * - * The stat information is basically common to all modules, so there - * is no real issue involved with stat; we will leave it lkm_nullcmd(), - * since we don't have to do anything about it. - */ - -static int -cdev_load(mod, cmd, arg) -    module_t	mod; -    modeventtype_t cmd; -    void * arg; -{ -    int  err = 0; - -    switch (cmd) { -    case MOD_LOAD: -	 -	/* Do any initialization that you should do with the kernel */ -	 -	/* if we make it to here, print copyright on console*/ -	printf("\nSample Loaded kld character device driver\n"); -	printf("Copyright (c) 1998\n"); -	printf("Rajesh Vaidheeswarran\n"); -	printf("All rights reserved\n"); -	break;		/* Success*/ - -    case MOD_UNLOAD: -	printf("Unloaded kld character device driver\n"); -	break;		/* Success*/ - -    default:	/* we only understand load/unload*/ -	err = EINVAL; -	break; -    } - -    return(err); -} - -/* Now declare the module to the system */ - -CDEV_MODULE(cdev_mod, CDEV_MAJOR, my_devsw, cdev_load, 0); | 
