Module Name: src Committed By: pgoyette Date: Sun Mar 24 11:20:26 UTC 2019
Modified Files: src/distrib/sets/lists/modules: mi src/sys/modules: Makefile Added Files: src/sys/modules/if_tap: Makefile tap.ioconf src/sys/modules/tap: Makefile tap.c Log Message: Add a loadable module for tap(4). The code was already modularized, we simply didn't build the loadable module. Note also that since the tap(4) device can be reasonably accessed by either creating a device instance (using ifconfig(8)) or by opening /dev/tap, we need to create both if_tap.kmod and tap.kmod (similar to what is done with tun(4)). To generate a diff of this commit: cvs rdiff -u -r1.119 -r1.120 src/distrib/sets/lists/modules/mi cvs rdiff -u -r1.219 -r1.220 src/sys/modules/Makefile cvs rdiff -u -r0 -r1.1 src/sys/modules/if_tap/Makefile \ src/sys/modules/if_tap/tap.ioconf cvs rdiff -u -r0 -r1.1 src/sys/modules/tap/Makefile src/sys/modules/tap/tap.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/distrib/sets/lists/modules/mi diff -u src/distrib/sets/lists/modules/mi:1.119 src/distrib/sets/lists/modules/mi:1.120 --- src/distrib/sets/lists/modules/mi:1.119 Wed Feb 6 11:55:05 2019 +++ src/distrib/sets/lists/modules/mi Sun Mar 24 11:20:26 2019 @@ -1,4 +1,4 @@ -# $NetBSD: mi,v 1.119 2019/02/06 11:55:05 rin Exp $ +# $NetBSD: mi,v 1.120 2019/03/24 11:20:26 pgoyette Exp $ # # Note: don't delete entries from here - mark them as "obsolete" instead. # @@ -228,6 +228,8 @@ ./@MODULEDIR@/if_stf/if_stf.kmod base-kernel-modules kmod ./@MODULEDIR@/if_strip base-kernel-modules kmod ./@MODULEDIR@/if_strip/if_strip.kmod base-kernel-modules kmod +./@MODULEDIR@/if_tap base-kernel-modules kmod +./@MODULEDIR@/if_tap/if_tap.kmod base-kernel-modules kmod ./@MODULEDIR@/if_tun base-kernel-modules kmod ./@MODULEDIR@/if_tun/if_tun.kmod base-kernel-modules kmod ./@MODULEDIR@/if_ure base-kernel-modules kmod @@ -416,6 +418,8 @@ ./@MODULEDIR@/tmpfs/tmpfs.kmod base-kernel-modules kmod ./@MODULEDIR@/tprof base-kernel-modules kmod ./@MODULEDIR@/tprof/tprof.kmod base-kernel-modules kmod +./@MODULEDIR@/tap base-kernel-modules kmod +./@MODULEDIR@/tap/tap.kmod base-kernel-modules kmod ./@MODULEDIR@/tun base-kernel-modules kmod ./@MODULEDIR@/tun/tun.kmod base-kernel-modules kmod ./@MODULEDIR@/twa base-obsolete obsolete Index: src/sys/modules/Makefile diff -u src/sys/modules/Makefile:1.219 src/sys/modules/Makefile:1.220 --- src/sys/modules/Makefile:1.219 Wed Feb 6 11:55:06 2019 +++ src/sys/modules/Makefile Sun Mar 24 11:20:26 2019 @@ -1,4 +1,4 @@ -# $NetBSD: Makefile,v 1.219 2019/02/06 11:55:06 rin Exp $ +# $NetBSD: Makefile,v 1.220 2019/03/24 11:20:26 pgoyette Exp $ .include <bsd.own.mk> @@ -87,6 +87,7 @@ SUBDIR+= if_smsc SUBDIR+= if_srt SUBDIR+= if_stf SUBDIR+= if_strip +SUBDIR+= if_tap tap SUBDIR+= if_tun tun SUBDIR+= if_ure SUBDIR+= if_vlan Added files: Index: src/sys/modules/if_tap/Makefile diff -u /dev/null src/sys/modules/if_tap/Makefile:1.1 --- /dev/null Sun Mar 24 11:20:26 2019 +++ src/sys/modules/if_tap/Makefile Sun Mar 24 11:20:26 2019 @@ -0,0 +1,14 @@ +# $NetBSD: Makefile,v 1.1 2019/03/24 11:20:26 pgoyette Exp $ + +.include "../Makefile.inc" + +.PATH: ${S}/net + +KMOD= if_tap +IOCONF= tap.ioconf +SRCS= if_tap.c + +CPPFLAGS+= -DINET +CPPFLAGS+= -DINET6 + +.include <bsd.kmodule.mk> Index: src/sys/modules/if_tap/tap.ioconf diff -u /dev/null src/sys/modules/if_tap/tap.ioconf:1.1 --- /dev/null Sun Mar 24 11:20:26 2019 +++ src/sys/modules/if_tap/tap.ioconf Sun Mar 24 11:20:26 2019 @@ -0,0 +1,7 @@ +# $NetBSD: tap.ioconf,v 1.1 2019/03/24 11:20:26 pgoyette Exp $ + +ioconf tap + +include "conf/files" + +pseudo-device tap Index: src/sys/modules/tap/Makefile diff -u /dev/null src/sys/modules/tap/Makefile:1.1 --- /dev/null Sun Mar 24 11:20:26 2019 +++ src/sys/modules/tap/Makefile Sun Mar 24 11:20:26 2019 @@ -0,0 +1,8 @@ +# $NetBSD: Makefile,v 1.1 2019/03/24 11:20:26 pgoyette Exp $ + +.include "../Makefile.inc" + +KMOD= tap +SRCS= tap.c + +.include <bsd.kmodule.mk> Index: src/sys/modules/tap/tap.c diff -u /dev/null src/sys/modules/tap/tap.c:1.1 --- /dev/null Sun Mar 24 11:20:26 2019 +++ src/sys/modules/tap/tap.c Sun Mar 24 11:20:26 2019 @@ -0,0 +1,51 @@ +/* $NetBSD: tap.c,v 1.1 2019/03/24 11:20:26 pgoyette Exp $ */ + +/*- + * Copyright (c) 2016 The NetBSD Foundation, Inc. + * All rights reserved. + * + * This code is derived from software contributed to The NetBSD Foundation + * by Paul Goyette + * + * 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. + * + * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS + * ``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 FOUNDATION OR CONTRIBUTORS + * 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/cdefs.h> +__KERNEL_RCSID(0, "$NetBSD: tap.c,v 1.1 2019/03/24 11:20:26 pgoyette Exp $"); + +#include <sys/errno.h> +#include <sys/module.h> + +MODULE(MODULE_CLASS_DRIVER, tap, "if_tap"); + +static int +tap_modcmd(modcmd_t cmd, void *arg) +{ + + switch (cmd) { + case MODULE_CMD_INIT: + case MODULE_CMD_FINI: + return 0; + default: + return ENOTTY; + } +}