Subversion Repositories HelenOS

Rev

Rev 2000 | Rev 2005 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2000 Rev 2002
Line 33... Line 33...
33
 */
33
 */
34
 
34
 
35
#ifndef KERN_RD_H_
35
#ifndef KERN_RD_H_
36
#define KERN_RD_H_
36
#define KERN_RD_H_
37
 
37
 
-
 
38
#include <arch/types.h>
38
#include <typedefs.h>
39
#include <typedefs.h>
39
 
40
 
-
 
41
/**
-
 
42
 * RAM disk version
-
 
43
 */
-
 
44
#define RD_VERSION  0
-
 
45
 
-
 
46
/**
-
 
47
 * RAM disk magic number
-
 
48
 */
-
 
49
#define RD_MAGIC_SIZE   4
-
 
50
#define RD_MAG0         'H'
-
 
51
#define RD_MAG1         'O'
-
 
52
#define RD_MAG2         'R'
-
 
53
#define RD_MAG3         'D'
-
 
54
 
-
 
55
/**
-
 
56
 * RAM disk data encoding types
-
 
57
 */
-
 
58
#define RD_DATA_NONE    0
-
 
59
#define RD_DATA_LSB     1       /* Least significant byte first (little endian) */
-
 
60
#define RD_DATA_MSB     2       /* Most signigicant byte first (big endian) */
-
 
61
 
-
 
62
/**
-
 
63
 * RAM disk error return codes
-
 
64
 */
-
 
65
#define RE_OK           0   /* No error */
-
 
66
#define RE_INVALID      1   /* Invalid RAM disk image */
-
 
67
#define RE_UNSUPPORTED      2   /* Non-supported image (e.g. wrong version) */
-
 
68
 
-
 
69
/** RAM disk header */
-
 
70
typedef struct {
-
 
71
    uint8_t magic[RD_MAGIC_SIZE];
-
 
72
    uint8_t version;
-
 
73
    uint8_t data_type;
-
 
74
    uint32_t header_size;
-
 
75
    uint64_t data_size;
-
 
76
} rd_header;
-
 
77
 
40
extern bool init_rd(void * addr);
78
extern int init_rd(rd_header * addr);
41
 
79
 
42
#endif
80
#endif
43
 
81
 
44
/** @}
82
/** @}
45
 */
83
 */