[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Lost] Ramdisk



Der Link-Pfad wird jetzt nicht mehr im Datenpuffer gespeichert, sondern
seperat. Verlinkt ist der Link bei link_path in struct cdi_fs_resource.

time() wird nicht mehr verwendet, es wäre aber sinnvoll etwas ähnliches
in CDI zu haben. Ich hab in cdi/misc.h schon cdi_time(). Bei LOST ist
das noch nicht, deswegen hab ich das mal aus ramdisk rausgelassen.

Ich hab auch noch in file.c in ramdisk_fs_file_write() das memset()
entfernt, dass aufgerufen wird, wenn der Buffer vegrößert werden muss.
Der neue Speicher wird danach ja eh sofort beschrieben.

Index: dir.c
===================================================================
--- dir.c	(Revision 934)
+++ dir.c	(Arbeitskopie)
@@ -33,8 +33,7 @@
  * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 #include <string.h>
-// FIXME CDI kennt eigentlich keine POSIX-Funktionen
-#include <time.h>
+
 #include "cdi/lists.h"
 
 #include "ramdisk_cdi.h"
@@ -57,7 +56,8 @@
     res->res.name = strdup(name);
     res->res.res = &ramdisk_fs_res;
     res->res.children = cdi_list_create();
-    res->creation_time = time(NULL);
+    res->res.link_path = NULL;
+    res->creation_time = 0;
 
     cdi_list_push(parent_res->res.children, res);
     res->res.parent = parent;
Index: file.c
===================================================================
--- file.c	(Revision 934)
+++ file.c	(Arbeitskopie)
@@ -63,7 +63,6 @@
             stream->error = CDI_FS_ERROR_INTERNAL;
             return 0;
         }
-        memset(new_buffer + res->size, 0, new_size - res->size);
         res->buffer = new_buffer;
         res->size = new_size;
     }
Index: link.c
===================================================================
--- link.c	(Revision 934)
+++ link.c	(Arbeitskopie)
@@ -39,14 +39,14 @@
 {
     struct ramdisk_fs_res* res = (struct ramdisk_fs_res*) stream->res;
 
-    return res->buffer;
+    return res->res.link_path;
 }
 
 int ramdisk_fs_link_write(struct cdi_fs_stream *stream, const char *path) {
     struct ramdisk_fs_res* res = (struct ramdisk_fs_res*) stream->res;
 
-    free(res->buffer);
-    res->buffer = strdup(path);
+    free(res->res.link_path);
+    res->res.link_path = strdup(path);
 
     return 1;
 }