Merge master.kernel.org:/pub/scm/linux/kernel/git/herbert/crypto-2.6
[linux-drm-fsl-dcu.git] / arch / um / include / net_kern.h
index 280459fb0b2619ded00ce874565a5d6c93ef6c49..9237056b91030cfa15eec7c183f08e8d50ebcc11 100644 (file)
@@ -1,4 +1,4 @@
-/* 
+/*
  * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
  * Licensed under the GPL
  */
@@ -11,6 +11,7 @@
 #include <linux/skbuff.h>
 #include <linux/socket.h>
 #include <linux/list.h>
+#include <linux/workqueue.h>
 
 struct uml_net {
        struct list_head list;
@@ -26,6 +27,7 @@ struct uml_net_private {
        struct net_device *dev;
        struct timer_list tl;
        struct net_device_stats stats;
+       struct work_struct work;
        int fd;
        unsigned char mac[ETH_ALEN];
        unsigned short (*protocol)(struct sk_buff *);
@@ -34,11 +36,11 @@ struct uml_net_private {
        void (*remove)(void *);
        int (*read)(int, struct sk_buff **skb, struct uml_net_private *);
        int (*write)(int, struct sk_buff **skb, struct uml_net_private *);
-       
+
        void (*add_address)(unsigned char *, unsigned char *, void *);
        void (*delete_address)(unsigned char *, unsigned char *, void *);
        int (*set_mtu)(int mtu, void *);
-       int user[1];
+       char user[0];
 };
 
 struct net_kern_info {
@@ -50,18 +52,18 @@ struct net_kern_info {
 
 struct transport {
        struct list_head list;
-       char *name;
-       int (*setup)(char *, char **, void *);
+       const char *name;
+       int (* const setup)(char *, char **, void *);
        const struct net_user_info *user;
        const struct net_kern_info *kern;
-       int private_size;
-       int setup_size;
+       const int private_size;
+       const int setup_size;
 };
 
 extern struct net_device *ether_init(int);
 extern unsigned short ether_protocol(struct sk_buff *);
 extern struct sk_buff *ether_adjust_skb(struct sk_buff *skb, int extra);
-extern int tap_setup_common(char *str, char *type, char **dev_name, 
+extern int tap_setup_common(char *str, char *type, char **dev_name,
                            char **mac_out, char **gate_addr);
 extern void register_transport(struct transport *new);
 extern unsigned short eth_protocol(struct sk_buff *skb);