Lines Matching full:record

63  * Mfg.ID, 1 byte of Picmg record Id, and
162 { 0x04, "Backplane Point to Point Connectivity Record" },
163 { 0x10, "Address Table Record" },
164 { 0x11, "Shelf Power Distribution Record" },
165 { 0x12, "Shelf Activation and Power Management Record" },
166 { 0x13, "Shelf Manager IP Connection Record" },
167 { 0x14, "Board Point to Point Connectivity Record" },
168 { 0x15, "Radial IPMB-0 Link Mapping Record" },
169 { 0x16, "Module Current Requirements Record" },
170 { 0x17, "Carrier Activation and Power Management Record" },
171 { 0x18, "Carrier Point-to-Point Connectivity Record" },
172 { 0x19, "AdvancedMC Point-to-Point Connectivity Record" },
174 { 0x1b, "Shelf Fan Geography Record" },
175 { 0x2c, "Carrier Clock Point-to-Point Connectivity Record" },
176 { 0x2d, "Clock Configuration Record" },
214 static void ipmi_ek_add_record2list( struct ipmi_ek_multi_header ** record,
218 static void ipmi_ek_display_record( struct ipmi_ek_multi_header * record,
223 struct ipmi_ek_multi_header * record,
242 struct ipmi_ek_multi_header * record );
244 static int ipmi_ek_create_amc_p2p_record( struct ipmi_ek_multi_header * record,
270 struct ipmi_ek_multi_header * record,
295 struct ipmi_ek_multi_header * record );
305 struct ipmi_ek_multi_header * record );
308 struct ipmi_ek_multi_header * record );
311 struct ipmi_ek_multi_header * record );
314 struct ipmi_ek_multi_header * record );
317 struct ipmi_ek_multi_header * record );
320 struct ipmi_ek_multi_header * record );
323 struct ipmi_ek_multi_header * record );
326 struct ipmi_ek_multi_header * record );
329 struct ipmi_ek_multi_header * record );
332 struct ipmi_ek_multi_header * record );
335 struct ipmi_ek_multi_header * record );
338 struct ipmi_ek_multi_header * record );
341 struct ipmi_ek_multi_header * record );
344 struct ipmi_ek_multi_header * record );
465 /* list des multi record */ in ipmi_ekanalyzer_main()
510 /* Display FRU header info in detail record */ in ipmi_ekanalyzer_main()
512 /* Convert from binary data into multi record structure */ in ipmi_ekanalyzer_main()
516 /* Remove record of list */ in ipmi_ekanalyzer_main()
521 printf("record has been removed!\n"); in ipmi_ekanalyzer_main()
680 /* list of multi record */ in ipmi_ekanalyzer_print()
736 /*Destroy the list of record*/ in ipmi_ekanalyzer_print()
743 * reach the last record in ipmi_ekanalyzer_print()
746 printf("Record list has been removed successfully\n"); in ipmi_ekanalyzer_print()
768 * using carrier p2p connectivity record
772 * Input: struct ipmi_ek_multi_header* record: a pointer to the carrier p2p
773 * connectivity record.
779 * Return: return 0 on success and -1 if the record doesn't exist.
783 ipmi_ek_display_carrier_connectivity(struct ipmi_ek_multi_header *record) in ipmi_ek_display_carrier_connectivity() argument
788 if (record == NULL) { in ipmi_ek_display_carrier_connectivity()
789 lprintf(LOG_ERR, "P2P connectivity record is invalid\n"); in ipmi_ek_display_carrier_connectivity()
795 " record starting from mfg id\n"); in ipmi_ek_display_carrier_connectivity()
796 for (k = 0; k < (record->header.len); k++) { in ipmi_ek_display_carrier_connectivity()
797 printf("%02x ", record->data[k]); in ipmi_ek_display_carrier_connectivity()
801 while (offset <= (record->header.len - START_DATA_OFFSET)) { in ipmi_ek_display_carrier_connectivity()
802 rsc_desc.resource_id = record->data[offset++]; in ipmi_ek_display_carrier_connectivity()
803 rsc_desc.p2p_count = record->data[offset++]; in ipmi_ek_display_carrier_connectivity()
830 data[0] = record->data[offset + 0]; in ipmi_ek_display_carrier_connectivity()
831 data[1] = record->data[offset + 1]; in ipmi_ek_display_carrier_connectivity()
832 data[2] = record->data[offset + 2]; in ipmi_ek_display_carrier_connectivity()
834 data[0] = record->data[offset + 2]; in ipmi_ek_display_carrier_connectivity()
835 data[1] = record->data[offset + 1]; in ipmi_ek_display_carrier_connectivity()
836 data[2] = record->data[offset + 0]; in ipmi_ek_display_carrier_connectivity()
863 * using current management record. If the display option equal to all,
878 * Return: return 0 on success and -1 if the record doesn't exist.
888 /*list des multi record*/ in ipmi_ek_display_power()
943 * Carrier Activation and Current Management Record in ipmi_ek_display_power()
988 /*Destroy the list of record*/ in ipmi_ek_display_power()
995 printf("Record list has been removed successfully\n"); in ipmi_ek_display_power()
1012 * of carrier activation record
1073 * Return: return TRUE on success and FALSE if the record doesn't exist.
1127 /*list des multi record*/ in ipmi_ekanalyzer_ekeying_match()
1150 /*Get Carrier p2p connectivity record for physical check*/ in ipmi_ekanalyzer_ekeying_match()
1198 printf("Record list has been removed successfully\n"); in ipmi_ekanalyzer_ekeying_match()
1218 * index1: position of the first record in the list of the record
1219 * index2: position of the second record in the list of the record
1221 * linked list that contain FRU multi record
1223 * linked list that contain FRU multi record
1226 * pphysical: a pointer that contain a carrier p2p connectivity record
1233 * Return: return OK_STATUS on success and ERROR_STATUS if the record doesn't
1243 struct ipmi_ek_multi_header * record; in ipmi_ek_matching_process() local
1254 /*Calculate record size for Carrier file*/ in ipmi_ek_matching_process()
1255 for ( record=list_head[index1]; record != NULL;record = record->next ){ in ipmi_ek_matching_process()
1256 if ( record->data[PICMG_ID_OFFSET] == FRU_AMC_P2P ){ in ipmi_ek_matching_process()
1260 /*Calculate record size for amc file*/ in ipmi_ek_matching_process()
1261 for ( record=list_head[index2]; record != NULL;record = record->next){ in ipmi_ek_matching_process()
1262 if ( record->data[PICMG_ID_OFFSET] == FRU_AMC_P2P ){ in ipmi_ek_matching_process()
1279 for (record=list_head[index2]; record != NULL;record = record->next){ in ipmi_ek_matching_process()
1280 if ( record->data[PICMG_ID_OFFSET] == FRU_AMC_P2P ){ in ipmi_ek_matching_process()
1281 result = ipmi_ek_create_amc_p2p_record( record, in ipmi_ek_matching_process()
1315 printf("No amc record is found!\n"); in ipmi_ek_matching_process()
1328 * carrier point-to-point connectivity record according to the
1335 * Input: record1: is an AMC p2p record for an AMC module
1336 * record2 is an AMC p2p record for an On-Carrier record or an AMC module
1354 struct ipmi_ek_multi_header * record, in ipmi_ek_check_physical_connectivity() argument
1359 if ( record == NULL ){ in ipmi_ek_check_physical_connectivity()
1370 /* Get the physical connectivity record */ in ipmi_ek_check_physical_connectivity()
1371 while ( index < record->header.len ) { in ipmi_ek_check_physical_connectivity()
1372 rsc_desc.resource_id = record->data[index++]; in ipmi_ek_check_physical_connectivity()
1373 rsc_desc.p2p_count = record->data[index++]; in ipmi_ek_check_physical_connectivity()
1374 /* carrier p2p record starts with on-carrier device */ in ipmi_ek_check_physical_connectivity()
1387 index, port_desc, record ); in ipmi_ek_check_physical_connectivity()
1392 else{ /* carrier p2p record starts with AMC module */ in ipmi_ek_check_physical_connectivity()
1409 index, port_desc, record ); in ipmi_ek_check_physical_connectivity()
1417 /*If the record doesn't contain the same AMC site number in command in ipmi_ek_check_physical_connectivity()
1418 * line, go to the next record in ipmi_ek_check_physical_connectivity()
1520 printf("Invalid Carrier p2p connectivity record\n"); in ipmi_ek_check_physical_connectivity()
1537 * amc p2p connectiviy record
1541 * Input: record1: is an AMC p2p record for an AMC module
1542 * record2 is an AMC p2p record for an On-Carrier record or an AMC module
1732 * carrier point-to-point connectivity record. The comparison is
1763 /* carrier p2p record start with AMC_MODULE as local port */ in ipmi_ek_compare_channel_descriptor()
1808 /* carrier p2p record start with Carrier as local port */ in ipmi_ek_compare_channel_descriptor()
1861 * amc p2p connectiviy record
1865 * Input: record1: AMC p2p connectivity record of the 1rst AMC or Carrier Module
1866 * index1: index of AMC link descriptor in 1rst record
1867 * record2: AMC p2p connectivity record of the 2nd AMC or Carrier Module
1868 * index1: index of AMC link descriptor in 2nd record
2046 * Description: Display the link descriptor of an AMC p2p connectivity record
2141 * Description: Display the oem guid of an AMC p2p connectivity record
2145 * Input: amc_record: AMC p2p connectivity record
2182 * Description: this function create an AMC point 2 point connectivity record
2187 * Input: record: a pointer to FRU multi record
2189 * Output: amc_record: a pointer to the created AMC p2p record
2193 * Return: Return OK_STATUS on success, or ERROR_STATUS if no record has been
2198 ipmi_ek_create_amc_p2p_record(struct ipmi_ek_multi_header *record, in ipmi_ek_create_amc_p2p_record() argument
2204 amc_record->guid_count = record->data[index_data++]; in ipmi_ek_create_amc_p2p_record()
2212 &record->data[index_data], in ipmi_ek_create_amc_p2p_record()
2216 amc_record->rsc_id = record->data[index_data++]; in ipmi_ek_create_amc_p2p_record()
2217 amc_record->ch_count = record->data[index_data++]; in ipmi_ek_create_amc_p2p_record()
2219 amc_record->link_desc_count = ((record->header.len) - 8 - in ipmi_ek_create_amc_p2p_record()
2224 amc_record->rsc_id = record->data[index_data++]; in ipmi_ek_create_amc_p2p_record()
2225 amc_record->ch_count = record->data[index_data++]; in ipmi_ek_create_amc_p2p_record()
2227 amc_record->link_desc_count = ((record->header.len) - 8 - in ipmi_ek_create_amc_p2p_record()
2240 data = record->data[index_data] | in ipmi_ek_create_amc_p2p_record()
2241 (record->data[index_data + 1] << 8) | in ipmi_ek_create_amc_p2p_record()
2242 (record->data[index_data + 2] << 16); in ipmi_ek_create_amc_p2p_record()
2262 data[0] = record->data[index_data] | in ipmi_ek_create_amc_p2p_record()
2263 (record->data[index_data + 1] << 8) | in ipmi_ek_create_amc_p2p_record()
2264 (record->data[index_data + 2] << 16) | in ipmi_ek_create_amc_p2p_record()
2265 (record->data[index_data + 3] << 24); in ipmi_ek_create_amc_p2p_record()
2267 data[1] = record->data[index_data + 4]; in ipmi_ek_create_amc_p2p_record()
2294 * connectivity record.
2300 * record: a pointer to FRU multi record
2306 * Return: Return index that indicates the current position of data in record.
2312 struct ipmi_ek_multi_header *record) in ipmi_ek_get_resource_descriptor() argument
2316 memcpy(&port_desc[num_port], &record->data[index], in ipmi_ek_get_resource_descriptor()
2580 * Description: this function displays detail format of product info area record
2806 * Description: this function displays detail format of product info area record
2912 * Description: this function displays FRU multi record information.
2916 * Input: record: a pointer to current record
2928 ipmi_ek_display_record(struct ipmi_ek_multi_header *record, in ipmi_ek_display_record() argument
2939 for (record = list_head; record != NULL; record = record->next) { in ipmi_ek_display_record()
2940 printf("Record Type ID: 0x%02x\n", record->header.type); in ipmi_ek_display_record()
2941 printf("Record Format version: 0x%02x\n", in ipmi_ek_display_record()
2942 record->header.format); in ipmi_ek_display_record()
2943 if (record->header.len <= PICMG_ID_OFFSET) { in ipmi_ek_display_record()
2946 /* In picmg3.0 specification, picmg record in ipmi_ek_display_record()
2954 picmg_id = record->data[PICMG_ID_OFFSET]; in ipmi_ek_display_record()
2956 record->data[2], record->data[1], in ipmi_ek_display_record()
2957 record->data[0]); in ipmi_ek_display_record()
2960 printf("Picmg record ID: Unsupported {0x%02x}\n", picmg_id); in ipmi_ek_display_record()
2962 printf("Picmg record ID: %s {0x%02x}\n", in ipmi_ek_display_record()
2968 ipmi_ek_display_backplane_p2p_record (record); in ipmi_ek_display_record()
2971 ipmi_ek_display_address_table_record (record); in ipmi_ek_display_record()
2974 ipmi_ek_display_shelf_power_distribution_record (record); in ipmi_ek_display_record()
2977 ipmi_ek_display_shelf_activation_record (record); in ipmi_ek_display_record()
2980 ipmi_ek_display_shelf_ip_connection_record (record); in ipmi_ek_display_record()
2983 ipmi_ek_display_board_p2p_record (record); in ipmi_ek_display_record()
2986 ipmi_ek_display_radial_ipmb0_record (record); in ipmi_ek_display_record()
2989 ipmi_ek_display_amc_current_record (record); in ipmi_ek_display_record()
2992 ipmi_ek_display_amc_activation_record (record); in ipmi_ek_display_record()
2995 ipmi_ek_display_carrier_connectivity (record); in ipmi_ek_display_record()
2998 ipmi_ek_display_amc_p2p_record (record); in ipmi_ek_display_record()
3001 ipmi_ek_display_amc_carrier_info_record (record); in ipmi_ek_display_record()
3004 ipmi_ek_display_clock_carrier_p2p_record (record); in ipmi_ek_display_record()
3007 ipmi_ek_display_clock_config_record (record); in ipmi_ek_display_record()
3013 record->header.type, in ipmi_ek_display_record()
3014 record->header.format, in ipmi_ek_display_record()
3015 record->header.len, in ipmi_ek_display_record()
3016 record->header.record_checksum, in ipmi_ek_display_record()
3017 record->header.header_checksum); in ipmi_ek_display_record()
3018 for (i = 0; i < record->header.len; i++) { in ipmi_ek_display_record()
3019 printf("%02x ", record->data[i]); in ipmi_ek_display_record()
3033 * Description: this function displays backplane p2p record.
3037 * Input: record: a pointer to current record to be displayed
3047 ipmi_ek_display_backplane_p2p_record(struct ipmi_ek_multi_header *record) in ipmi_ek_display_backplane_p2p_record() argument
3052 (struct fru_picmgext_slot_desc*)&record->data[offset]; in ipmi_ek_display_backplane_p2p_record()
3055 while (offset <= record->header.len) { in ipmi_ek_display_backplane_p2p_record()
3085 (struct fru_picmgext_chn_desc *)&record->data[offset]; in ipmi_ek_display_backplane_p2p_record()
3097 slot_d = (struct fru_picmgext_slot_desc*)&record->data[offset]; in ipmi_ek_display_backplane_p2p_record()
3106 * Description: this function displays address table record.
3110 * Input: record: a pointer to current record to be displayed
3120 ipmi_ek_display_address_table_record(struct ipmi_ek_multi_header *record) in ipmi_ek_display_address_table_record() argument
3127 printf(" Type/Len: 0x%02x\n", record->data[offset++]); in ipmi_ek_display_address_table_record()
3130 printf("0x%02x ", record->data[offset++]); in ipmi_ek_display_address_table_record()
3133 entries = record->data[offset++]; in ipmi_ek_display_address_table_record()
3137 record->data[offset+0], in ipmi_ek_display_address_table_record()
3138 record->data[offset+1], in ipmi_ek_display_address_table_record()
3139 record->data[offset+2]); in ipmi_ek_display_address_table_record()
3148 * Description: this function displays shelf power distribution record.
3152 * Input: record: a pointer to current record to be displayed
3163 struct ipmi_ek_multi_header *record) in ipmi_ek_display_shelf_power_distribution_record() argument
3170 feeds = record->data[offset++]; in ipmi_ek_display_shelf_power_distribution_record()
3176 max_ext = record->data[offset+0] in ipmi_ek_display_shelf_power_distribution_record()
3177 | (record->data[offset+1] << 8); in ipmi_ek_display_shelf_power_distribution_record()
3181 max_int = record->data[offset+0] in ipmi_ek_display_shelf_power_distribution_record()
3182 | (record->data[offset+1] << 8); in ipmi_ek_display_shelf_power_distribution_record()
3187 (record->data[offset++] / 2)); in ipmi_ek_display_shelf_power_distribution_record()
3188 entries = record->data[offset++]; in ipmi_ek_display_shelf_power_distribution_record()
3191 printf("\tHW: 0x%02x", record->data[offset++]); in ipmi_ek_display_shelf_power_distribution_record()
3192 printf("\tFRU ID: 0x%02x\n", record->data[offset++]); in ipmi_ek_display_shelf_power_distribution_record()
3201 * Description: this function displays shelf activation record.
3205 * Input: record: a pointer to current record to be displayed
3215 ipmi_ek_display_shelf_activation_record(struct ipmi_ek_multi_header *record) in ipmi_ek_display_shelf_activation_record() argument
3221 record->data[offset++]); in ipmi_ek_display_shelf_activation_record()
3222 count = record->data[offset++]; in ipmi_ek_display_shelf_activation_record()
3227 record->data[offset++]); in ipmi_ek_display_shelf_activation_record()
3229 record->data[offset++]); in ipmi_ek_display_shelf_activation_record()
3231 (record->data[offset+0] in ipmi_ek_display_shelf_activation_record()
3232 | (record->data[offset+1]<<8))); in ipmi_ek_display_shelf_activation_record()
3235 record->data[offset++]); in ipmi_ek_display_shelf_activation_record()
3244 * Description: this function displays shelf ip connection record.
3249 * Input: record: a pointer to current record to be displayed
3259 ipmi_ek_display_shelf_ip_connection_record(struct ipmi_ek_multi_header *record) in ipmi_ek_display_shelf_ip_connection_record() argument
3262 if (ioffset > record->header.len) { in ipmi_ek_display_shelf_ip_connection_record()
3264 record->data[ioffset+0], in ipmi_ek_display_shelf_ip_connection_record()
3265 record->data[ioffset+1], in ipmi_ek_display_shelf_ip_connection_record()
3266 record->data[ioffset+2], in ipmi_ek_display_shelf_ip_connection_record()
3267 record->data[ioffset+3]); in ipmi_ek_display_shelf_ip_connection_record()
3270 if (ioffset > record->header.len) { in ipmi_ek_display_shelf_ip_connection_record()
3272 record->data[ioffset+0], in ipmi_ek_display_shelf_ip_connection_record()
3273 record->data[ioffset+1], in ipmi_ek_display_shelf_ip_connection_record()
3274 record->data[ioffset+2], in ipmi_ek_display_shelf_ip_connection_record()
3275 record->data[ioffset+3]); in ipmi_ek_display_shelf_ip_connection_record()
3278 if (ioffset > record->header.len) { in ipmi_ek_display_shelf_ip_connection_record()
3280 record->data[ioffset+0], in ipmi_ek_display_shelf_ip_connection_record()
3281 record->data[ioffset+1], in ipmi_ek_display_shelf_ip_connection_record()
3282 record->data[ioffset+2], in ipmi_ek_display_shelf_ip_connection_record()
3283 record->data[ioffset+3]); in ipmi_ek_display_shelf_ip_connection_record()
3292 * Description: this function displays shelf fan geography record.
3297 * Input: record: a pointer to current record to be displayed
3307 ipmi_ek_display_shelf_fan_geography_record(struct ipmi_ek_multi_header *record) in ipmi_ek_display_shelf_fan_geography_record() argument
3312 fan_count = record->data[ioffset]; in ipmi_ek_display_shelf_fan_geography_record()
3315 while ((fan_count > 0) && (ioffset <= record->header.len)) { in ipmi_ek_display_shelf_fan_geography_record()
3317 record->data[ioffset], in ipmi_ek_display_shelf_fan_geography_record()
3318 record->data[ioffset+1], in ipmi_ek_display_shelf_fan_geography_record()
3319 record->data[ioffset+2], in ipmi_ek_display_shelf_fan_geography_record()
3320 record->data[ioffset+3]); in ipmi_ek_display_shelf_fan_geography_record()
3322 record->data[ioffset++]); in ipmi_ek_display_shelf_fan_geography_record()
3324 record->data[ioffset++]); in ipmi_ek_display_shelf_fan_geography_record()
3326 record->data[ioffset++]); in ipmi_ek_display_shelf_fan_geography_record()
3328 record->data[ioffset++]); in ipmi_ek_display_shelf_fan_geography_record()
3337 * Description: this function displays board pont-to-point record.
3341 * Input: record: a pointer to current record to be displayed
3351 ipmi_ek_display_board_p2p_record(struct ipmi_ek_multi_header *record) in ipmi_ek_display_board_p2p_record() argument
3357 guid_count = record->data[offset++]; in ipmi_ek_display_board_p2p_record()
3363 printf("%02x", record->data[offset+j]); in ipmi_ek_display_board_p2p_record()
3369 offset < record->header.len; in ipmi_ek_display_board_p2p_record()
3374 data = (record->data[offset+0]) in ipmi_ek_display_board_p2p_record()
3375 | (record->data[offset+1] << 8)\ in ipmi_ek_display_board_p2p_record()
3376 | (record->data[offset+2] << 16)\ in ipmi_ek_display_board_p2p_record()
3377 | (record->data[offset+3] << 24); in ipmi_ek_display_board_p2p_record()
3484 * Description: this function displays radial IPMB-0 record.
3488 * Input: record: a pointer to current record to be displayed
3498 ipmi_ek_display_radial_ipmb0_record(struct ipmi_ek_multi_header *record) in ipmi_ek_display_radial_ipmb0_record() argument
3505 printf("%02x %02x %02x h\n", record->data[offset], in ipmi_ek_display_radial_ipmb0_record()
3506 record->data[offset+1], record->data[offset+2]); in ipmi_ek_display_radial_ipmb0_record()
3508 printf("%02x %02x %02x h\n", record->data[offset+2], in ipmi_ek_display_radial_ipmb0_record()
3509 record->data[offset+1], record->data[offset]); in ipmi_ek_display_radial_ipmb0_record()
3515 printf("%02x %02x h\n", record->data[offset], in ipmi_ek_display_radial_ipmb0_record()
3516 record->data[offset+1]); in ipmi_ek_display_radial_ipmb0_record()
3518 printf("%02x %02x h\n", record->data[offset+1], in ipmi_ek_display_radial_ipmb0_record()
3519 record->data[offset]); in ipmi_ek_display_radial_ipmb0_record()
3523 record->data[offset++]); in ipmi_ek_display_radial_ipmb0_record()
3524 if (record->data[offset] < 1) { in ipmi_ek_display_radial_ipmb0_record()
3527 for (offset; offset < record->header.len;) { in ipmi_ek_display_radial_ipmb0_record()
3531 record->data[offset++]); in ipmi_ek_display_radial_ipmb0_record()
3532 printf("\tHub Info {0x%02x}: ", record->data[offset]); in ipmi_ek_display_radial_ipmb0_record()
3536 if ((record->data[offset] & 0x01) == 0x01) { in ipmi_ek_display_radial_ipmb0_record()
3538 } else if ((record->data[offset] & 0x02) == 0x02) { in ipmi_ek_display_radial_ipmb0_record()
3540 } else if ((record->data[offset] & 0x03) == 0x03) { in ipmi_ek_display_radial_ipmb0_record()
3546 entry_count = record->data[offset++]; in ipmi_ek_display_radial_ipmb0_record()
3550 record->data[offset++]); in ipmi_ek_display_radial_ipmb0_record()
3552 record->data[offset++]); in ipmi_ek_display_radial_ipmb0_record()
3562 * Description: this function displays AMC current record.
3566 * Input: record: a pointer to current record to be displayed
3576 ipmi_ek_display_amc_current_record(struct ipmi_ek_multi_header *record) in ipmi_ek_display_amc_current_record() argument
3579 current = record->data[START_DATA_OFFSET]; in ipmi_ek_display_amc_current_record()
3591 * record.
3595 * Input: record: a pointer to current record to be displayed
3605 ipmi_ek_display_amc_activation_record(struct ipmi_ek_multi_header *record) in ipmi_ek_display_amc_activation_record() argument
3610 max_current = record->data[offset]; in ipmi_ek_display_amc_activation_record()
3611 max_current |= record->data[++offset] << 8; in ipmi_ek_display_amc_activation_record()
3616 record->data[++offset]); in ipmi_ek_display_amc_activation_record()
3617 printf(" Descriptor Count: %i\n", record->data[++offset]); in ipmi_ek_display_amc_activation_record()
3618 for (++offset; (offset < record->header.len); offset += 3) { in ipmi_ek_display_amc_activation_record()
3620 (struct fru_picmgext_activation_record *)&record->data[offset]; in ipmi_ek_display_amc_activation_record()
3632 * Description: this function display amc p2p connectivity record in humain
3637 * Input: record: a pointer to current record to be displayed
3647 ipmi_ek_display_amc_p2p_record(struct ipmi_ek_multi_header *record) in ipmi_ek_display_amc_p2p_record() argument
3654 oem_count = record->data[index_data++]; in ipmi_ek_display_amc_p2p_record()
3660 printf("%02x", record->data[index_data++]); in ipmi_ek_display_amc_p2p_record()
3672 if ((record->data[index_data] & AMC_MODULE) == AMC_MODULE) { in ipmi_ek_display_amc_p2p_record()
3676 (record->data[index_data] & 0x0f)); in ipmi_ek_display_amc_p2p_record()
3679 ch_count = record->data[index_data++]; in ipmi_ek_display_amc_p2p_record()
3687 record->data[index_data+2], in ipmi_ek_display_amc_p2p_record()
3688 record->data[index_data+1], in ipmi_ek_display_amc_p2p_record()
3689 record->data[index_data]); in ipmi_ek_display_amc_p2p_record()
3690 data = record->data[index_data] in ipmi_ek_display_amc_p2p_record()
3691 | (record->data[index_data + 1] << 8) in ipmi_ek_display_amc_p2p_record()
3692 | (record->data[index_data + 2] << 16); in ipmi_ek_display_amc_p2p_record()
3701 while (index_data < record->header.len) { in ipmi_ek_display_amc_p2p_record()
3707 data[0] = record->data[index_data] in ipmi_ek_display_amc_p2p_record()
3708 | (record->data[index_data + 1] << 8) in ipmi_ek_display_amc_p2p_record()
3709 | (record->data[index_data + 2] << 16) in ipmi_ek_display_amc_p2p_record()
3710 | (record->data[index_data + 3] << 24); in ipmi_ek_display_amc_p2p_record()
3711 data[1] = record->data[index_data + 4]; in ipmi_ek_display_amc_p2p_record()
3784 * Input: record: a pointer to current record to be displayed
3794 ipmi_ek_display_amc_carrier_info_record(struct ipmi_ek_multi_header *record) in ipmi_ek_display_amc_carrier_info_record() argument
3800 extVersion = record->data[offset++]; in ipmi_ek_display_amc_carrier_info_record()
3801 siteCount = record->data[offset++]; in ipmi_ek_display_amc_carrier_info_record()
3807 printf("\tSite ID (%d): %s \n", record->data[offset], in ipmi_ek_display_amc_carrier_info_record()
3808 val2str(record->data[offset], ipmi_ekanalyzer_module_type)); in ipmi_ek_display_amc_carrier_info_record()
3820 * connectivity record.
3825 * Input: record: a pointer to current record to be displayed
3835 ipmi_ek_display_clock_carrier_p2p_record(struct ipmi_ek_multi_header *record) in ipmi_ek_display_clock_carrier_p2p_record() argument
3842 desc_count = record->data[offset++]; in ipmi_ek_display_clock_carrier_p2p_record()
3847 resource_id = record->data[offset++]; in ipmi_ek_display_clock_carrier_p2p_record()
3848 channel_count = record->data[offset++]; in ipmi_ek_display_clock_carrier_p2p_record()
3868 loc_channel = record->data[offset++]; in ipmi_ek_display_clock_carrier_p2p_record()
3869 rem_channel = record->data[offset++]; in ipmi_ek_display_clock_carrier_p2p_record()
3870 rem_resource = record->data[offset++]; in ipmi_ek_display_clock_carrier_p2p_record()
3893 * Description: this function displays clock configuration record.
3898 * Input: record: a pointer to current record to be displayed
3908 ipmi_ek_display_clock_config_record(struct ipmi_ek_multi_header *record) in ipmi_ek_display_clock_config_record() argument
3915 resource_id = record->data[offset++]; in ipmi_ek_display_clock_config_record()
3916 descr_count = record->data[offset++]; in ipmi_ek_display_clock_config_record()
3927 channel_id = record->data[offset++]; in ipmi_ek_display_clock_config_record()
3928 control = record->data[offset++]; in ipmi_ek_display_clock_config_record()
3933 indirect_cnt = record->data[offset++]; in ipmi_ek_display_clock_config_record()
3934 direct_cnt = record->data[offset++]; in ipmi_ek_display_clock_config_record()
3944 feature = record->data[offset++]; in ipmi_ek_display_clock_config_record()
3945 dep_chn_id = record->data[offset++]; in ipmi_ek_display_clock_config_record()
3960 feature = record->data[offset++]; in ipmi_ek_display_clock_config_record()
3961 family = record->data[offset++]; in ipmi_ek_display_clock_config_record()
3962 accuracy = record->data[offset++]; in ipmi_ek_display_clock_config_record()
3963 freq = (record->data[offset+0] << 0) in ipmi_ek_display_clock_config_record()
3964 | (record->data[offset+1] << 8) in ipmi_ek_display_clock_config_record()
3965 | (record->data[offset+2] << 16) in ipmi_ek_display_clock_config_record()
3966 | (record->data[offset+3] << 24); in ipmi_ek_display_clock_config_record()
3968 min_freq = (record->data[offset+0] << 0) in ipmi_ek_display_clock_config_record()
3969 | (record->data[offset+1] << 8) in ipmi_ek_display_clock_config_record()
3970 | (record->data[offset+2] << 16) in ipmi_ek_display_clock_config_record()
3971 | (record->data[offset+3] << 24); in ipmi_ek_display_clock_config_record()
3973 max_freq = (record->data[offset+0] << 0) in ipmi_ek_display_clock_config_record()
3974 | (record->data[offset+1] << 8) in ipmi_ek_display_clock_config_record()
3975 | (record->data[offset+2] << 16) in ipmi_ek_display_clock_config_record()
3976 | (record->data[offset+3] << 24); in ipmi_ek_display_clock_config_record()
3997 * FRU multi record
4002 * record: a pointer to current record
4039 lprintf(LOG_ERR, "There is no multi record in the file '%s'", in ipmi_ekanalyzer_fru_file2structure()
4076 lprintf(LOG_ERR, "Invalid Record Data!"); in ipmi_ekanalyzer_fru_file2structure()
4081 printf("Record %d has length = %02x\n", record_count, in ipmi_ekanalyzer_fru_file2structure()
4096 /* mask the 8th bits to see if it is the last record */ in ipmi_ekanalyzer_fru_file2structure()
4111 * Description: this function adds a sigle FRU multi record to a linked list of
4112 * FRU multi record.
4116 * Input/Output: record: a pointer to current record
4126 ipmi_ek_add_record2list(struct ipmi_ek_multi_header **record, in ipmi_ek_add_record2list() argument
4131 *list_head = *record; in ipmi_ek_add_record2list()
4132 (*record)->prev = NULL; in ipmi_ek_add_record2list()
4134 printf("Adding first record to list\n"); in ipmi_ek_add_record2list()
4137 (*list_last)->next = *record; in ipmi_ek_add_record2list()
4138 (*record)->prev = *list_last; in ipmi_ek_add_record2list()
4140 printf("Add 1 record to list\n"); in ipmi_ek_add_record2list()
4143 *list_last = *record; in ipmi_ek_add_record2list()
4144 (*record)->next = NULL; in ipmi_ek_add_record2list()
4151 * Description: this function removes a sigle FRU multi record from a linked
4152 * list of FRU multi record.
4156 * Input/Output: record: a pointer to record to be deleted
4166 ipmi_ek_remove_record_from_list(struct ipmi_ek_multi_header *record, in ipmi_ek_remove_record_from_list() argument
4170 if (record->prev == NULL) { in ipmi_ek_remove_record_from_list()
4171 *list_head = record->next; in ipmi_ek_remove_record_from_list()
4173 record->prev->next = record->next; in ipmi_ek_remove_record_from_list()
4175 if (record->next == NULL) { in ipmi_ek_remove_record_from_list()
4176 (*list_last) = record->prev; in ipmi_ek_remove_record_from_list()
4178 record->next->prev = record->prev; in ipmi_ek_remove_record_from_list()
4180 free(record); in ipmi_ek_remove_record_from_list()
4181 record = NULL; in ipmi_ek_remove_record_from_list()