OpenCores
URL https://opencores.org/ocsvn/test_project/test_project/trunk

Subversion Repositories test_project

[/] [test_project/] [trunk/] [linux_sd_driver/] [fs/] [isofs/] [rock.h] - Blame information for rev 62

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 62 marcus.erl
/*
2
 * These structs are used by the system-use-sharing protocol, in which the
3
 * Rock Ridge extensions are embedded.  It is quite possible that other
4
 * extensions are present on the disk, and this is fine as long as they
5
 * all use SUSP
6
 */
7
 
8
struct SU_SP_s {
9
        unsigned char magic[2];
10
        unsigned char skip;
11
} __attribute__ ((packed));
12
 
13
struct SU_CE_s {
14
        char extent[8];
15
        char offset[8];
16
        char size[8];
17
};
18
 
19
struct SU_ER_s {
20
        unsigned char len_id;
21
        unsigned char len_des;
22
        unsigned char len_src;
23
        unsigned char ext_ver;
24
        char data[0];
25
} __attribute__ ((packed));
26
 
27
struct RR_RR_s {
28
        char flags[1];
29
} __attribute__ ((packed));
30
 
31
struct RR_PX_s {
32
        char mode[8];
33
        char n_links[8];
34
        char uid[8];
35
        char gid[8];
36
};
37
 
38
struct RR_PN_s {
39
        char dev_high[8];
40
        char dev_low[8];
41
};
42
 
43
struct SL_component {
44
        unsigned char flags;
45
        unsigned char len;
46
        char text[0];
47
} __attribute__ ((packed));
48
 
49
struct RR_SL_s {
50
        unsigned char flags;
51
        struct SL_component link;
52
} __attribute__ ((packed));
53
 
54
struct RR_NM_s {
55
        unsigned char flags;
56
        char name[0];
57
} __attribute__ ((packed));
58
 
59
struct RR_CL_s {
60
        char location[8];
61
};
62
 
63
struct RR_PL_s {
64
        char location[8];
65
};
66
 
67
struct stamp {
68
        char time[7];
69
} __attribute__ ((packed));
70
 
71
struct RR_TF_s {
72
        char flags;
73
        struct stamp times[0];   /* Variable number of these beasts */
74
} __attribute__ ((packed));
75
 
76
/* Linux-specific extension for transparent decompression */
77
struct RR_ZF_s {
78
        char algorithm[2];
79
        char parms[2];
80
        char real_size[8];
81
};
82
 
83
/*
84
 * These are the bits and their meanings for flags in the TF structure.
85
 */
86
#define TF_CREATE 1
87
#define TF_MODIFY 2
88
#define TF_ACCESS 4
89
#define TF_ATTRIBUTES 8
90
#define TF_BACKUP 16
91
#define TF_EXPIRATION 32
92
#define TF_EFFECTIVE 64
93
#define TF_LONG_FORM 128
94
 
95
struct rock_ridge {
96
        char signature[2];
97
        unsigned char len;
98
        unsigned char version;
99
        union {
100
                struct SU_SP_s SP;
101
                struct SU_CE_s CE;
102
                struct SU_ER_s ER;
103
                struct RR_RR_s RR;
104
                struct RR_PX_s PX;
105
                struct RR_PN_s PN;
106
                struct RR_SL_s SL;
107
                struct RR_NM_s NM;
108
                struct RR_CL_s CL;
109
                struct RR_PL_s PL;
110
                struct RR_TF_s TF;
111
                struct RR_ZF_s ZF;
112
        } u;
113
};
114
 
115
#define RR_PX 1                 /* POSIX attributes */
116
#define RR_PN 2                 /* POSIX devices */
117
#define RR_SL 4                 /* Symbolic link */
118
#define RR_NM 8                 /* Alternate Name */
119
#define RR_CL 16                /* Child link */
120
#define RR_PL 32                /* Parent link */
121
#define RR_RE 64                /* Relocation directory */
122
#define RR_TF 128               /* Timestamps */

powered by: WebSVN 2.1.0

© copyright 1999-2025 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.