| 
					
				 | 
			
			
				@@ -18,33 +18,29 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 #ifndef __STARPU_DISK_H__ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 #define __STARPU_DISK_H__ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-/* list of functions to use on disk */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-struct starpu_disk_ops { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 	 void *  (*alloc)  (void *base, size_t size); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	 void    (*free)   (void *base, void *obj, size_t size); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	 void *  (*open)   (void *base, void *pos, size_t size);     /* open an existing file */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	 void    (*close)  (void *base, void *obj, size_t size); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	ssize_t  (*read)   (void *base, void *obj, void *buf, off_t offset, size_t size);        /* ~= pread */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	ssize_t  (*write)  (void *base, void *obj, const void *buf, off_t offset, size_t size);  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	/* readv, writev, read2d, write2d, etc. */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	 void *  (*plug)   (void *parameter); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	 void    (*unplug) (void *base); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	  int    (*copy)   (void *base_src, void* obj_src, off_t offset_src,  void *base_dst, void* obj_dst, off_t offset_dst, size_t size); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	  int    (*bandwidth) (unsigned node); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+struct starpu_disk_ops 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	void *  (*alloc)  (void *base, size_t size); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	void    (*free)   (void *base, void *obj, size_t size); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	void *  (*open)   (void *base, void *pos, size_t size); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	void    (*close)  (void *base, void *obj, size_t size); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	ssize_t  (*read)   (void *base, void *obj, void *buf, off_t offset, size_t size); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	ssize_t  (*write)  (void *base, void *obj, const void *buf, off_t offset, size_t size); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	void *  (*plug)   (void *parameter); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	void    (*unplug) (void *base); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	int    (*copy)   (void *base_src, void* obj_src, off_t offset_src,  void *base_dst, void* obj_dst, off_t offset_dst, size_t size); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	int    (*bandwidth) (unsigned node); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 /* Posix functions to use disk memory */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 extern struct starpu_disk_ops starpu_disk_stdio_ops; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 extern struct starpu_disk_ops starpu_disk_unistd_ops; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 extern struct starpu_disk_ops starpu_disk_unistd_o_direct_ops; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-/*functions to add an existing memory */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 void starpu_disk_close(unsigned node, void *obj, size_t size); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 void * starpu_disk_open(unsigned node, void *pos, size_t size); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-/* interface to create and to free a memory disk */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 int starpu_disk_register(struct starpu_disk_ops * func, void *parameter, size_t size); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 #endif /* __STARPU_DISK_H__ */ 
			 |