patch-1.3.78 linux/net/802/psnap.c
Next file: linux/net/Config.in
Previous file: linux/net/802/p8023.c
Back to the patch index
Back to the overall index
- Lines: 63
- Date:
Mon Mar 25 08:58:23 1996
- Orig file:
v1.3.77/linux/net/802/psnap.c
- Orig date:
Mon Jul 31 15:59:03 1995
diff -u --recursive --new-file v1.3.77/linux/net/802/psnap.c linux/net/802/psnap.c
@@ -10,6 +10,7 @@
* 2 of the License, or (at your option) any later version.
*/
+#include <linux/module.h>
#include <linux/netdevice.h>
#include <linux/skbuff.h>
#include <net/datalink.h>
@@ -81,12 +82,20 @@
/*
* Set up the SNAP layer
*/
+
+static struct symbol_table snap_proto_syms = {
+#include <linux/symtab_begin.h>
+ X(register_snap_client),
+ X(unregister_snap_client),
+#include <linux/symtab_end.h>
+};
void snap_proto_init(struct net_proto *pro)
{
snap_dl=register_8022_client(0xAA, snap_rcv);
if(snap_dl==NULL)
printk("SNAP - unable to register with 802.2\n");
+ register_symtab(&snap_proto_syms);
}
/*
@@ -114,5 +123,33 @@
}
return proto;
+}
+
+/*
+ * Unregister SNAP clients. Protocols no longer want to play with us ...
+ */
+
+void unregister_snap_client(unsigned char *desc)
+{
+ struct datalink_proto **clients = &snap_list;
+ struct datalink_proto *tmp;
+ unsigned long flags;
+
+ save_flags(flags);
+ cli();
+
+ while ((tmp = *clients) != NULL)
+ {
+ if (memcmp(tmp->type,desc,5) == 0)
+ {
+ *clients = tmp->next;
+ kfree_s(tmp, sizeof(struct datalink_proto));
+ break;
+ }
+ else
+ clients = &tmp->next;
+ }
+
+ restore_flags(flags);
}
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov
with Sam's (original) version of this