21 const size_t requested_size =
sizeof(double) * length;
23 if (*buffer != NULL) {
24 if ((*buffer)->size >= requested_size) {
27 offload_free_buffer(*buffer);
32 (*buffer)->size = requested_size;
33 (*buffer)->host_buffer = NULL;
34 (*buffer)->device_buffer = NULL;
36 offload_activate_chosen_device();
37 offloadMallocHost((
void **)&(*buffer)->host_buffer, requested_size);
38 offloadMalloc((
void **)&(*buffer)->device_buffer, requested_size);
40 (*buffer)->host_buffer = malloc(requested_size);
41 (*buffer)->device_buffer = NULL;
43 if (NULL == (*buffer)->host_buffer) {
44 (*buffer)->host_buffer = (*buffer)->device_buffer;