Browse Source

add functions to manipulate memory disk

Corentin Salingue 12 years ago
parent
commit
2b7f9dee16
2 changed files with 22 additions and 3 deletions
  1. 4 0
      include/starpu_disk.h
  2. 18 3
      src/core/disk.c

+ 4 - 0
include/starpu_disk.h

@@ -50,4 +50,8 @@ void * starpu_disk_alloc (unsigned node, size_t size);
 
 void starpu_disk_free (unsigned node, void *obj, size_t size);
 
+ssize_t starpu_disk_read(unsigned node, void *obj, void *buf, off_t offset, size_t size);
+
+ssize_t starpu_disk_write(unsigned node, void *obj, const void *buf, off_t offset, size_t size);
+
 #endif /* __STARPU_DISK_H__ */

+ 18 - 3
src/core/disk.c

@@ -107,20 +107,35 @@ starpu_disk_unregister(unsigned node)
 /* interface between user and disk memory */
 
 void *  
-starpu_disk_alloc (unsigned node, size_t size)
+starpu_disk_alloc(unsigned node, size_t size)
 {
 	int pos = get_location_with_node(node);
 	return disk_register_list[pos]->functions->alloc(disk_register_list[pos]->base, size);
 }
 
 void
-starpu_disk_free (unsigned node, void *obj, size_t size)
+starpu_disk_free(unsigned node, void *obj, size_t size)
 {
 	int pos = get_location_with_node(node);
 	disk_register_list[pos]->functions->free(disk_register_list[pos]->base, obj, size);
 }
 
 
+ssize_t 
+starpu_disk_read(unsigned node, void *obj, void *buf, off_t offset, size_t size)
+{
+	int pos = get_location_with_node(node);
+	return disk_register_list[pos]->functions->read(disk_register_list[pos]->base, obj, buf, offset, size);
+}
+
+
+ssize_t 
+starpu_disk_write(unsigned node, void *obj, const void *buf, off_t offset, size_t size)
+{
+	int pos = get_location_with_node(node);
+	return disk_register_list[pos]->functions->write(disk_register_list[pos]->base, obj, buf, offset, size);
+}
+
 
 static void 
 add_disk_in_list(unsigned node,  struct disk_ops * func, void * base)
@@ -167,7 +182,7 @@ get_location_with_node(unsigned node)
 }
 
 
-/* use STDIO to write on disk */
+/* ------------------- use STDIO to write on disk -------------------  */
 
 struct starpu_stdio_obj {
 	int descriptor;