|
@@ -260,6 +260,7 @@ static const struct starpu_data_copy_methods vector_cpp_copy_data_methods_s =
|
|
static void register_vector_cpp_handle(starpu_data_handle_t handle, unsigned home_node, void *data_interface);
|
|
static void register_vector_cpp_handle(starpu_data_handle_t handle, unsigned home_node, void *data_interface);
|
|
static starpu_ssize_t allocate_vector_cpp_buffer_on_node(void *data_interface_, unsigned dst_node);
|
|
static starpu_ssize_t allocate_vector_cpp_buffer_on_node(void *data_interface_, unsigned dst_node);
|
|
static void *vector_cpp_to_pointer(void *data_interface, unsigned node);
|
|
static void *vector_cpp_to_pointer(void *data_interface, unsigned node);
|
|
|
|
+static void *vector_cpp_pointer_is_inside(void *data_interface, unsigned node, void *ptr);
|
|
static void free_vector_cpp_buffer_on_node(void *data_interface, unsigned node);
|
|
static void free_vector_cpp_buffer_on_node(void *data_interface, unsigned node);
|
|
static void free_vector_cpp_buffer_on_node(void *data_interface, unsigned node);
|
|
static void free_vector_cpp_buffer_on_node(void *data_interface, unsigned node);
|
|
static size_t vector_cpp_interface_get_size(starpu_data_handle_t handle);
|
|
static size_t vector_cpp_interface_get_size(starpu_data_handle_t handle);
|
|
@@ -278,6 +279,7 @@ static struct starpu_data_interface_ops interface_vector_cpp_ops =
|
|
.free_data_on_node = free_vector_cpp_buffer_on_node,
|
|
.free_data_on_node = free_vector_cpp_buffer_on_node,
|
|
.copy_methods = &vector_cpp_copy_data_methods_s,
|
|
.copy_methods = &vector_cpp_copy_data_methods_s,
|
|
.to_pointer = vector_cpp_to_pointer,
|
|
.to_pointer = vector_cpp_to_pointer,
|
|
|
|
+ .pointer_is_inside = vector_cpp_pointer_is_inside,
|
|
.get_size = vector_cpp_interface_get_size,
|
|
.get_size = vector_cpp_interface_get_size,
|
|
.footprint = footprint_vector_cpp_interface_crc32,
|
|
.footprint = footprint_vector_cpp_interface_crc32,
|
|
.compare = vector_cpp_compare,
|
|
.compare = vector_cpp_compare,
|
|
@@ -300,6 +302,7 @@ static struct starpu_data_interface_ops interface_vector_cpp_ops =
|
|
free_vector_cpp_buffer_on_node,
|
|
free_vector_cpp_buffer_on_node,
|
|
&vector_cpp_copy_data_methods_s,
|
|
&vector_cpp_copy_data_methods_s,
|
|
vector_cpp_to_pointer,
|
|
vector_cpp_to_pointer,
|
|
|
|
+ vector_cpp_pointer_is_inside,
|
|
vector_cpp_interface_get_size,
|
|
vector_cpp_interface_get_size,
|
|
footprint_vector_cpp_interface_crc32,
|
|
footprint_vector_cpp_interface_crc32,
|
|
vector_cpp_compare,
|
|
vector_cpp_compare,
|
|
@@ -324,6 +327,15 @@ static void *vector_cpp_to_pointer(void *data_interface, unsigned node)
|
|
return (void*) vector_interface->ptr;
|
|
return (void*) vector_interface->ptr;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+static int vector_cpp_pointer_is_inside(void *data_interface, unsigned node, void *ptr)
|
|
|
|
+{
|
|
|
|
+ (void) node;
|
|
|
|
+ struct vector_cpp_interface *vector_interface = (struct vector_cpp_interface *) data_interface;
|
|
|
|
+
|
|
|
|
+ return ptr >= vector_interface->ptr &&
|
|
|
|
+ ptr < vector_interface->ptr + vector_interface->nx*vector_interface->elemsize;
|
|
|
|
+}
|
|
|
|
+
|
|
static void register_vector_cpp_handle(starpu_data_handle_t handle, unsigned home_node, void *data_interface)
|
|
static void register_vector_cpp_handle(starpu_data_handle_t handle, unsigned home_node, void *data_interface)
|
|
{
|
|
{
|
|
struct vector_cpp_interface *vector_interface = (struct vector_cpp_interface *) data_interface;
|
|
struct vector_cpp_interface *vector_interface = (struct vector_cpp_interface *) data_interface;
|