aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/w1/w1.h
diff options
context:
space:
mode:
authorDavid Fries <David@Fries.net>2014-04-08 23:37:09 -0400
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2014-05-27 16:56:21 -0400
commit8a0427d192e6043834414210dd14cc1289daff18 (patch)
tree1e76812e3744b6946a815fb94f877cc31d11b302 /drivers/w1/w1.h
parent34470e0bfae223e3f22bd2bd6e0e1dac366c9290 (diff)
w1: optional bundling of netlink kernel replies
Applications can submit a set of commands in one packet to the kernel, and in some cases it is required such as reading the temperature sensor results. This adds an option W1_CN_BUNDLE to the flags of cn_msg to request the kernel to reply in one packet for efficiency. The cn_msg flags now check for unknown flag values and return an error if one is seen. See "Proper handling of unknown flags in system calls" http://lwn.net/Articles/588444/ This corrects the ack values returned as per the protocol standard, namely the original ack for status messages and seq + 1 for all others such as the data returned from a read. Some of the common variable names have been standardized as follows. struct cn_msg *cn struct w1_netlink_msg *msg struct w1_netlink_cmd *cmd struct w1_master *dev When an argument and a function scope variable would collide, add req_ to the argument. Signed-off-by: David Fries <David@Fries.net> Acked-by: Evgeniy Polyakov <zbr@ioremap.net> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/w1/w1.h')
-rw-r--r--drivers/w1/w1.h8
1 files changed, 0 insertions, 8 deletions
diff --git a/drivers/w1/w1.h b/drivers/w1/w1.h
index 734dab7fc687..56a49ba41d83 100644
--- a/drivers/w1/w1.h
+++ b/drivers/w1/w1.h
@@ -203,7 +203,6 @@ enum w1_master_flags {
203 * @search_id: allows continuing a search 203 * @search_id: allows continuing a search
204 * @refcnt: reference count 204 * @refcnt: reference count
205 * @priv: private data storage 205 * @priv: private data storage
206 * @priv_size: size allocated
207 * @enable_pullup: allows a strong pullup 206 * @enable_pullup: allows a strong pullup
208 * @pullup_duration: time for the next strong pullup 207 * @pullup_duration: time for the next strong pullup
209 * @flags: one of w1_master_flags 208 * @flags: one of w1_master_flags
@@ -214,7 +213,6 @@ enum w1_master_flags {
214 * @dev: sysfs device 213 * @dev: sysfs device
215 * @bus_master: io operations available 214 * @bus_master: io operations available
216 * @seq: sequence number used for netlink broadcasts 215 * @seq: sequence number used for netlink broadcasts
217 * @portid: destination for the current netlink command
218 */ 216 */
219struct w1_master 217struct w1_master
220{ 218{
@@ -241,7 +239,6 @@ struct w1_master
241 atomic_t refcnt; 239 atomic_t refcnt;
242 240
243 void *priv; 241 void *priv;
244 int priv_size;
245 242
246 /** 5V strong pullup enabled flag, 1 enabled, zero disabled. */ 243 /** 5V strong pullup enabled flag, 1 enabled, zero disabled. */
247 int enable_pullup; 244 int enable_pullup;
@@ -260,11 +257,6 @@ struct w1_master
260 struct w1_bus_master *bus_master; 257 struct w1_bus_master *bus_master;
261 258
262 u32 seq; 259 u32 seq;
263 /* port id to send netlink responses to. The value is temporarily
264 * stored here while processing a message, set after locking the
265 * mutex, zero before unlocking the mutex.
266 */
267 u32 portid;
268}; 260};
269 261
270/** 262/**