--- flat.h.orig	2005-03-16 04:10:20.000000000 +0100
+++ flat.h	2005-03-16 04:18:15.000000000 +0100
@@ -11,7 +11,10 @@
 #define _LINUX_FLAT_H
 
 #ifdef __KERNEL__
-#include <asm/flat.h>
+# include <asm/flat.h>
+# include <linux/types.h> /* uint32_t, int32_t */
+#else
+# include <stdint.h> /* uint32_t, int32_t */
 #endif
 
 #define	FLAT_VERSION			0x00000004L
@@ -29,25 +32,25 @@
 
 struct flat_hdr {
 	char magic[4];
-	unsigned long rev;          /* version (as above) */
-	unsigned long entry;        /* Offset of first executable instruction
+	uint32_t rev;          /* version (as above) */
+	uint32_t entry;        /* Offset of first executable instruction
 	                               with text segment from beginning of file */
-	unsigned long data_start;   /* Offset of data segment from beginning of
+	uint32_t data_start;   /* Offset of data segment from beginning of
 	                               file */
-	unsigned long data_end;     /* Offset of end of data segment
+	uint32_t data_end;     /* Offset of end of data segment
 	                               from beginning of file */
-	unsigned long bss_end;      /* Offset of end of bss segment from beginning
+	uint32_t bss_end;      /* Offset of end of bss segment from beginning
 	                               of file */
 
 	/* (It is assumed that data_end through bss_end forms the bss segment.) */
 
-	unsigned long stack_size;   /* Size of stack, in bytes */
-	unsigned long reloc_start;  /* Offset of relocation records from
+	uint32_t stack_size;   /* Size of stack, in bytes */
+	uint32_t reloc_start;  /* Offset of relocation records from
 	                               beginning of file */
-	unsigned long reloc_count;  /* Number of relocation records */
-	unsigned long flags;       
-	unsigned long build_date;   /* When the program/library was built */
-	unsigned long filler[5];    /* Reservered, set to zero */
+	uint32_t reloc_count;  /* Number of relocation records */
+	uint32_t flags;
+	uint32_t build_date;   /* When the program/library was built */
+	uint32_t filler[5];    /* Reservered, set to zero */
 };
 
 #define FLAT_FLAG_RAM    0x0001 /* load program entirely into RAM */
@@ -75,22 +78,22 @@ struct flat_hdr {
 #define OLD_FLAT_RELOC_TYPE_BSS		2
 
 typedef union {
-	unsigned long	value;
+	uint32_t value;
 	struct {
 # if defined(mc68000) && !defined(CONFIG_COLDFIRE)
-		signed long offset : 30;
-		unsigned long type : 2;
-#   	define OLD_FLAT_FLAG_RAM    0x1 /* load program entirely into RAM */
+		int32_t offset : 30;
+		uint32_t type : 2;
+#		define OLD_FLAT_FLAG_RAM    0x1 /* load program entirely into RAM */
 # elif defined(__BIG_ENDIAN_BITFIELD)
-		unsigned long type : 2;
-		signed long offset : 30;
-#   	define OLD_FLAT_FLAG_RAM    0x1 /* load program entirely into RAM */
+		uint32_t type : 2;
+		int32_t offset : 30;
+#		define OLD_FLAT_FLAG_RAM    0x1 /* load program entirely into RAM */
 # elif defined(__LITTLE_ENDIAN_BITFIELD)
-		signed long offset : 30;
-		unsigned long type : 2;
-#   	define OLD_FLAT_FLAG_RAM    0x1 /* load program entirely into RAM */
+		int32_t offset : 30;
+		uint32_t type : 2;
+#		define OLD_FLAT_FLAG_RAM    0x1 /* load program entirely into RAM */
 # else
-#   	error "Unknown bitfield order for flat files."
+#	error "Unknown bitfield order for flat files."
 # endif
 	} reloc;
 } flat_v2_reloc_t;
