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

[Lost] [Patch] Änderungen an den Headern und ihre Folgen



Hier ein _kleiner_ Patch, der entstanden ist, während ich gcc für LOST 
kompiliert habe. Das Problem war, dass gcc selbst schon einen Typ mit Namen 
sword definiert. Dieser wird aber von uns überall durch unsere types.h 
inkludiert. Dieser Patch behebt das teilweise und räumt gleichzeitig auch 
noch ein Bisschen auf.
Index: src/include/strings.h
===================================================================
--- src/include/strings.h	(Revision 698)
+++ src/include/strings.h	(Arbeitskopie)
@@ -35,9 +35,8 @@
 
 #ifndef _STRINGS_H_
 #define _STRINGS_H_
+#include <stddef.h>
 
-#include <types.h>
-
 int strcasecmp(const char* s1, const char* s2);
 int strncasecmp(const char* s1, const char* s2, size_t n);
 
Index: src/include/bsdtypes.h
===================================================================
--- src/include/bsdtypes.h	(Revision 698)
+++ src/include/bsdtypes.h	(Arbeitskopie)
@@ -36,7 +36,7 @@
 #ifndef _BSDTYPES_H_
 #define _BSDTYPES_H_
 
-#include "types.h"
+#include <stddef.h>
 
 typedef unsigned char u_char;
 typedef unsigned int u_short;
@@ -48,7 +48,4 @@
 #define LONG_BIT 64
 #define NBBY 8
 
-#define offsetof(struct_type, member) \
-          (size_t) &(((struct_type *)0)->member)
-
 #endif
Index: src/include/string.h
===================================================================
--- src/include/string.h	(Revision 698)
+++ src/include/string.h	(Arbeitskopie)
@@ -1,9 +1,7 @@
 #ifndef _STRING_H_
 #define _STRING_H_
+#include <stddef.h>
 
-#include <types.h>
-#include "bsdtypes.h"
-
 void* memcpy(void* dest, const void* src, size_t num);
 void* memmove(void* dest, const void* src, size_t num);
 void* memset(void* addr, int value, size_t len);
@@ -43,5 +41,8 @@
 
 char* strerror(int error_code);
 
+int strcasecmp(const char* s1, const char* s2);
+int strncasecmp(const char* s1, const char* s2, size_t n);
+
 #endif /* ndef _STRING_H */
 
Index: src/include/ports.h
===================================================================
--- src/include/ports.h	(Revision 698)
+++ src/include/ports.h	(Arbeitskopie)
@@ -1,5 +1,6 @@
 #ifndef PORTS_H
 #define PORTS_H
+#include <types.h>
 
 extern inline word inw(word _port)
 {
Index: src/include/stdlib.h
===================================================================
--- src/include/stdlib.h	(Revision 698)
+++ src/include/stdlib.h	(Arbeitskopie)
@@ -36,7 +36,6 @@
 #ifndef _STDLIB_H_
 #define _STDLIB_H_
 
-#include "types.h"
 #include "string.h"
 #include <config.h>
 
Index: src/lib/string/bcopy.c
===================================================================
--- src/lib/string/bcopy.c	(Revision 698)
+++ src/lib/string/bcopy.c	(Arbeitskopie)
@@ -36,7 +36,7 @@
  * sizeof(word) MUST BE A POWER OF TWO
  * SO THAT wmask BELOW IS ALL ONES
  */
-//typedef	int word;		/* "word" used for optimal copy speed */
+typedef	int word;		/* "word" used for optimal copy speed */
 
 #define	wsize	sizeof(word)
 #define	wmask	(wsize - 1)
Index: src/lib/string/strspn.c
===================================================================
--- src/lib/string/strspn.c	(Revision 698)
+++ src/lib/string/strspn.c	(Arbeitskopie)
@@ -26,7 +26,8 @@
 
 
 #include <limits.h>
-#include "string.h"
+#include <string.h>
+#include <bsdtypes.h>
 
 #define	IDX(c)	((u_char)(c) / LONG_BIT)
 #define	BIT(c)	((u_long)1 << ((u_char)(c) % LONG_BIT))
Index: src/lib/string/memset.c
===================================================================
--- src/lib/string/memset.c	(Revision 698)
+++ src/lib/string/memset.c	(Arbeitskopie)
@@ -33,6 +33,7 @@
 
 
 #include <limits.h>
+#include <bsdtypes.h>
 
 #define	wsize	sizeof(u_int)
 #define	wmask	(wsize - 1)
Index: src/lib/string/strcspn.c
===================================================================
--- src/lib/string/strcspn.c	(Revision 698)
+++ src/lib/string/strcspn.c	(Arbeitskopie)
@@ -26,7 +26,8 @@
 
 
 #include <limits.h>
-#include "string.h"
+#include <string.h>
+#include <bsdtypes.h>
 
 #define	IDX(c)	((u_char)(c) / LONG_BIT)
 #define	BIT(c)	((u_long)1 << ((u_char)(c) % LONG_BIT))
Index: src/modules/lib/lost_link.c
===================================================================
--- src/modules/lib/lost_link.c	(Revision 698)
+++ src/modules/lib/lost_link.c	(Arbeitskopie)
@@ -49,12 +49,12 @@
  *
  * @param target_path Pfad auf den der Link zeigen soll
  * @param link_path Pfad an dem der Link erstellt werden soll
- * @param hardlink TRUE, falls ein Hardlink erstellt werden soll, FALSE sonst
+ * @param hardlink 1, falls ein Hardlink erstellt werden soll, 0 sonst
  *
  * @return 0 bei Erfolg, im Fehlerfall -1 und errno wird entsprechend gesetzt
  */
 int io_create_link(const char* target_path, const char* link_path,
-    bool hardlink)
+    int hardlink)
 {
     int result;
     FILE* target_file;
Index: src/modules/lib/stdlibc/file.c
===================================================================
--- src/modules/lib/stdlibc/file.c	(Revision 698)
+++ src/modules/lib/stdlibc/file.c	(Arbeitskopie)
@@ -34,12 +34,13 @@
  */
 #include <types.h>
 #include <stdio.h>
-#include "rpc.h"
+#include <rpc.h>
 #include <stdlib.h>
-#include "lostio.h"
+#include <lostio.h>
 #include <string.h>
 #include <unistd.h>
 #include <stdint.h>
+#include <syscall.h>
 
 #define IO_BUFFER_MODE_NONE 0
 #define IO_BUFFER_MODE_FULL 1
Index: src/modules/lib/gui/gui.c
===================================================================
--- src/modules/lib/gui/gui.c	(Revision 698)
+++ src/modules/lib/gui/gui.c	(Arbeitskopie)
@@ -44,6 +44,7 @@
 #include "rpc.h"
 #include "init.h"
 #include "stdlib.h"
+#include "syscall.h"
 
 FILE *gui_control = 0;
 int gui_command_data[10];
Index: src/modules/lib/video/video.c
===================================================================
--- src/modules/lib/video/video.c	(Revision 698)
+++ src/modules/lib/video/video.c	(Arbeitskopie)
@@ -40,6 +40,7 @@
 #include "stdio.h"
 #include "stdlib.h"
 #include "rpc.h"
+#include "syscall.h"
 #include "init.h"
 
 FILE *video_driver_control = 0;
Index: src/modules/lib/lostio/vfstree.c
===================================================================
--- src/modules/lib/lostio/vfstree.c	(Revision 698)
+++ src/modules/lib/lostio/vfstree.c	(Arbeitskopie)
@@ -43,6 +43,7 @@
 #include "stdlib.h"
 #include "string.h"
 #include "stdio.h"
+#include "syscall.h"
 
 ///Der Root-Knoten
 vfstree_node_t vfstree_root;
Index: src/modules/lib/lostio/lostio.c
===================================================================
--- src/modules/lib/lostio/lostio.c	(Revision 698)
+++ src/modules/lib/lostio/lostio.c	(Arbeitskopie)
@@ -37,6 +37,7 @@
  */
 
 #include "types.h"
+#include "syscall.h"
 #include "rpc.h"
 #include "collections.h"
 #include "lostio_internal.h"
Index: src/modules/lib/network.c
===================================================================
--- src/modules/lib/network.c	(Revision 698)
+++ src/modules/lib/network.c	(Arbeitskopie)
@@ -34,7 +34,7 @@
  */
 
 #include <network.h>
-
+#include <syscall.h>
 #include <stdlib.h>
 #include <init.h>
 #include <rpc.h>
Index: src/modules/tcpip/dns.c
===================================================================
--- src/modules/tcpip/dns.c	(Revision 698)
+++ src/modules/tcpip/dns.c	(Arbeitskopie)
@@ -38,6 +38,7 @@
 #include <network.h>
 #include <stdio.h>
 #include <stdlib.h>
+#include <syscall.h>
 
 #include "dns.h"
 #include "tcp.h"
Index: src/modules/file/client.c
===================================================================
--- src/modules/file/client.c	(Revision 698)
+++ src/modules/file/client.c	(Arbeitskopie)
@@ -35,6 +35,7 @@
 
 #include <stdio.h>
 #include <stdlib.h>
+#include <syscall.h>
 #include <rpc.h>
 
 #include "file.h"
Index: src/modules/file/server.c
===================================================================
--- src/modules/file/server.c	(Revision 698)
+++ src/modules/file/server.c	(Arbeitskopie)
@@ -35,6 +35,7 @@
 
 #include <stdio.h>
 #include <stdlib.h>
+#include <syscall.h>
 #include <rpc.h>
 #include <init.h>
 #include <collections.h>
Index: src/modules/c/shell/cmds/dbg_st.c
===================================================================
--- src/modules/c/shell/cmds/dbg_st.c	(Revision 698)
+++ src/modules/c/shell/cmds/dbg_st.c	(Arbeitskopie)
@@ -33,12 +33,13 @@
  * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-#include "types.h"
-#include "stdlib.h"
-#include "stdio.h"
-#include "unistd.h"
-#include "io.h"
-#include "config.h"
+#include <types.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <unistd.h>
+#include <io.h>
+#include <config.h>
+#include <syscall.h>
 
 void dbg_st_display_usage();
 
Index: src/modules/c/shell/cmds/ln.c
===================================================================
--- src/modules/c/shell/cmds/ln.c	(Revision 698)
+++ src/modules/c/shell/cmds/ln.c	(Arbeitskopie)
@@ -55,7 +55,7 @@
         return -1;
     }
     
-    int result = io_create_link(argv[1], argv[2], TRUE);
+    int result = io_create_link(argv[1], argv[2], 1);
     
     if (result != 0) {
         puts("Fehler beim Anlegen des Links");
Index: src/modules/ext2/lostio_if.c
===================================================================
--- src/modules/ext2/lostio_if.c	(Revision 698)
+++ src/modules/ext2/lostio_if.c	(Arbeitskopie)
@@ -35,6 +35,7 @@
 #include <lostio.h>
 #include <stdio.h>
 #include <stdlib.h>
+#include <syscall.h>
 
 #include "lostio_if.h"
 #include "libext2/ext2.h"
Index: src/modules/include/unistd.h
===================================================================
--- src/modules/include/unistd.h	(Revision 698)
+++ src/modules/include/unistd.h	(Arbeitskopie)
@@ -35,7 +35,6 @@
 
 #ifndef _UNISTD_H_
 #define _UNISTD_H_
-#include <types.h>
 #include <sys/types.h>
 #include <config.h>
 
Index: src/modules/include/io.h
===================================================================
--- src/modules/include/io.h	(Revision 698)
+++ src/modules/include/io.h	(Arbeitskopie)
@@ -34,7 +34,8 @@
  */
 #ifndef _IO_H_
 #define _IO_H_
-#include "types.h"
+#include <stdint.h>
+#include <sys/types.h>
 
 
 //#define DIRENTRY_NAME_LEN 32 //FIXME: Nur eine uebergangsloesung
@@ -51,22 +52,22 @@
 #define IO_OPEN_MODE_LINK 64
 #define IO_OPEN_MODE_SYNC 128
 
-typedef dword io_resource_id_t;
-typedef byte io_direntry_type_t;
+typedef uint32_t io_resource_id_t;
+typedef uint8_t io_direntry_type_t;
 typedef struct
 {
     io_resource_id_t    id;
     char*               path;
     pid_t               pid;
-    qword               resid;
+    io_resource_id_t    resid;
 
     void*               buffer_ptr;
     size_t              buffer_size;
     size_t              buffer_pos;
-    byte                buffer_mode;
+    uint8_t             buffer_mode;
 
     size_t              ungetc_count;
-    byte*               ungetc_buffer;
+    uint8_t*            ungetc_buffer;
 } __attribute__ ((packed)) io_resource_t;
 
 
@@ -74,10 +75,10 @@
 {
     char                name[MAX_FILENAME_LEN];
     io_direntry_type_t  type;
-    qword               size;
-    timestamp_t         ctime;
-    timestamp_t         mtime;
-    timestamp_t         atime;
+    uint64_t            size;
+    time_t              ctime;
+    time_t              mtime;
+    time_t              atime;
 
 } __attribute__ ((packed)) io_direntry_t;
 
@@ -93,7 +94,7 @@
         io_resource_id_t id;
         size_t blocksize;
         size_t blockcount;
-        dword shared_mem_id;
+        uint32_t shared_mem_id;
     } __attribute__ ((packed)) io_read_request_t;
 
     typedef struct
@@ -101,8 +102,8 @@
         io_resource_id_t id;
         size_t blocksize;
         size_t blockcount;
-        dword shared_mem_id;
-        byte data[];
+        uint32_t shared_mem_id;
+        uint8_t data[];
     } __attribute__ ((packed)) io_write_request_t;
 
     typedef struct
@@ -142,7 +143,7 @@
 #endif
 
 int io_create_link(const char* target_path, const char* link_path,
-    bool hardlink);
+    int hardlink);
 int io_remove_link(const char* link_path);
 
 char* io_get_absolute_path(const char* path);
Index: src/modules/include/stddef.h
===================================================================
--- src/modules/include/stddef.h	(Revision 698)
+++ src/modules/include/stddef.h	(Arbeitskopie)
@@ -1,44 +0,0 @@
-/*  
- * Copyright (c) 2006-2007 LOST Project. All rights reserved.
- *
- * This code is derived from software contributed to the LOST Project
- * by Kevin Wolf.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *     This product includes software developed by the LOST Project
- *     and its contributors.
- * 4. Neither the name of the LOST Project nor the names of its
- *    contributors may be used to endorse or promote products derived
- *    from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
- * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR 
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; 
- * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 
- * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef _STDDEF_H_
-#define _STDDEF_H_
-
-#include "types.h"
-
-typedef int ptrdiff_t;
-typedef short wchar_t;
-
-#endif
Index: src/modules/include/signal.h
===================================================================
--- src/modules/include/signal.h	(Revision 698)
+++ src/modules/include/signal.h	(Arbeitskopie)
@@ -36,6 +36,7 @@
 #ifndef _SIGNAL_H_
 #define _SIGNAL_H_
 #include <sys/types.h>
+#include <stdint.h>
 
 // Signale
 
@@ -134,7 +135,7 @@
 
 /// Typ fuer eine Sammlung von Signalen
 typedef struct {
-    byte bitmask[_SIGNO_MAX/8];
+    uint8_t bitmask[_SIGNO_MAX/8];
 } sigset_t;
 
 /// Sigset leeren
Index: src/modules/include/stdio.h
===================================================================
--- src/modules/include/stdio.h	(Revision 698)
+++ src/modules/include/stdio.h	(Arbeitskopie)
@@ -36,11 +36,9 @@
 #ifndef _STDIO_H_
 #define _STDIO_H_
 
-#include <types.h>
 #include <string.h>
 #include <stdarg.h>
 #include <config.h>
-#include "syscall.h"
 #include "io.h"
 
 
Index: src/modules/include/dirent.h
===================================================================
--- src/modules/include/dirent.h	(Revision 698)
+++ src/modules/include/dirent.h	(Arbeitskopie)
@@ -34,14 +34,12 @@
  */
 #ifndef _DIRENT_H_
 #define _DIRENT_H_
-#include "types.h"
-#include "stdio.h"
-#include "io.h"
-#include "limits.h"
+#include <io.h>
+#include <limits.h>
 
 struct dirent {
     unsigned short d_reclen;
-    char d_name[NAME_MAX + 1];
+    char d_name[MAX_FILENAME_LEN + 1];
 };
 
 typedef io_resource_t DIR;
Index: src/modules/include/sys/stat.h
===================================================================
--- src/modules/include/sys/stat.h	(Revision 698)
+++ src/modules/include/sys/stat.h	(Arbeitskopie)
@@ -34,7 +34,6 @@
  */
 #ifndef _SYS_STAT_H_
 #define _SYS_STAT_H_
-#include <types.h>
 #include <sys/types.h>
 #include <time.h>
 
Index: src/modules/include/sys/types.h
===================================================================
--- src/modules/include/sys/types.h	(Revision 698)
+++ src/modules/include/sys/types.h	(Arbeitskopie)
@@ -34,7 +34,11 @@
  */
 #ifndef _SYS_TYPES_H_
 #define _SYS_TYPES_H_
+
+// FIXME
+#define _NO_LOST_TYPES
 #include <types.h>
+#undef _NO_LOST_TYPES
 
 // FIXME: Diese Deklarationen sind nur da, damit das Fake-stat() benutzt werden
 // kann.
Index: src/modules/vterm/lostio.c
===================================================================
--- src/modules/vterm/lostio.c	(Revision 698)
+++ src/modules/vterm/lostio.c	(Arbeitskopie)
@@ -33,7 +33,7 @@
  * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 #include <stdlib.h>
-
+#include <syscall.h>
 #include "vterm.h"
 #include "lostio.h"
 /// Handler fuer Lesen aus in
Index: src/modules/kbc/mouse.c
===================================================================
--- src/modules/kbc/mouse.c	(Revision 698)
+++ src/modules/kbc/mouse.c	(Arbeitskopie)
@@ -6,6 +6,7 @@
 #include "lostio.h"
 #include "ports.h"
 #include "string.h"
+#include "syscall.h"
 
 #include "mouse.h"
 
Index: src/modules/cdi/include/cdi/lists.h
===================================================================
--- src/modules/cdi/include/cdi/lists.h	(Revision 698)
+++ src/modules/cdi/include/cdi/lists.h	(Arbeitskopie)
@@ -10,7 +10,7 @@
 
 #ifndef _CDI_LISTS_
 #define _CDI_LISTS_
-
+#include <stddef.h>
 #include <stdint.h>
 
 /**
Index: src/modules/cdi/ata/device.c
===================================================================
--- src/modules/cdi/ata/device.c	(Revision 698)
+++ src/modules/cdi/ata/device.c	(Arbeitskopie)
@@ -79,7 +79,7 @@
  *
  * @return 1 wenn ein Geraet vorhanden ist, 0 sonst
  */
-static bool ata_bus_responsive_drv(struct ata_controller* controller)
+static int ata_bus_responsive_drv(struct ata_controller* controller)
 {
     // Slave auswaehlen, da so sicher jemand reagiert, da der Master antworten
     // muss, wenn kein Slave existiert. So sieht es zumindest in der Theorie
Index: src/modules/cdi/sis900/device.c
===================================================================
--- src/modules/cdi/sis900/device.c	(Revision 698)
+++ src/modules/cdi/sis900/device.c	(Arbeitskopie)
@@ -36,6 +36,7 @@
 #include <stdint.h>
 #include <stdio.h>
 #include <stddef.h>
+#include <syscall.h>
 
 #include "cdi.h"
 #include "cdi/misc.h"
@@ -234,6 +235,7 @@
     reg_outl(netcard, REG_COMMAND, CR_ENABLE_TX);
 
     // Warten, bis das Paket gesendet ist
+    // FIXME: Nicht portabel
     qword timeout = get_tick_count() + 500000;
     while ((netcard->tx_desc.status & DESC_STATUS_OWN) 
         && (get_tick_count() < timeout));
Index: src/include/arch/i386/types.h
===================================================================
--- src/include/arch/i386/types.h	(Revision 698)
+++ src/include/arch/i386/types.h	(Arbeitskopie)
@@ -1,10 +1,26 @@
 #ifndef _TYPES_H_
 #define _TYPES_H_
+#include <stddef.h>
 
-#define NULL (void*) 0
+typedef signed int ssize_t;
 
+typedef void * paddr_t;
+typedef void * vaddr_t;
+
+typedef unsigned int pid_t;
+typedef unsigned int uid_t;
+typedef unsigned int gid_t;
+
+#endif
+
+// FIXME Um pid_t aus sys/types holen zu koennen
+#ifndef _NO_LOST_TYPES
+
+// Schutz vor mehrfachen Deklarationen
+#ifndef _LOST_TYPES_
+#define _LOST_TYPES_
+
 #ifndef __cplusplus
-
 // FIXME: HACK
 #ifdef TRUE
 #undef TRUE
@@ -16,6 +32,7 @@
 typedef enum { FALSE = 0, TRUE } bool;
 #endif
 
+
 typedef unsigned char byte;
 typedef unsigned short word;
 typedef unsigned int dword;
@@ -26,18 +43,9 @@
 typedef signed int sdword;
 typedef signed long long sqword;
 
-typedef __SIZE_TYPE__ size_t;
-typedef signed int ssize_t;
-
-typedef void * paddr_t;
-typedef void * vaddr_t;
-
-typedef dword pid_t;
-typedef dword uid_t;
-typedef dword gid_t;
-
 typedef qword timestamp_t;
 
 typedef dword syscall_id_t;
+#endif // ndef _LOST_TYPES_
+#endif // ndef _NO_LOST_TYPES
 
-#endif
Index: src/include/arch/i386/stdint.h
===================================================================
--- src/include/arch/i386/stdint.h	(Revision 698)
+++ src/include/arch/i386/stdint.h	(Arbeitskopie)
@@ -36,21 +36,19 @@
 #ifndef _STDINT_H_
 #define _STDINT_H_
 
-#include "types.h"
+typedef signed char int8_t;
+typedef signed short int16_t;
+typedef signed int int32_t;
+typedef signed long long int64_t;
 
-typedef sbyte int8_t;
-typedef sword int16_t;
-typedef sdword int32_t;
-typedef sqword int64_t;
+typedef unsigned char uint8_t;
+typedef unsigned short uint16_t;
+typedef unsigned int uint32_t;
+typedef unsigned long long uint64_t;
 
-typedef byte uint8_t;
-typedef word uint16_t;
-typedef dword uint32_t;
-typedef qword uint64_t;
 
-
-typedef dword uint_fast32_t;
-typedef dword uintptr_t;
+typedef unsigned int uint_fast32_t;
+typedef unsigned int uintptr_t;
 typedef long int intptr_t;
 
 #endif
Index: src/include/arch/i386/stddef.h
===================================================================
--- src/include/arch/i386/stddef.h	(Revision 0)
+++ src/include/arch/i386/stddef.h	(Revision 0)
@@ -0,0 +1,46 @@
+/*  
+ * Copyright (c) 2006-2007 LOST Project. All rights reserved.
+ *
+ * This code is derived from software contributed to the LOST Project
+ * by Kevin Wolf.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *     This product includes software developed by the LOST Project
+ *     and its contributors.
+ * 4. Neither the name of the LOST Project nor the names of its
+ *    contributors may be used to endorse or promote products derived
+ *    from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR 
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; 
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef _STDDEF_H_
+#define _STDDEF_H_
+#include <cdefs.h>
+
+#define NULL (void*) 0
+
+typedef __SIZE_TYPE__       size_t;
+typedef int                 ptrdiff_t;
+typedef short               wchar_t;
+
+#endif
Index: src/modules/ext2/libext2/cache.h
===================================================================
--- src/modules/ext2/libext2/cache.h	(Revision 701)
+++ src/modules/ext2/libext2/cache.h	(Arbeitskopie)
@@ -34,6 +34,7 @@
  */
 #ifndef _CACHE_H_
 #define _CACHE_H_
+#include <types.h>
 
 // Cache
 typedef unsigned int cache_index_t;