2 * This file is part of DDEKit.
4 * (c) 2013 Maksym Planeta <mcsim.planeta@gmail.com>
5 * economic rights: Technische Universitaet Dresden (Germany)
7 * This file is part of TUD:OS and distributed under the terms of the
8 * GNU General Public License 2.
9 * Please see the COPYING-GPL-2 file for details.
12 #include <l4/dde/ddekit/thread.h>
13 #include <l4/dde/ddekit/condvar.h>
14 #include <l4/dde/ddekit/panic.h>
15 #include <l4/dde/ddekit/assert.h>
16 #include <l4/dde/ddekit/memory.h>
17 #include <l4/dde/ddekit/block.h>
19 #include <l4/dde/ddekit/printf.h>
21 #include <l4/dde/dde.h>
22 #include <l4/log/log.h>
23 #include <l4/util/util.h>
24 #include <l4/sys/thread.h>
25 #include <l4/sys/debugger.h>
30 #include <pthread-l4.h>
38 static struct dde_disk *disk_array;
39 static int dde_disk_count = 0;
41 void ddekit_add_disk(char *name, void *private_data)
43 struct dde_disk * new_array;
44 new_array = realloc (disk_array, sizeof (*disk_array) * (dde_disk_count + 1));
48 ddekit_printf ("No memory for new disk\n");
52 disk_array = new_array;
54 disk_array[dde_disk_count].name = name;
55 disk_array[dde_disk_count].private_data = private_data;
56 ddekit_printf ("Added new disk %d name: %s data: %p\n", dde_disk_count,
57 disk_array[dde_disk_count].name, disk_array[dde_disk_count].private_data);
61 void* ddekit_find_disk(const char* name)
63 struct dde_disk *disk = NULL;
66 for (i = 0; i < dde_disk_count; ++i)
68 if (!strcmp(disk_array[i].name, name))
70 disk = &disk_array[i];
77 ddekit_printf("disk <%s> not found\n", name);
81 return disk->private_data;