Lines Matching refs:sid

82     SMBusIPMIDevice *sid = SMBUS_IPMI(ii);  in smbus_ipmi_handle_rsp()  local
84 if (sid->waiting_rsp == msg_id) { in smbus_ipmi_handle_rsp()
85 sid->waiting_rsp++; in smbus_ipmi_handle_rsp()
91 memcpy(sid->outmsg, rsp, rsp_len); in smbus_ipmi_handle_rsp()
92 sid->outlen = rsp_len; in smbus_ipmi_handle_rsp()
93 sid->outpos = 0; in smbus_ipmi_handle_rsp()
94 sid->currblk = 0; in smbus_ipmi_handle_rsp()
107 static void smbus_ipmi_send_msg(SMBusIPMIDevice *sid) in smbus_ipmi_send_msg() argument
109 uint8_t *msg = sid->inmsg; in smbus_ipmi_send_msg()
110 uint32_t len = sid->inlen; in smbus_ipmi_send_msg()
111 IPMIBmcClass *bk = IPMI_BMC_GET_CLASS(sid->bmc); in smbus_ipmi_send_msg()
113 sid->outlen = 0; in smbus_ipmi_send_msg()
114 sid->outpos = 0; in smbus_ipmi_send_msg()
115 sid->currblk = 0; in smbus_ipmi_send_msg()
120 sid->outmsg[0] = (IPMI_NETFN_APP + 1) << 2; in smbus_ipmi_send_msg()
121 sid->outmsg[1] = msg[1]; in smbus_ipmi_send_msg()
123 sid->outmsg[2] = IPMI_CC_REQUEST_DATA_LENGTH_INVALID; in smbus_ipmi_send_msg()
124 sid->outlen = 3; in smbus_ipmi_send_msg()
126 sid->outmsg[2] = IPMI_CC_INVALID_DATA_FIELD; in smbus_ipmi_send_msg()
127 sid->outlen = 3; in smbus_ipmi_send_msg()
129 sid->outmsg[2] = 0; in smbus_ipmi_send_msg()
130 sid->outmsg[3] = 0; in smbus_ipmi_send_msg()
131 sid->outmsg[4] = (2 << 6); /* Multi-part supported. */ in smbus_ipmi_send_msg()
132 sid->outmsg[5] = MAX_SSIF_IPMI_MSG_SIZE; in smbus_ipmi_send_msg()
133 sid->outmsg[6] = MAX_SSIF_IPMI_MSG_SIZE; in smbus_ipmi_send_msg()
134 sid->outlen = 7; in smbus_ipmi_send_msg()
139 bk->handle_command(sid->bmc, sid->inmsg, sid->inlen, sizeof(sid->inmsg), in smbus_ipmi_send_msg()
140 sid->waiting_rsp); in smbus_ipmi_send_msg()
145 SMBusIPMIDevice *sid = SMBUS_IPMI(dev); in ipmi_receive_byte() local
147 if (sid->outpos >= sizeof(sid->outbuf)) { in ipmi_receive_byte()
151 return sid->outbuf[sid->outpos++]; in ipmi_receive_byte()
154 static int ipmi_load_readbuf(SMBusIPMIDevice *sid) in ipmi_load_readbuf() argument
156 unsigned int block = sid->currblk, pos, len; in ipmi_load_readbuf()
158 if (sid->outlen == 0) { in ipmi_load_readbuf()
162 if (sid->outlen <= 32) { in ipmi_load_readbuf()
166 sid->outbuf[0] = sid->outlen; in ipmi_load_readbuf()
167 memcpy(sid->outbuf + 1, sid->outmsg, sid->outlen); in ipmi_load_readbuf()
168 sid->outpos = 0; in ipmi_load_readbuf()
173 sid->outbuf[0] = 32; in ipmi_load_readbuf()
174 sid->outbuf[1] = 0; in ipmi_load_readbuf()
175 sid->outbuf[2] = 1; in ipmi_load_readbuf()
176 memcpy(sid->outbuf + 3, sid->outmsg, 30); in ipmi_load_readbuf()
177 sid->outpos = 0; in ipmi_load_readbuf()
187 if (pos >= sid->outlen) { in ipmi_load_readbuf()
191 len = sid->outlen - pos; in ipmi_load_readbuf()
196 sid->outbuf[1] = block - 1; in ipmi_load_readbuf()
198 sid->outbuf[1] = 0xff; /* End of message marker. */ in ipmi_load_readbuf()
201 sid->outbuf[0] = len + 1; in ipmi_load_readbuf()
202 memcpy(sid->outbuf + 2, sid->outmsg + pos, len); in ipmi_load_readbuf()
203 sid->outpos = 0; in ipmi_load_readbuf()
209 SMBusIPMIDevice *sid = SMBUS_IPMI(dev); in ipmi_write_data() local
221 sid->currblk = 0; in ipmi_write_data()
222 ret = ipmi_load_readbuf(sid); in ipmi_write_data()
226 sid->currblk++; in ipmi_write_data()
227 ret = ipmi_load_readbuf(sid); in ipmi_write_data()
232 sid->currblk = buf[0]; in ipmi_write_data()
233 ret = ipmi_load_readbuf(sid); in ipmi_write_data()
260 memcpy(sid->inmsg, buf, len); in ipmi_write_data()
261 sid->inlen = len; in ipmi_write_data()
268 if (!sid->inlen) { in ipmi_write_data()
271 if (sid->inlen + len > MAX_SSIF_IPMI_MSG_SIZE) { in ipmi_write_data()
272 sid->inlen = 0; /* Discard the message. */ in ipmi_write_data()
285 memcpy(sid->inmsg + sid->inlen, buf, len); in ipmi_write_data()
287 sid->inlen += len; in ipmi_write_data()
291 if (send && sid->inlen) { in ipmi_write_data()
292 smbus_ipmi_send_msg(sid); in ipmi_write_data()
319 SMBusIPMIDevice *sid = SMBUS_IPMI(dev); in smbus_ipmi_realize() local
322 if (!sid->bmc) { in smbus_ipmi_realize()
327 sid->uuid = ipmi_next_uuid(); in smbus_ipmi_realize()
329 sid->bmc->intf = ii; in smbus_ipmi_realize()
334 SMBusIPMIDevice *sid = SMBUS_IPMI(obj); in smbus_ipmi_init() local
336 ipmi_bmc_find_and_link(obj, (Object **) &sid->bmc); in smbus_ipmi_init()
341 SMBusIPMIDevice *sid = SMBUS_IPMI(ii); in smbus_ipmi_get_fwinfo() local
347 info->i2c_slave_address = sid->bmc->slave_addr; in smbus_ipmi_get_fwinfo()
348 info->base_address = sid->parent.i2c.address; in smbus_ipmi_get_fwinfo()
351 info->uuid = sid->uuid; in smbus_ipmi_get_fwinfo()