diff options
author | Glenn Elliott <gelliott@cs.unc.edu> | 2012-03-04 19:47:13 -0500 |
---|---|---|
committer | Glenn Elliott <gelliott@cs.unc.edu> | 2012-03-04 19:47:13 -0500 |
commit | c71c03bda1e86c9d5198c5d83f712e695c4f2a1e (patch) | |
tree | ecb166cb3e2b7e2adb3b5e292245fefd23381ac8 /include/linux/connector.h | |
parent | ea53c912f8a86a8567697115b6a0d8152beee5c8 (diff) | |
parent | 6a00f206debf8a5c8899055726ad127dbeeed098 (diff) |
Merge branch 'mpi-master' into wip-k-fmlpwip-k-fmlp
Conflicts:
litmus/sched_cedf.c
Diffstat (limited to 'include/linux/connector.h')
-rw-r--r-- | include/linux/connector.h | 36 |
1 files changed, 11 insertions, 25 deletions
diff --git a/include/linux/connector.h b/include/linux/connector.h index 3a779ffba60b..f696bccd48cb 100644 --- a/include/linux/connector.h +++ b/include/linux/connector.h | |||
@@ -42,8 +42,9 @@ | |||
42 | #define CN_VAL_DM_USERSPACE_LOG 0x1 | 42 | #define CN_VAL_DM_USERSPACE_LOG 0x1 |
43 | #define CN_IDX_DRBD 0x8 | 43 | #define CN_IDX_DRBD 0x8 |
44 | #define CN_VAL_DRBD 0x1 | 44 | #define CN_VAL_DRBD 0x1 |
45 | #define CN_KVP_IDX 0x9 /* HyperV KVP */ | ||
45 | 46 | ||
46 | #define CN_NETLINK_USERS 8 | 47 | #define CN_NETLINK_USERS 10 /* Highest index + 1 */ |
47 | 48 | ||
48 | /* | 49 | /* |
49 | * Maximum connector's message size. | 50 | * Maximum connector's message size. |
@@ -87,14 +88,6 @@ struct cn_queue_dev { | |||
87 | atomic_t refcnt; | 88 | atomic_t refcnt; |
88 | unsigned char name[CN_CBQ_NAMELEN]; | 89 | unsigned char name[CN_CBQ_NAMELEN]; |
89 | 90 | ||
90 | struct workqueue_struct *cn_queue; | ||
91 | /* Sent to kevent to create cn_queue only when needed */ | ||
92 | struct work_struct wq_creation; | ||
93 | /* Tell if the wq_creation job is pending/completed */ | ||
94 | atomic_t wq_requested; | ||
95 | /* Wait for cn_queue to be created */ | ||
96 | wait_queue_head_t wq_created; | ||
97 | |||
98 | struct list_head queue_list; | 91 | struct list_head queue_list; |
99 | spinlock_t queue_lock; | 92 | spinlock_t queue_lock; |
100 | 93 | ||
@@ -106,20 +99,13 @@ struct cn_callback_id { | |||
106 | struct cb_id id; | 99 | struct cb_id id; |
107 | }; | 100 | }; |
108 | 101 | ||
109 | struct cn_callback_data { | ||
110 | struct sk_buff *skb; | ||
111 | void (*callback) (struct cn_msg *, struct netlink_skb_parms *); | ||
112 | |||
113 | void *free; | ||
114 | }; | ||
115 | |||
116 | struct cn_callback_entry { | 102 | struct cn_callback_entry { |
117 | struct list_head callback_entry; | 103 | struct list_head callback_entry; |
118 | struct work_struct work; | 104 | atomic_t refcnt; |
119 | struct cn_queue_dev *pdev; | 105 | struct cn_queue_dev *pdev; |
120 | 106 | ||
121 | struct cn_callback_id id; | 107 | struct cn_callback_id id; |
122 | struct cn_callback_data data; | 108 | void (*callback) (struct cn_msg *, struct netlink_skb_parms *); |
123 | 109 | ||
124 | u32 seq, group; | 110 | u32 seq, group; |
125 | }; | 111 | }; |
@@ -134,21 +120,21 @@ struct cn_dev { | |||
134 | struct cn_queue_dev *cbdev; | 120 | struct cn_queue_dev *cbdev; |
135 | }; | 121 | }; |
136 | 122 | ||
137 | int cn_add_callback(struct cb_id *, char *, void (*callback) (struct cn_msg *, struct netlink_skb_parms *)); | 123 | int cn_add_callback(struct cb_id *id, const char *name, |
124 | void (*callback)(struct cn_msg *, struct netlink_skb_parms *)); | ||
138 | void cn_del_callback(struct cb_id *); | 125 | void cn_del_callback(struct cb_id *); |
139 | int cn_netlink_send(struct cn_msg *, u32, gfp_t); | 126 | int cn_netlink_send(struct cn_msg *, u32, gfp_t); |
140 | 127 | ||
141 | 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 *)); | 128 | int cn_queue_add_callback(struct cn_queue_dev *dev, const char *name, |
129 | struct cb_id *id, | ||
130 | void (*callback)(struct cn_msg *, struct netlink_skb_parms *)); | ||
142 | void cn_queue_del_callback(struct cn_queue_dev *dev, struct cb_id *id); | 131 | void cn_queue_del_callback(struct cn_queue_dev *dev, struct cb_id *id); |
132 | void cn_queue_release_callback(struct cn_callback_entry *); | ||
143 | 133 | ||
144 | int queue_cn_work(struct cn_callback_entry *cbq, struct work_struct *work); | 134 | struct cn_queue_dev *cn_queue_alloc_dev(const char *name, struct sock *); |
145 | |||
146 | struct cn_queue_dev *cn_queue_alloc_dev(char *name, struct sock *); | ||
147 | void cn_queue_free_dev(struct cn_queue_dev *dev); | 135 | void cn_queue_free_dev(struct cn_queue_dev *dev); |
148 | 136 | ||
149 | int cn_cb_equal(struct cb_id *, struct cb_id *); | 137 | int cn_cb_equal(struct cb_id *, struct cb_id *); |
150 | 138 | ||
151 | void cn_queue_wrapper(struct work_struct *work); | ||
152 | |||
153 | #endif /* __KERNEL__ */ | 139 | #endif /* __KERNEL__ */ |
154 | #endif /* __CONNECTOR_H */ | 140 | #endif /* __CONNECTOR_H */ |