Ejemplo n.º 1
0
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;
}
Ejemplo n.º 2
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;
}