Index: kernel/generic/include/lib/rd.h
===================================================================
--- kernel/generic/include/lib/rd.h	(revision d4b55422d35d65c648d6bb91798e0f57497dc56c)
+++ kernel/generic/include/lib/rd.h	(revision 8c19cf2876a406fac783c1b246f2f5a22deab35c)
@@ -36,7 +36,45 @@
 #define KERN_RD_H_
 
+#include <arch/types.h>
 #include <typedefs.h>
 
-extern bool init_rd(void * addr);
+/**
+ * RAM disk version
+ */
+#define	RD_VERSION	0
+
+/**
+ * RAM disk magic number
+ */
+#define RD_MAGIC_SIZE	4
+#define RD_MAG0			'H'
+#define RD_MAG1			'O'
+#define RD_MAG2			'R'
+#define RD_MAG3			'D'
+
+/**
+ * RAM disk data encoding types
+ */
+#define RD_DATA_NONE	0
+#define RD_DATA_LSB		1		/* Least significant byte first (little endian) */
+#define RD_DATA_MSB		2		/* Most signigicant byte first (big endian) */
+
+/**
+ * RAM disk error return codes
+ */
+#define RE_OK			0	/* No error */
+#define RE_INVALID		1	/* Invalid RAM disk image */
+#define RE_UNSUPPORTED		2	/* Non-supported image (e.g. wrong version) */
+
+/** RAM disk header */
+typedef struct {
+	uint8_t magic[RD_MAGIC_SIZE];
+	uint8_t version;
+	uint8_t data_type;
+	uint32_t header_size;
+	uint64_t data_size;
+} rd_header;
+
+extern int init_rd(rd_header * addr);
 
 #endif
