static inline int
ubx_get_u8 (uint8_t *ptr, uint8_t *v)
{
  *v = *ptr;
  return 1;
}

static inline int
ubx_get_i8 (uint8_t *ptr, int8_t *v)
{
  *v = (int8_t) * ptr;
  return 1;
}


static inline int
ubx_get_u16 (uint8_t *ptr, uint16_t *v)
{
  memcpy (v, ptr, sizeof (*v));
  return sizeof (*v);
}

static inline int
ubx_get_u32 (uint8_t *ptr, uint32_t *v)
{
  memcpy (v, ptr, sizeof (*v));
  return sizeof (*v);
}

static inline int
ubx_get_i32 (uint8_t *ptr, int32_t *v)
{
  memcpy (v, ptr, sizeof (*v));
  return sizeof (*v);
}


static inline int
ubx_put_i8 (uint8_t *ptr, int8_t v)
{
  memcpy (ptr, &v, sizeof (v));
  return sizeof (v);
}

static inline int
ubx_put_u8 (uint8_t *ptr, uint8_t v)
{
  *ptr = v;
  return sizeof (v);
}

static inline int
ubx_put_i16 (uint8_t *ptr, int16_t v)
{
  memcpy (ptr, &v, sizeof (v));
  return sizeof (v);
}


static inline int
ubx_put_u16 (uint8_t *ptr, uint16_t v)
{
  memcpy (ptr, &v, sizeof (v));
  return sizeof (v);
}

static inline int
ubx_put_u32 (uint8_t *ptr, uint32_t v)
{
  memcpy (ptr, &v, sizeof (v));
  return sizeof (v);
}

static inline int
ubx_put_i32 (uint8_t *ptr, int32_t v)
{
  memcpy (ptr, &v, sizeof (v));
  return sizeof (v);
}