Linux kernel & device driver programming

Cross-Referenced Linux and Device Driver Code

[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ]
Version: [ 2.6.11.8 ] [ 2.6.25 ] [ 2.6.25.8 ] [ 2.6.31.13 ] Architecture: [ i386 ]
  1 /*
  2  *      Generic parts
  3  *      Linux ethernet bridge
  4  *
  5  *      Authors:
  6  *      Lennert Buytenhek               <buytenh@gnu.org>
  7  *
  8  *      $Id: br.c,v 1.47 2001/12/24 00:56:41 davem Exp $
  9  *
 10  *      This program is free software; you can redistribute it and/or
 11  *      modify it under the terms of the GNU General Public License
 12  *      as published by the Free Software Foundation; either version
 13  *      2 of the License, or (at your option) any later version.
 14  */
 15 
 16 #include <linux/config.h>
 17 #include <linux/module.h>
 18 #include <linux/kernel.h>
 19 #include <linux/miscdevice.h>
 20 #include <linux/netdevice.h>
 21 #include <linux/etherdevice.h>
 22 #include <linux/init.h>
 23 
 24 #include "br_private.h"
 25 
 26 #if defined(CONFIG_ATM_LANE) || defined(CONFIG_ATM_LANE_MODULE)
 27 #include "../atm/lec.h"
 28 #endif
 29 
 30 int (*br_should_route_hook) (struct sk_buff **pskb) = NULL;
 31 
 32 static int __init br_init(void)
 33 {
 34         br_fdb_init();
 35 
 36 #ifdef CONFIG_BRIDGE_NETFILTER
 37         if (br_netfilter_init())
 38                 return 1;
 39 #endif
 40         brioctl_set(br_ioctl_deviceless_stub);
 41         br_handle_frame_hook = br_handle_frame;
 42 
 43 #if defined(CONFIG_ATM_LANE) || defined(CONFIG_ATM_LANE_MODULE)
 44         br_fdb_get_hook = br_fdb_get;
 45         br_fdb_put_hook = br_fdb_put;
 46 #endif
 47         register_netdevice_notifier(&br_device_notifier);
 48 
 49         return 0;
 50 }
 51 
 52 static void __exit br_deinit(void)
 53 {
 54 #ifdef CONFIG_BRIDGE_NETFILTER
 55         br_netfilter_fini();
 56 #endif
 57         unregister_netdevice_notifier(&br_device_notifier);
 58         brioctl_set(NULL);
 59 
 60         br_cleanup_bridges();
 61 
 62         synchronize_net();
 63 
 64 #if defined(CONFIG_ATM_LANE) || defined(CONFIG_ATM_LANE_MODULE)
 65         br_fdb_get_hook = NULL;
 66         br_fdb_put_hook = NULL;
 67 #endif
 68 
 69         br_handle_frame_hook = NULL;
 70         br_fdb_fini();
 71 }
 72 
 73 EXPORT_SYMBOL(br_should_route_hook);
 74 
 75 module_init(br_init)
 76 module_exit(br_deinit)
 77 MODULE_LICENSE("GPL");
 78 
  This page was automatically generated by the LXR engine.