Lines Matching defs:smi_msg
1767 static inline void format_ipmb_msg(struct ipmi_smi_msg *smi_msg,
1779 smi_msg->data[0] = (IPMI_NETFN_APP_REQUEST << 2);
1780 smi_msg->data[1] = IPMI_SEND_MSG_CMD;
1781 smi_msg->data[2] = ipmb_addr->channel;
1783 smi_msg->data[3] = 0;
1784 smi_msg->data[i+3] = ipmb_addr->slave_addr;
1785 smi_msg->data[i+4] = (msg->netfn << 2) | (ipmb_addr->lun & 0x3);
1786 smi_msg->data[i+5] = ipmb_checksum(&smi_msg->data[i + 3], 2);
1787 smi_msg->data[i+6] = source_address;
1788 smi_msg->data[i+7] = (ipmb_seq << 2) | source_lun;
1789 smi_msg->data[i+8] = msg->cmd;
1793 memcpy(&smi_msg->data[i + 9], msg->data, msg->data_len);
1794 smi_msg->data_size = msg->data_len + 9;
1797 smi_msg->data[i+smi_msg->data_size]
1798 = ipmb_checksum(&smi_msg->data[i + 6], smi_msg->data_size - 6);
1804 smi_msg->data_size += 1 + i;
1806 smi_msg->msgid = msgid;
1809 static inline void format_lan_msg(struct ipmi_smi_msg *smi_msg,
1817 smi_msg->data[0] = (IPMI_NETFN_APP_REQUEST << 2);
1818 smi_msg->data[1] = IPMI_SEND_MSG_CMD;
1819 smi_msg->data[2] = lan_addr->channel;
1820 smi_msg->data[3] = lan_addr->session_handle;
1821 smi_msg->data[4] = lan_addr->remote_SWID;
1822 smi_msg->data[5] = (msg->netfn << 2) | (lan_addr->lun & 0x3);
1823 smi_msg->data[6] = ipmb_checksum(&smi_msg->data[4], 2);
1824 smi_msg->data[7] = lan_addr->local_SWID;
1825 smi_msg->data[8] = (ipmb_seq << 2) | source_lun;
1826 smi_msg->data[9] = msg->cmd;
1830 memcpy(&smi_msg->data[10], msg->data, msg->data_len);
1831 smi_msg->data_size = msg->data_len + 10;
1834 smi_msg->data[smi_msg->data_size]
1835 = ipmb_checksum(&smi_msg->data[7], smi_msg->data_size - 7);
1841 smi_msg->data_size += 1;
1843 smi_msg->msgid = msgid;
1847 struct ipmi_smi_msg *smi_msg,
1852 list_add_tail(&smi_msg->link, &intf->hp_xmit_msgs);
1854 list_add_tail(&smi_msg->link, &intf->xmit_msgs);
1855 smi_msg = NULL;
1857 intf->curr_msg = smi_msg;
1860 return smi_msg;
1865 struct ipmi_smi_msg *smi_msg, int priority)
1872 smi_msg = smi_add_send_msg(intf, smi_msg, priority);
1876 if (smi_msg)
1877 handlers->sender(intf->send_info, smi_msg);
1892 struct ipmi_smi_msg *smi_msg,
1943 smi_msg->data[0] = (msg->netfn << 2) | (smi_addr->lun & 0x3);
1944 smi_msg->data[1] = msg->cmd;
1945 smi_msg->msgid = msgid;
1946 smi_msg->user_data = recv_msg;
1948 memcpy(&smi_msg->data[2], msg->data, msg->data_len);
1949 smi_msg->data_size = msg->data_len + 2;
1959 struct ipmi_smi_msg *smi_msg,
2019 format_ipmb_msg(smi_msg, msg, ipmb_addr, msgid,
2027 smi_msg->user_data = recv_msg;
2067 format_ipmb_msg(smi_msg, msg, ipmb_addr,
2076 memcpy(recv_msg->msg_data, smi_msg->data,
2077 smi_msg->data_size);
2079 recv_msg->msg.data_len = smi_msg->data_size;
2100 struct ipmi_smi_msg *smi_msg,
2127 smi_msg->type = IPMI_SMI_MSG_TYPE_IPMB_DIRECT;
2128 smi_msg->msgid = msgid;
2131 smi_msg->data[0] = msg->netfn << 2 | daddr->rs_lun;
2132 smi_msg->data[2] = recv_msg->msgid << 2 | daddr->rq_lun;
2134 smi_msg->data[0] = msg->netfn << 2 | daddr->rq_lun;
2135 smi_msg->data[2] = recv_msg->msgid << 2 | daddr->rs_lun;
2137 smi_msg->data[1] = daddr->slave_addr;
2138 smi_msg->data[3] = msg->cmd;
2140 memcpy(smi_msg->data + 4, msg->data, msg->data_len);
2141 smi_msg->data_size = msg->data_len + 4;
2143 smi_msg->user_data = recv_msg;
2152 struct ipmi_smi_msg *smi_msg,
2199 format_lan_msg(smi_msg, msg, lan_addr, msgid,
2206 smi_msg->user_data = recv_msg;
2238 format_lan_msg(smi_msg, msg, lan_addr,
2246 memcpy(recv_msg->msg_data, smi_msg->data,
2247 smi_msg->data_size);
2249 recv_msg->msg.data_len = smi_msg->data_size;
2286 struct ipmi_smi_msg *smi_msg;
2311 smi_msg = supplied_smi;
2313 smi_msg = ipmi_alloc_smi_msg();
2314 if (smi_msg == NULL) {
2341 rv = i_ipmi_req_sysintf(intf, addr, msgid, msg, smi_msg,
2344 rv = i_ipmi_req_ipmb(intf, addr, msgid, msg, smi_msg, recv_msg,
2348 rv = i_ipmi_req_ipmb_direct(intf, addr, msgid, msg, smi_msg,
2351 rv = i_ipmi_req_lan(intf, addr, msgid, msg, smi_msg, recv_msg,
2361 ipmi_free_smi_msg(smi_msg);
2365 smi_msg->data_size, smi_msg->data);
2367 smi_send(intf, intf->handlers, smi_msg, priority);
4758 struct ipmi_smi_msg *smi_msg;
4767 smi_msg = list_entry(intf->waiting_rcv_msgs.next,
4769 list_del(&smi_msg->link);
4773 rv = handle_one_recv_msg(intf, smi_msg);
4784 list_add(&smi_msg->link, &intf->waiting_rcv_msgs);
4789 ipmi_free_smi_msg(smi_msg);
4933 struct ipmi_smi_msg *smi_msg = ipmi_alloc_smi_msg();
4934 if (!smi_msg)
4941 memcpy(smi_msg->data, recv_msg->msg.data, recv_msg->msg.data_len);
4942 smi_msg->data_size = recv_msg->msg.data_len;
4943 smi_msg->msgid = STORE_SEQ_IN_MSGID(seq, seqid);
4946 smi_msg->data_size, smi_msg->data);
4948 return smi_msg;
4984 struct ipmi_smi_msg *smi_msg;
4995 smi_msg = smi_from_recv_msg(intf, ent->recv_msg, slot,
4997 if (!smi_msg) {
5024 smi_send(intf, intf->handlers, smi_msg, 0);
5026 ipmi_free_smi_msg(smi_msg);
5233 struct ipmi_smi_msg smi_msg;
5237 smi_msg.done = dummy_smi_done_handler;
5246 &smi_msg,