Lines Matching refs:fru

71 											struct fru_info fru, struct fru_header header,
75 fru_area_print_multirec_bloc(struct ipmi_intf * intf, struct fru_info * fru,
78 read_fru_area(struct ipmi_intf * intf, struct fru_info *fru, uint8_t id,
230 build_fru_bloc(struct ipmi_intf * intf, struct fru_info *fru, uint8_t id) in build_fru_bloc() argument
299 p_bloc->size = fru->size; in build_fru_bloc()
313 p_new->size = fru->size - p_new->start; in build_fru_bloc()
334 if (fru->access && (off & 1)) { in build_fru_bloc()
341 if (read_fru_area(intf, fru, id, off, 5, in build_fru_bloc()
355 p_new->size = fru->size - p_new->start; in build_fru_bloc()
371 } while (!(rec_hdr.format & 0x80) && (off < fru->size)); in build_fru_bloc()
375 if (fru->size > off) { in build_fru_bloc()
386 p_new->size = fru->size - p_new->start; in build_fru_bloc()
424 write_fru_area(struct ipmi_intf * intf, struct fru_info *fru, uint8_t id, in write_fru_area() argument
436 if (finish > fru->size) in write_fru_area()
442 if (fru->access && ((doffset & 1) || (length & 1))) { in write_fru_area()
447 t_ipmi_fru_bloc * fru_bloc = build_fru_bloc(intf, fru, id); in write_fru_area()
456 if (fru->max_write_size == 0) { in write_fru_area()
472 fru->max_write_size = 255; in write_fru_area()
475 fru->max_write_size = max_rq_size - 3; in write_fru_area()
479 if (fru->access) { in write_fru_area()
480 fru->max_write_size &= ~1; in write_fru_area()
504 if (tmp > fru->max_write_size) { in write_fru_area()
505 writeLength = fru->max_write_size; in write_fru_area()
514 if (fru->access) { in write_fru_area()
519 if (fru->access) { in write_fru_area()
541 if (fru->max_write_size > 8) { in write_fru_area()
542 fru->max_write_size -= 8; in write_fru_area()
544 fru->max_write_size); in write_fru_area()
598 read_fru_area(struct ipmi_intf * intf, struct fru_info *fru, uint8_t id, in read_fru_area() argument
606 if (offset > fru->size) { in read_fru_area()
608 offset, fru->size); in read_fru_area()
613 if (finish > fru->size) { in read_fru_area()
614 finish = fru->size; in read_fru_area()
626 if (fru->max_read_size == 0) { in read_fru_area()
641 fru->max_read_size = 255; in read_fru_area()
644 fru->max_read_size = max_rs_size - 1; in read_fru_area()
648 if (fru->access) { in read_fru_area()
649 fru->max_read_size &= ~1; in read_fru_area()
654 tmp = fru->access ? off >> 1 : off; in read_fru_area()
659 if (tmp > fru->max_read_size) in read_fru_area()
660 msg_data[3] = (uint8_t)fru->max_read_size; in read_fru_area()
673 && fru->max_read_size > 8) { in read_fru_area()
674 if (fru->max_read_size > 32) { in read_fru_area()
676 fru->max_read_size -= 8; in read_fru_area()
679 fru->max_read_size--; in read_fru_area()
683 fru->max_read_size); in read_fru_area()
692 tmp = fru->access ? rsp->data[0] << 1 : rsp->data[0]; in read_fru_area()
724 read_fru_area_section(struct ipmi_intf * intf, struct fru_info *fru, uint8_t id, in read_fru_area_section() argument
733 if (offset > fru->size) { in read_fru_area_section()
735 offset, fru->size); in read_fru_area_section()
740 if (finish > fru->size) { in read_fru_area_section()
741 finish = fru->size; in read_fru_area_section()
756 if (fru->access && fru_data_rqst_size > 16) in read_fru_area_section()
760 tmp = fru->access ? off >> 1 : off; in read_fru_area_section()
789 tmp = fru->access ? rsp->data[0] << 1 : rsp->data[0]; in read_fru_area_section()
809 fru_area_print_multirec_bloc(struct ipmi_intf * intf, struct fru_info * fru, in fru_area_print_multirec_bloc() argument
820 fru_data = malloc(fru->size + 1); in fru_area_print_multirec_bloc()
826 memset(fru_data, 0, fru->size + 1); in fru_area_print_multirec_bloc()
834 len = fru->size - last_off; in fru_area_print_multirec_bloc()
838 if (read_fru_area(intf, fru, id, last_off, len, fru_data) < 0) in fru_area_print_multirec_bloc()
878 fru_area_print_chassis(struct ipmi_intf * intf, struct fru_info * fru, in fru_area_print_chassis() argument
889 if (read_fru_area(intf, fru, id, offset, 2, tmp) == 0) { in fru_area_print_chassis()
906 if (read_fru_area(intf, fru, id, offset, fru_len, fru_data) < 0) { in fru_area_print_chassis()
975 fru_area_print_board(struct ipmi_intf * intf, struct fru_info * fru, in fru_area_print_board() argument
988 if (read_fru_area(intf, fru, id, offset, 2, tmp) == 0) { in fru_area_print_board()
1005 if (read_fru_area(intf, fru, id, offset, fru_len, fru_data) < 0) { in fru_area_print_board()
1099 fru_area_print_product(struct ipmi_intf * intf, struct fru_info * fru, in fru_area_print_product() argument
1110 if (read_fru_area(intf, fru, id, offset, 2, tmp) == 0) { in fru_area_print_product()
1128 if (read_fru_area(intf, fru, id, offset, fru_len, fru_data) < 0) { in fru_area_print_product()
1234 fru_area_print_multirec(struct ipmi_intf * intf, struct fru_info * fru, in fru_area_print_multirec() argument
1259 if (read_fru_area(intf, fru, id, last_off, sizeof(*h), fru_data) < 0) { in fru_area_print_multirec()
1263 if (h->len && read_fru_area(intf, fru, id, in fru_area_print_multirec()
2841 struct fru_info fru; in __ipmi_fru_print() local
2845 memset(&fru, 0, sizeof(struct fru_info)); in __ipmi_fru_print()
2871 memset(&fru, 0, sizeof(fru)); in __ipmi_fru_print()
2872 fru.size = (rsp->data[1] << 8) | rsp->data[0]; in __ipmi_fru_print()
2873 fru.access = rsp->data[2] & 0x1; in __ipmi_fru_print()
2876 fru.size, fru.access ? "words" : "bytes"); in __ipmi_fru_print()
2878 if (fru.size < 1) { in __ipmi_fru_print()
2879 lprintf(LOG_ERR, " Invalid FRU size %d", fru.size); in __ipmi_fru_print()
2943 fru_area_print_chassis(intf, &fru, id, header.offset.chassis*8); in __ipmi_fru_print()
2947 fru_area_print_board(intf, &fru, id, header.offset.board*8); in __ipmi_fru_print()
2951 fru_area_print_product(intf, &fru, id, header.offset.product*8); in __ipmi_fru_print()
2958 fru_area_print_multirec(intf, &fru, id, header.offset.multi*8); in __ipmi_fru_print()
2971 ipmi_fru_print(struct ipmi_intf * intf, struct sdr_record_fru_locator * fru) in ipmi_fru_print() argument
2979 if (fru == NULL) in ipmi_fru_print()
2999 if (fru->dev_type != 0x10 && in ipmi_fru_print()
3000 (fru->dev_type_modifier != 0x02 || in ipmi_fru_print()
3001 fru->dev_type < 0x08 || fru->dev_type > 0x0f)) in ipmi_fru_print()
3004 if (fru->dev_slave_addr == IPMI_BMC_SLAVE_ADDR && in ipmi_fru_print()
3005 fru->device_id == 0) in ipmi_fru_print()
3009 memcpy(desc, fru->id_string, fru->id_code & 0x01f); in ipmi_fru_print()
3010 desc[fru->id_code & 0x01f] = 0; in ipmi_fru_print()
3011 printf("FRU Device Description : %s (ID %d)\n", desc, fru->device_id); in ipmi_fru_print()
3013 switch (fru->dev_type_modifier) { in ipmi_fru_print()
3016 if (BRIDGE_TO_SENSOR(intf, fru->dev_slave_addr, in ipmi_fru_print()
3017 fru->channel_num)) { in ipmi_fru_print()
3020 intf->target_addr = fru->dev_slave_addr; in ipmi_fru_print()
3022 intf->target_channel = fru->channel_num; in ipmi_fru_print()
3025 rc = __ipmi_fru_print(intf, fru->device_id); in ipmi_fru_print()
3032 rc = ipmi_spd_print_fru(intf, fru->device_id); in ipmi_fru_print()
3038 fru->device_id, fru->dev_type, in ipmi_fru_print()
3039 fru->dev_type_modifier); in ipmi_fru_print()
3059 struct sdr_record_fru_locator * fru; in ipmi_fru_print_all() local
3146 fru = (struct sdr_record_fru_locator *) in ipmi_fru_print_all()
3148 if (fru == NULL || !fru->logical) { in ipmi_fru_print_all()
3149 if (fru) { in ipmi_fru_print_all()
3150 free(fru); in ipmi_fru_print_all()
3151 fru = NULL; in ipmi_fru_print_all()
3155 rc = ipmi_fru_print(intf, fru); in ipmi_fru_print_all()
3156 free(fru); in ipmi_fru_print_all()
3157 fru = NULL; in ipmi_fru_print_all()
3184 struct fru_info fru; in ipmi_fru_read_to_bin() local
3206 memset(&fru, 0, sizeof(fru)); in ipmi_fru_read_to_bin()
3207 fru.size = (rsp->data[1] << 8) | rsp->data[0]; in ipmi_fru_read_to_bin()
3208 fru.access = rsp->data[2] & 0x1; in ipmi_fru_read_to_bin()
3211 printf("Fru Size = %d bytes\n",fru.size); in ipmi_fru_read_to_bin()
3212 printf("Fru Access = %xh\n", fru.access); in ipmi_fru_read_to_bin()
3215 pFruBuf = malloc(fru.size); in ipmi_fru_read_to_bin()
3217 printf("Fru Size : %d bytes\n",fru.size); in ipmi_fru_read_to_bin()
3218 read_fru_area(intf, &fru, fruId, 0, fru.size, pFruBuf); in ipmi_fru_read_to_bin()
3220 lprintf(LOG_ERR, "Cannot allocate %d bytes\n", fru.size); in ipmi_fru_read_to_bin()
3229 fwrite(pFruBuf, fru.size, 1, pFile); in ipmi_fru_read_to_bin()
3250 struct fru_info fru; in ipmi_fru_write_from_bin() local
3274 memset(&fru, 0, sizeof(fru)); in ipmi_fru_write_from_bin()
3275 fru.size = (rsp->data[1] << 8) | rsp->data[0]; in ipmi_fru_write_from_bin()
3276 fru.access = rsp->data[2] & 0x1; in ipmi_fru_write_from_bin()
3279 printf("Fru Size = %d bytes\n", fru.size); in ipmi_fru_write_from_bin()
3280 printf("Fru Access = %xh\n", fru.access); in ipmi_fru_write_from_bin()
3283 pFruBuf = malloc(fru.size); in ipmi_fru_write_from_bin()
3285 lprintf(LOG_ERR, "Cannot allocate %d bytes\n", fru.size); in ipmi_fru_write_from_bin()
3291 len = fread(pFruBuf, 1, fru.size, pFile); in ipmi_fru_write_from_bin()
3292 printf("Fru Size : %d bytes\n", fru.size); in ipmi_fru_write_from_bin()
3300 write_fru_area(intf, &fru, fruId,0, 0, len, pFruBuf); in ipmi_fru_write_from_bin()
3349 struct fru_info fru; in ipmi_fru_edit_multirec() local
3368 memset(&fru, 0, sizeof(struct fru_info)); in ipmi_fru_edit_multirec()
3394 memset(&fru, 0, sizeof(fru)); in ipmi_fru_edit_multirec()
3395 fru.size = (rsp->data[1] << 8) | rsp->data[0]; in ipmi_fru_edit_multirec()
3396 fru.access = rsp->data[2] & 0x1; in ipmi_fru_edit_multirec()
3399 fru.size, fru.access ? "words" : "bytes"); in ipmi_fru_edit_multirec()
3401 if (fru.size < 1) { in ipmi_fru_edit_multirec()
3402 lprintf(LOG_ERR, " Invalid FRU size %d", fru.size); in ipmi_fru_edit_multirec()
3418 memset(&fru, 0, sizeof(fru)); in ipmi_fru_edit_multirec()
3419 fru_data = malloc(fru.size + 1); in ipmi_fru_edit_multirec()
3424 memset(fru_data, 0, fru.size + 1); in ipmi_fru_edit_multirec()
3432 len = fru.size - last_off; in ipmi_fru_edit_multirec()
3436 if (read_fru_area(intf, &fru, id, last_off, len, fru_data) < 0) in ipmi_fru_edit_multirec()
3482 write_fru_area(intf,&fru,id, i,i, in ipmi_fru_edit_multirec()
3491 write_fru_area(intf,&fru,id, i,i, in ipmi_fru_edit_multirec()
3552 struct fru_info fru; in ipmi_fru_get_multirec() local
3571 memset(&fru, 0, sizeof(struct fru_info)); in ipmi_fru_get_multirec()
3597 memset(&fru, 0, sizeof(fru)); in ipmi_fru_get_multirec()
3598 fru.size = (rsp->data[1] << 8) | rsp->data[0]; in ipmi_fru_get_multirec()
3599 fru.access = rsp->data[2] & 0x1; in ipmi_fru_get_multirec()
3602 fru.size, fru.access ? "words" : "bytes"); in ipmi_fru_get_multirec()
3604 if (fru.size < 1) { in ipmi_fru_get_multirec()
3605 lprintf(LOG_ERR, " Invalid FRU size %d", fru.size); in ipmi_fru_get_multirec()
3621 fru_data = malloc(fru.size + 1); in ipmi_fru_get_multirec()
3626 memset(fru_data, 0, fru.size + 1); in ipmi_fru_get_multirec()
3634 len = fru.size - last_off; in ipmi_fru_get_multirec()
3638 if (read_fru_area(intf, &fru, id, last_off, len, fru_data) < 0) in ipmi_fru_get_multirec()
4028 struct fru_info * fru, in ipmi_fru_get_internal_use_info() argument
4041 memset(fru, 0, sizeof(struct fru_info)); in ipmi_fru_get_internal_use_info()
4067 memset(&fru, 0, sizeof(fru)); in ipmi_fru_get_internal_use_info()
4068 fru->size = (rsp->data[1] << 8) | rsp->data[0]; in ipmi_fru_get_internal_use_info()
4069 fru->access = rsp->data[2] & 0x1; in ipmi_fru_get_internal_use_info()
4072 fru->size, fru->access ? "words" : "bytes"); in ipmi_fru_get_internal_use_info()
4074 if (fru->size < 1) { in ipmi_fru_get_internal_use_info()
4075 lprintf(LOG_ERR, " Invalid FRU size %d", fru->size); in ipmi_fru_get_internal_use_info()
4155 (* size) = (fru->size - (* offset)); in ipmi_fru_get_internal_use_info()
4173 struct fru_info fru; in ipmi_fru_info_internal_use() local
4178 rc = ipmi_fru_get_internal_use_info(intf, id, &fru, &size, &offset); in ipmi_fru_info_internal_use()
4216 struct fru_info fru; in ipmi_fru_read_internal_use() local
4221 rc = ipmi_fru_get_internal_use_info(intf, id, &fru, &size, &offset); in ipmi_fru_read_internal_use()
4233 rc = read_fru_area_section(intf, &fru, id, offset, size, frubuf); in ipmi_fru_read_internal_use()
4292 struct fru_info fru; in ipmi_fru_write_internal_use() local
4297 rc = ipmi_fru_get_internal_use_info(intf, id, &fru, &size, &offset); in ipmi_fru_write_internal_use()
4340 rc = write_fru_area(intf, &fru, id, 0, offset, size, frubuf); in ipmi_fru_write_internal_use()
4619 struct fru_info fru; in ipmi_fru_set_field_string() local
4652 memset(&fru, 0, sizeof(fru)); in ipmi_fru_set_field_string()
4653 fru.size = (rsp->data[1] << 8) | rsp->data[0]; in ipmi_fru_set_field_string()
4654 fru.access = rsp->data[2] & 0x1; in ipmi_fru_set_field_string()
4656 if (fru.size < 1) { in ipmi_fru_set_field_string()
4657 printf(" Invalid FRU size %d", fru.size); in ipmi_fru_set_field_string()
4703 fru_data = malloc( fru.size ); in ipmi_fru_set_field_string()
4717 read_fru_area(intf ,&fru, fruId, header_offset , 3 , fru_data); in ipmi_fru_set_field_string()
4724 read_fru_area(intf ,&fru, fruId, header_offset , 3 , fru_data); in ipmi_fru_set_field_string()
4731 read_fru_area(intf ,&fru, fruId, header_offset , 3 , fru_data); in ipmi_fru_set_field_string()
4741 memset(fru_data, 0, fru.size); in ipmi_fru_set_field_string()
4742 if( read_fru_area(intf ,&fru, fruId, header_offset , in ipmi_fru_set_field_string()
4784 if( write_fru_area(intf, &fru, fruId, 0, in ipmi_fru_set_field_string()
4795 ipmi_fru_set_field_string_rebuild(intf,fruId,fru,header,f_type,f_index,f_string) in ipmi_fru_set_field_string()
4847 struct fru_info fru, struct fru_header header, in ipmi_fru_set_field_string_rebuild() argument
4863 fru_data_old = calloc( fru.size, sizeof(uint8_t) ); in ipmi_fru_set_field_string_rebuild()
4865 fru_data_new = malloc( fru.size ); in ipmi_fru_set_field_string_rebuild()
4877 printf("Fru Size : %u bytes\n", fru.size); in ipmi_fru_set_field_string_rebuild()
4880 read_fru_area(intf ,&fru, fruId, 0, fru.size , fru_data_old); in ipmi_fru_set_field_string_rebuild()
4888 memcpy(fru_data_new, fru_data_old, fru.size); in ipmi_fru_set_field_string_rebuild()
5083 fru.size - remaining_offset in ipmi_fru_set_field_string_rebuild()
5091 fru.size - ((header.offset.product * 8) + product_len_new) in ipmi_fru_set_field_string_rebuild()
5181 if( write_fru_area( intf, &fru, fruId, 0, 0, fru.size, fru_data_new ) < 0 ) in ipmi_fru_set_field_string_rebuild()