Lines Matching +full:load +full:- +full:reduced
20 * PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED.
32 * Functions to program the SDR repository, from built-in sensors or
71 /* This was formerly initialized to 24, reduced this to 19 so the overall
72 message fits into the recommended 32-byte limit */
81 rsp = intf->sendrecv(intf, req); in partial_send()
83 return -1; in partial_send()
86 if (rsp->ccode || rsp->data_len < 2) { in partial_send()
87 return -1; in partial_send()
90 *id = rsp->data[0] + (rsp->data[1] << 8); in partial_send()
102 int len = sdrr->length; in ipmi_sdr_add_record()
106 if (len < 1 || !sdrr->raw) { in ipmi_sdr_add_record()
113 return -1; in ipmi_sdr_add_record()
119 return -1; in ipmi_sdr_add_record()
121 sdr_rq->reserve_id = reserve_id; in ipmi_sdr_add_record()
122 sdr_rq->in_progress = PARTIAL_ADD; in ipmi_sdr_add_record()
130 sdr_rq->id = 0; in ipmi_sdr_add_record()
131 sdr_rq->offset = 0; in ipmi_sdr_add_record()
132 sdr_rq->data[0] = sdrr->id & 0xFF; in ipmi_sdr_add_record()
133 sdr_rq->data[1] = (sdrr->id >> 8) & 0xFF; in ipmi_sdr_add_record()
134 sdr_rq->data[2] = sdrr->version; in ipmi_sdr_add_record()
135 sdr_rq->data[3] = sdrr->type; in ipmi_sdr_add_record()
136 sdr_rq->data[4] = sdrr->length; in ipmi_sdr_add_record()
137 req.msg.data_len = 5 + sizeof(*sdr_rq) - 1; in ipmi_sdr_add_record()
143 return -1; in ipmi_sdr_add_record()
151 if ( (len - i) <= sdr_max_write_len) { in ipmi_sdr_add_record()
153 data_len = len - i; in ipmi_sdr_add_record()
154 sdr_rq->in_progress = LAST_RECORD; in ipmi_sdr_add_record()
159 sdr_rq->id = id; in ipmi_sdr_add_record()
160 sdr_rq->offset = i + 5; in ipmi_sdr_add_record()
161 memcpy(sdr_rq->data, sdrr->raw + i, data_len); in ipmi_sdr_add_record()
162 req.msg.data_len = data_len + sizeof(*sdr_rq) - 1; in ipmi_sdr_add_record()
187 return -1; in ipmi_sdr_repo_clear()
203 rsp = intf->sendrecv(intf, &req); in ipmi_sdr_repo_clear()
206 return -1; in ipmi_sdr_repo_clear()
208 if (rsp->ccode > 0) { in ipmi_sdr_repo_clear()
210 val2str(rsp->ccode, completion_code_vals)); in ipmi_sdr_repo_clear()
211 return -1; in ipmi_sdr_repo_clear()
213 if ((rsp->data[0] & 1) == 1) { in ipmi_sdr_repo_clear()
223 return -1; in ipmi_sdr_repo_clear()
234 * Fill the SDR repository from built-in sensors
247 queue->head = NULL; in sdrr_get_records()
248 queue->tail = NULL; in sdrr_get_records()
256 return -1; in sdrr_get_records()
260 sdrr->id = header->id; in sdrr_get_records()
261 sdrr->version = header->version; in sdrr_get_records()
262 sdrr->type = header->type; in sdrr_get_records()
263 sdrr->length = header->length; in sdrr_get_records()
264 sdrr->raw = ipmi_sdr_get_record(intf, header, itr); in sdrr_get_records()
265 (void)ipmi_sdr_print_name_from_rawentry(intf, sdrr->id, sdrr->type,sdrr->raw); in sdrr_get_records()
268 if (queue->head == NULL) in sdrr_get_records()
269 queue->head = sdrr; in sdrr_get_records()
271 queue->tail->next = sdrr; in sdrr_get_records()
272 queue->tail = sdrr; in sdrr_get_records()
288 intf->target_addr = from_addr; in sdr_copy_to_sdrr()
295 printf("Load SDRs from 0x%x\n", from_addr); in sdr_copy_to_sdrr()
301 intf->target_addr = to_addr; in sdr_copy_to_sdrr()
303 sdrr_next = sdrr->next; in sdr_copy_to_sdrr()
306 lprintf(LOG_ERR, "Cannot add SDR ID 0x%04x to repository...", sdrr->id); in sdr_copy_to_sdrr()
320 int myaddr = intf->target_addr; in ipmi_sdr_add_from_sensors()
324 return -1; in ipmi_sdr_add_from_sensors()
327 /* First fill the SDRR from local built-in sensors */ in ipmi_sdr_add_from_sensors()
337 rc = -1; in ipmi_sdr_add_from_sensors()
346 int rc = -1; in ipmi_hex_to_dec()
361 retValue += ((strchar[2]-'0') * 16); in ipmi_hex_to_dec()
365 retValue += (((strchar[2]-'a') + 10) * 16); in ipmi_hex_to_dec()
369 retValue += (((strchar[2]-'A') + 10) * 16); in ipmi_hex_to_dec()
373 rc = -1; in ipmi_hex_to_dec()
378 retValue += ((strchar[3]-'0')); in ipmi_hex_to_dec()
382 retValue += (((strchar[3]-'a') + 10)); in ipmi_hex_to_dec()
386 retValue += (((strchar[3]-'A') + 10)); in ipmi_hex_to_dec()
390 rc = -1; in ipmi_hex_to_dec()
411 int rc = -1; in ipmi_parse_range_list()
447 rangeString = strstr( inProcessString, "-" ); in ipmi_parse_range_list()
517 int myaddr = intf->target_addr; in ipmi_sdr_add_from_list()
525 lprintf(LOG_ERR, "Range - List invalid, cannot be parsed."); in ipmi_sdr_add_from_list()
526 return -1; in ipmi_sdr_add_from_list()
531 printf("List to scan: (Built-in) "); in ipmi_sdr_add_from_list()
543 return -1; in ipmi_sdr_add_from_list()
546 /* First fill the SDRR from local built-in sensors */ in ipmi_sdr_add_from_list()
547 printf("Sanning built-in sensors..\n"); in ipmi_sdr_add_from_list()
559 rc = -1; in ipmi_sdr_add_from_list()
581 queue->head = NULL; in ipmi_sdr_read_records()
582 queue->tail = NULL; in ipmi_sdr_read_records()
585 return -1; in ipmi_sdr_read_records()
601 rc = -1; in ipmi_sdr_read_records()
604 sdrr->id = (binHdr[1] << 8) | binHdr[0]; // LS Byte first in ipmi_sdr_read_records()
605 sdrr->version = binHdr[2]; in ipmi_sdr_read_records()
606 sdrr->type = binHdr[3]; in ipmi_sdr_read_records()
607 sdrr->length = binHdr[4]; in ipmi_sdr_read_records()
609 if ((sdrr->raw = malloc(sdrr->length)) == NULL) { in ipmi_sdr_read_records()
613 rc = -1; in ipmi_sdr_read_records()
617 if (read(fd, sdrr->raw, sdrr->length) != sdrr->length) { in ipmi_sdr_read_records()
619 free(sdrr->raw); in ipmi_sdr_read_records()
620 sdrr->raw = NULL; in ipmi_sdr_read_records()
623 rc = -1; in ipmi_sdr_read_records()
628 if (queue->head == NULL) in ipmi_sdr_read_records()
629 queue->head = sdrr; in ipmi_sdr_read_records()
631 queue->tail->next = sdrr; in ipmi_sdr_read_records()
632 queue->tail = sdrr; in ipmi_sdr_read_records()
652 return -1; in ipmi_sdr_add_from_file()
657 sdrr_next = sdrr->next; in ipmi_sdr_add_from_file()
660 lprintf(LOG_ERR, "Cannot add SDR ID 0x%04x to repository...", sdrr->id); in ipmi_sdr_add_from_file()