unsigned_from_signed
r = unsigned_from_signed(p->data, p->data_size, val, val_size);
return unsigned_from_signed(val, val_size, p->data, p->data_size);