mfd: twl6025: resolve compilation time warnings
[linux-2.6.git] / include / linux / connector.h
index 2e9759c..3c9c54f 100644 (file)
@@ -1,7 +1,7 @@
 /*
  *     connector.h
  * 
- * 2004-2005 Copyright (c) Evgeniy Polyakov <johnpol@2ka.mipt.ru>
+ * 2004-2005 Copyright (c) Evgeniy Polyakov <zbr@ioremap.net>
  * All rights reserved.
  * 
  * This program is free software; you can redistribute it and/or modify
@@ -44,7 +44,7 @@
 #define CN_VAL_DRBD                    0x1
 #define CN_KVP_IDX                     0x9     /* HyperV KVP */
 
-#define CN_NETLINK_USERS               9
+#define CN_NETLINK_USERS               10      /* Highest index + 1 */
 
 /*
  * Maximum connector's message size.
@@ -75,7 +75,7 @@ struct cn_msg {
 
 #ifdef __KERNEL__
 
-#include <asm/atomic.h>
+#include <linux/atomic.h>
 
 #include <linux/list.h>
 #include <linux/workqueue.h>
@@ -88,8 +88,6 @@ struct cn_queue_dev {
        atomic_t refcnt;
        unsigned char name[CN_CBQ_NAMELEN];
 
-       struct workqueue_struct *cn_queue;
-
        struct list_head queue_list;
        spinlock_t queue_lock;
 
@@ -101,20 +99,13 @@ struct cn_callback_id {
        struct cb_id id;
 };
 
-struct cn_callback_data {
-       struct sk_buff *skb;
-       void (*callback) (struct cn_msg *, struct netlink_skb_parms *);
-
-       void *free;
-};
-
 struct cn_callback_entry {
        struct list_head callback_entry;
-       struct work_struct work;
+       atomic_t refcnt;
        struct cn_queue_dev *pdev;
 
        struct cn_callback_id id;
-       struct cn_callback_data data;
+       void (*callback) (struct cn_msg *, struct netlink_skb_parms *);
 
        u32 seq, group;
 };
@@ -129,19 +120,21 @@ struct cn_dev {
        struct cn_queue_dev *cbdev;
 };
 
-int cn_add_callback(struct cb_id *, char *, void (*callback) (struct cn_msg *, struct netlink_skb_parms *));
+int cn_add_callback(struct cb_id *id, const char *name,
+                   void (*callback)(struct cn_msg *, struct netlink_skb_parms *));
 void cn_del_callback(struct cb_id *);
 int cn_netlink_send(struct cn_msg *, u32, gfp_t);
 
-int cn_queue_add_callback(struct cn_queue_dev *dev, char *name, struct cb_id *id, void (*callback)(struct cn_msg *, struct netlink_skb_parms *));
+int cn_queue_add_callback(struct cn_queue_dev *dev, const char *name,
+                         struct cb_id *id,
+                         void (*callback)(struct cn_msg *, struct netlink_skb_parms *));
 void cn_queue_del_callback(struct cn_queue_dev *dev, struct cb_id *id);
+void cn_queue_release_callback(struct cn_callback_entry *);
 
-struct cn_queue_dev *cn_queue_alloc_dev(char *name, struct sock *);
+struct cn_queue_dev *cn_queue_alloc_dev(const char *name, struct sock *);
 void cn_queue_free_dev(struct cn_queue_dev *dev);
 
 int cn_cb_equal(struct cb_id *, struct cb_id *);
 
-void cn_queue_wrapper(struct work_struct *work);
-
 #endif                         /* __KERNEL__ */
 #endif                         /* __CONNECTOR_H */