In reply to MichaelSong:
You can’t dereference a svOpenArrayHandle as an array. You need to use ‘svGetArrayElemPtr()’ to get the data pointers for each array element. Refer to section H.12.4 of the LRM.
int tb_sm_io(const svOpenArrayHandle data_buf_ref,int device_addr,int size,int direction)
{
unsigned int *pay_load_data[3];
pay_load_data[0] = (unsigned int *)svGetArrElemPtr(data_buf_ref, 0);
pay_load_data[1] = (unsigned int *)svGetArrElemPtr(data_buf_ref, 1);
pay_load_data[2] = (unsigned int *)svGetArrElemPtr(data_buf_ref, 2);
cdump(*pay_load_data[0]);
cdump(*pay_load_data[1]);
cdump(*pay_load_data[2]);
return 0;
}