Lines Matching refs:cn

35 	struct cn_msg *cn; /* advances as cn_msg is appeneded */  member
66 if (!block->cn) in w1_reply_len()
68 return (u8 *)block->cn - (u8 *)block->first_cn + block->cn->len; in w1_reply_len()
97 block->cn = NULL; in w1_reply_make_space()
106 if (!(block->request_cn.flags & W1_CN_BUNDLE) && block->cn) in w1_netlink_check_send()
121 if (block->cn && block->cn->ack == ack) { in w1_netlink_setup_msg()
122 block->msg = (struct w1_netlink_msg *)(block->cn->data + block->cn->len); in w1_netlink_setup_msg()
125 if (block->cn) in w1_netlink_setup_msg()
126 block->cn = (struct cn_msg *)(block->cn->data + in w1_netlink_setup_msg()
127 block->cn->len); in w1_netlink_setup_msg()
129 block->cn = block->first_cn; in w1_netlink_setup_msg()
131 memcpy(block->cn, &block->request_cn, sizeof(*block->cn)); in w1_netlink_setup_msg()
132 block->cn->len = 0; in w1_netlink_setup_msg()
133 block->cn->ack = ack; in w1_netlink_setup_msg()
134 block->msg = (struct w1_netlink_msg *)block->cn->data; in w1_netlink_setup_msg()
155 block->cn->len += sizeof(*block->msg); in w1_netlink_queue_cmd()
162 block->cn->len += space; in w1_netlink_queue_cmd()
178 block->cn->len += sizeof(*req_msg); in w1_netlink_queue_status()
184 block->cn->len += sizeof(*cmd); in w1_netlink_queue_status()
201 static void w1_netlink_send_error(struct cn_msg *cn, struct w1_netlink_msg *msg, in w1_netlink_send_error() argument
205 struct cn_msg cn; in w1_netlink_send_error() member
208 memcpy(&packet.cn, cn, sizeof(packet.cn)); in w1_netlink_send_error()
210 packet.cn.len = sizeof(packet.msg); in w1_netlink_send_error()
213 cn_netlink_send(&packet.cn, portid, 0, GFP_KERNEL); in w1_netlink_send_error()
226 struct cn_msg cn; in w1_netlink_send() member
231 packet.cn.id.idx = CN_W1_IDX; in w1_netlink_send()
232 packet.cn.id.val = CN_W1_VAL; in w1_netlink_send()
234 packet.cn.seq = dev->seq++; in w1_netlink_send()
235 packet.cn.len = sizeof(*msg); in w1_netlink_send()
240 cn_netlink_send(&packet.cn, 0, 0, GFP_KERNEL); in w1_netlink_send()
260 block->cn->len += sizeof(*data); in w1_send_slave()
409 struct cn_msg *cn; in w1_process_command_root() local
413 cn = kmalloc(PAGE_SIZE, GFP_KERNEL); in w1_process_command_root()
414 if (!cn) in w1_process_command_root()
417 cn->id.idx = CN_W1_IDX; in w1_process_command_root()
418 cn->id.val = CN_W1_VAL; in w1_process_command_root()
420 cn->seq = req_cn->seq; in w1_process_command_root()
421 cn->ack = req_cn->seq + 1; in w1_process_command_root()
422 cn->len = sizeof(struct w1_netlink_msg); in w1_process_command_root()
423 msg = (struct w1_netlink_msg *)cn->data; in w1_process_command_root()
432 if (cn->len + sizeof(*id) > PAGE_SIZE - sizeof(struct cn_msg)) { in w1_process_command_root()
433 cn_netlink_send(cn, portid, 0, GFP_KERNEL); in w1_process_command_root()
434 cn->len = sizeof(struct w1_netlink_msg); in w1_process_command_root()
441 cn->len += sizeof(*id); in w1_process_command_root()
444 cn_netlink_send(cn, portid, 0, GFP_KERNEL); in w1_process_command_root()
447 kfree(cn); in w1_process_command_root()
544 static void w1_cn_callback(struct cn_msg *cn, struct netlink_skb_parms *nsp) in w1_cn_callback() argument
546 struct w1_netlink_msg *msg = (struct w1_netlink_msg *)(cn + 1); in w1_cn_callback()
561 if (cn->flags & ~(W1_CN_BUNDLE)) { in w1_cn_callback()
562 w1_netlink_send_error(cn, msg, nsp->portid, -EINVAL); in w1_cn_callback()
569 msg_len = cn->len; in w1_cn_callback()
588 msg = (struct w1_netlink_msg *)(cn + 1); in w1_cn_callback()
591 int reply_size = sizeof(*cn) + cn->len + slave_len; in w1_cn_callback()
592 if (cn->flags & W1_CN_BUNDLE) { in w1_cn_callback()
607 sizeof(struct w1_cb_block) + sizeof(*cn) + cn->len + in w1_cn_callback()
618 w1_netlink_send_error(cn, msg, nsp->portid, -ENOMEM); in w1_cn_callback()
623 memcpy(&block->request_cn, cn, sizeof(*cn) + cn->len); in w1_cn_callback()
624 node = (struct w1_cb_node *)(block->request_cn.data + cn->len); in w1_cn_callback()
640 msg_len = cn->len; in w1_cn_callback()
653 err = w1_process_command_root(cn, nsp->portid); in w1_cn_callback()
674 __func__, cn->id.idx, cn->id.val, in w1_cn_callback()
691 (size_t)((u8 *)msg - (u8 *)cn)); in w1_cn_callback()
707 w1_netlink_send_error(cn, msg, nsp->portid, err); in w1_cn_callback()
736 void w1_netlink_send(struct w1_master *dev, struct w1_netlink_msg *cn) in w1_netlink_send() argument