uint32_t serial_msg_get_counter2() { // Make sure the message in buffer is of correct type, otherwise return 0 if( AM_SERIAL_MSG == in_packet.am_type ) { test_serial_msg_t* p_packet_data = (test_serial_msg_t*)p_in_buffer; return endian_swap32( p_packet_data->counter2 ); } return 0; }
static int parse_hex_vector(const char *str, uint32_t *vector_values, bool endian_swap) { const char *c = str; int lane; int digit; uint32_t lane_value; for (lane = NUM_VECTOR_LANES - 1; lane >= 0 && *c; lane--) { lane_value = 0; for (digit = 0; digit < 8; digit++) { if (*c >= '0' && *c <= '9') lane_value = (lane_value << 4) | (uint32_t) (*c - '0'); else if (*c >= 'a' && *c <= 'f') lane_value = (lane_value << 4) | (uint32_t) (*c - 'a' + 10); else if (*c >= 'A' && *c <= 'F') lane_value = (lane_value << 4) | (uint32_t) (*c - 'A' + 10); else { printf("bad character %c in hex vector\n", *c); return -1; } if (*c == '\0') { printf("Error parsing hex vector\n"); break; } else c++; } vector_values[lane] = endian_swap ? endian_swap32(lane_value) : lane_value; } return 0; }