21 const size_t requested_size =
sizeof(double) * length;
23 if (*buffer != NULL) {
24 if ((*buffer)->size >= requested_size) {
32 (*buffer)->size = requested_size;
33 (*buffer)->host_buffer = NULL;
34 (*buffer)->device_buffer = NULL;
35 #if defined(__OFFLOAD)
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;
55 #if defined(__OFFLOAD)
69 assert(NULL != buffer);
subroutine, public offload_activate_chosen_device()
Activates the device selected via offload_set_chosen_device()
void offload_free_buffer(offload_buffer *buffer)
Deallocate given buffer.
double * offload_get_buffer_host_pointer(offload_buffer *buffer)
Returns a pointer to the host buffer.
void offload_create_buffer(const int length, offload_buffer **buffer)
Allocates a buffer of given length, ie., number of elements.
Internal representation of a buffer.