Lines Matching refs:msg

32 void w1_netlink_send(struct w1_master *dev, struct w1_netlink_msg *msg)
46 memcpy(w, msg, sizeof(struct w1_netlink_msg));
53 struct cn_msg *msg = dev->priv;
54 struct w1_netlink_msg *hdr = (struct w1_netlink_msg *)(msg + 1);
69 msg->len += 8;
73 msg->ack++;
74 cn_netlink_send(msg, 0, GFP_KERNEL);
76 msg->len = sizeof(struct w1_netlink_msg) + sizeof(struct w1_netlink_cmd);
81 static int w1_process_search_command(struct w1_master *dev, struct cn_msg *msg,
84 struct w1_netlink_msg *hdr = (struct w1_netlink_msg *)(msg + 1);
88 dev->priv = msg;
93 msg->ack = 0;
94 cn_netlink_send(msg, 0, GFP_KERNEL);
102 static int w1_send_read_reply(struct cn_msg *msg, struct w1_netlink_msg *hdr,
122 memcpy(cm, msg, sizeof(struct cn_msg));
126 cm->ack = msg->seq+1;
141 static int w1_process_command_io(struct w1_master *dev, struct cn_msg *msg,
149 w1_send_read_reply(msg, hdr, cmd);
153 w1_send_read_reply(msg, hdr, cmd);
170 struct cn_msg *msg;
174 msg = kzalloc(PAGE_SIZE, GFP_KERNEL);
175 if (!msg)
178 msg->id = req_msg->id;
179 msg->seq = req_msg->seq;
180 msg->ack = 0;
181 msg->len = sizeof(struct w1_netlink_msg) + sizeof(struct w1_netlink_cmd);
183 hdr = (struct w1_netlink_msg *)(msg + 1);
196 err = w1_process_search_command(dev, msg,
197 PAGE_SIZE - msg->len - sizeof(struct cn_msg));
212 kfree(msg);
216 static int w1_process_command_slave(struct w1_slave *sl, struct cn_msg *msg,
223 return w1_process_command_io(sl->master, msg, hdr, cmd);
226 static int w1_process_command_root(struct cn_msg *msg, struct w1_netlink_msg *mcmd)
234 printk(KERN_NOTICE "%s: msg: %x.%x, wrong type: %u, len: %u.\n",
235 __func__, msg->id.idx, msg->id.val, mcmd->type, mcmd->len);
246 cn->seq = msg->seq;
283 struct w1_netlink_msg *msg;
286 cmsg = kzalloc(sizeof(*msg) + sizeof(*cmd) + sizeof(*cmsg), GFP_KERNEL);
290 msg = (struct w1_netlink_msg *)(cmsg + 1);
291 cmd = (struct w1_netlink_cmd *)(msg + 1);
294 cmsg->len = sizeof(*msg);
296 memcpy(msg, rmsg, sizeof(*msg));
297 msg->len = 0;
298 msg->status = (short)-error;
303 msg->len += sizeof(*cmd);
313 static void w1_cn_callback(struct cn_msg *msg, struct netlink_skb_parms *nsp)
315 struct w1_netlink_msg *m = (struct w1_netlink_msg *)(msg + 1);
321 while (msg->len && !err) {
335 if (m->len + sizeof(struct w1_netlink_msg) > msg->len) {
347 err = w1_process_command_root(msg, m);
376 err = w1_process_command_slave(sl, msg, m, cmd);
378 err = w1_process_command_master(dev, msg, m, cmd);
380 w1_netlink_send_error(msg, m, cmd, err);
393 w1_netlink_send_error(msg, m, cmd, err);
394 msg->len -= sizeof(struct w1_netlink_msg) + m->len;
419 void w1_netlink_send(struct w1_master *dev, struct w1_netlink_msg *msg)