浏览代码

copyright, correct bugs, add disk.c to compile

Corentin Salingue 12 年之前
父节点
当前提交
4907bacc01
共有 2 个文件被更改,包括 22 次插入19 次删除
  1. 1 0
      src/Makefile.am
  2. 21 19
      src/core/disk.c

+ 1 - 0
src/Makefile.am

@@ -140,6 +140,7 @@ libstarpu_@STARPU_EFFECTIVE_VERSION@_la_SOURCES = 						\
 	core/debug.c						\
 	core/errorcheck.c					\
 	core/progress_hook.c					\
+	core/disk.c						\
 	core/dependencies/cg.c					\
 	core/dependencies/dependencies.c			\
 	core/dependencies/implicit_data_deps.c			\

+ 21 - 19
src/core/disk.c

@@ -1,8 +1,6 @@
 /* StarPU --- Runtime system for heterogeneous multicore architectures.
  *
- * Copyright (C) 2009-2013  Université de Bordeaux 1
- * Copyright (C) 2010, 2011, 2012, 2013 Centre National de la Recherche Scientifique
- * Copyright (C) 2011  INRIA
+ * Copyright (C) 2013 Corentin Salingue
  *
  * StarPU is free software; you can redistribute it and/or modify
  * it under the terms of the GNU Lesser General Public License as published by
@@ -28,31 +26,32 @@
 #include <profiling/profiling.h>
 #include <common/uthash.h>
 
-typedef (void *) (*disk_function)(void *, unsigned);
-static void add_disk_in_list(unsigned node, char * src, disk_ops func);
+typedef void * (*disk_function)(void *, unsigned);
 
 /* list of functions to use on disk */
-typedef struct disk_ops {
+struct disk_ops {
 	disk_function alloc;
 	disk_function free;
 	disk_function read;
 	disk_function write;
 	disk_function open;
-} disk_ops;
+};
 
 
-typedef struct disk_register {
+struct disk_register {
 	unsigned node;
 	char * src;
-	disk_ops functions;
-} disk_register;
+	struct disk_ops * functions;
+};
 
-static disk_register * disk_register_list = NULL;
+static void add_disk_in_list(unsigned node, char * src, struct disk_ops * func);
+
+static struct disk_register ** disk_register_list = NULL;
 static int disk_number = -1;
 static int size_register_list = 2;
 
 unsigned
-starpu_disk_register(char * src, disk_ops func)
+starpu_disk_register(char * src, struct disk_ops * func)
 {
 
 	unsigned memory_node = _starpu_memory_node_register(STARPU_DISK_RAM, 0);
@@ -60,7 +59,7 @@ starpu_disk_register(char * src, disk_ops func)
 	_starpu_register_bus(STARPU_MAIN_RAM, memory_node);
 	_starpu_register_bus(memory_node, STARPU_MAIN_RAM);
 
-	add_disk_in_list(node,src,func);
+	add_disk_in_list(memory_node,src,func);
 
 	return memory_node;
 }
@@ -70,10 +69,11 @@ starpu_disk_free(unsigned node)
 {
 
 	bool find = false;
-	for (int i = 0; i < disk_number; ++i)
+	int i;
+	for (i = 0; i < disk_number; ++i)
 	{
 		if (find)
-			disk_register_list[i-1] = disk_register[i];
+			disk_register_list[i-1] = disk_register_list[i];
 		if (disk_register_list[i]->node == node)
 		{
 			free(disk_register_list[i]);
@@ -90,18 +90,18 @@ starpu_disk_free(unsigned node)
 	}
 }
 
-static void add_disk_in_list(unsigned node, char * src, disk_ops func)
+static void add_disk_in_list(unsigned node, char * src, struct disk_ops * func)
 {
 	/* initialization */
 	if(disk_register_list == NULL)
 	{
-		disk_register_list = malloc(size_register_list*sizeof(disk_register));
+		disk_register_list = malloc(size_register_list*sizeof(struct disk_register *));
 		STARPU_ASSERT(disk_register_list != NULL);
 	}
 	/* small size -> new size  */
 	if((disk_number+1) > size_register_list)
 	{
-		disk_register * ptr_realloc = realloc(disk_register_list, 2*size_register_list*sizeof(disk_register));
+		struct disk_register ** ptr_realloc = realloc(disk_register_list, 2*size_register_list*sizeof(struct disk_register *));
  
 		if (ptr_realloc != NULL)
 		{
@@ -113,10 +113,12 @@ static void add_disk_in_list(unsigned node, char * src, disk_ops func)
 			STARPU_ASSERT(ptr_realloc != NULL);
 		}
 	}
-	disk_register dr = malloc(sizeof(struct disk_register));
+	struct disk_register * dr = malloc(sizeof(struct disk_register));
 	STARPU_ASSERT(dr != NULL);
 	dr->node = node;
 	dr->src = src;
 	dr->functions = func;
 	disk_register_list[disk_number++] = dr;
 }
+
+