25 const size_t requested_size =
sizeof(double) * length;
27 if (*buffer != NULL) {
28#if !defined(OFFLOAD_BUFFER_MEMPOOL)
29 if ((*buffer)->size >= requested_size) {
34 offload_free_buffer(*buffer);
39 assert(NULL != *buffer);
40 (*buffer)->size = requested_size;
41 (*buffer)->host_buffer = NULL;
42 (*buffer)->device_buffer = NULL;
43#if defined(OFFLOAD_BUFFER_MEMPOOL)
46#elif defined(__OFFLOAD)
47 offload_activate_chosen_device();
48 offloadMallocHost((
void **)&(*buffer)->host_buffer, requested_size);
49 offloadMalloc((
void **)&(*buffer)->device_buffer, requested_size);
51 (*buffer)->host_buffer = malloc(requested_size);
52 (*buffer)->device_buffer = NULL;
54 if (NULL == (*buffer)->host_buffer) {
55 (*buffer)->host_buffer = (*buffer)->device_buffer;