This source file includes following definitions.
- PXDlength
- PXDaddress
- lengthPXD
- addressPXD
1
2
3
4
5 #ifndef _H_JFS_TYPES
6 #define _H_JFS_TYPES
7
8
9
10
11
12
13
14
15
16
17 #include <linux/types.h>
18 #include <linux/nls.h>
19
20
21
22
23
24
25
26 typedef u16 tid_t;
27 typedef u16 lid_t;
28
29
30
31
32 struct timestruc_t {
33 __le32 tv_sec;
34 __le32 tv_nsec;
35 };
36
37
38
39
40
41 #define LEFTMOSTONE 0x80000000
42 #define HIGHORDER 0x80000000u
43 #define ONES 0xffffffffu
44
45
46
47
48
49
50
51
52 typedef struct {
53 __le32 len_addr;
54 __le32 addr2;
55 } pxd_t;
56
57
58
59 static inline void PXDlength(pxd_t *pxd, __u32 len)
60 {
61 pxd->len_addr = (pxd->len_addr & cpu_to_le32(~0xffffff)) |
62 cpu_to_le32(len & 0xffffff);
63 }
64
65 static inline void PXDaddress(pxd_t *pxd, __u64 addr)
66 {
67 pxd->len_addr = (pxd->len_addr & cpu_to_le32(0xffffff)) |
68 cpu_to_le32((addr >> 32)<<24);
69 pxd->addr2 = cpu_to_le32(addr & 0xffffffff);
70 }
71
72
73 static inline __u32 lengthPXD(pxd_t *pxd)
74 {
75 return le32_to_cpu((pxd)->len_addr) & 0xffffff;
76 }
77
78 static inline __u64 addressPXD(pxd_t *pxd)
79 {
80 __u64 n = le32_to_cpu(pxd->len_addr) & ~0xffffff;
81 return (n << 8) + le32_to_cpu(pxd->addr2);
82 }
83
84 #define MAXTREEHEIGHT 8
85
86 struct pxdlist {
87 s16 maxnpxd;
88 s16 npxd;
89 pxd_t pxd[MAXTREEHEIGHT];
90 };
91
92
93
94
95
96 typedef struct {
97 __u8 flag;
98 __u8 rsrvd[3];
99 __le32 size;
100 pxd_t loc;
101 } dxd_t;
102
103
104 #define DXD_INDEX 0x80
105 #define DXD_INLINE 0x40
106 #define DXD_EXTENT 0x20
107 #define DXD_FILE 0x10
108 #define DXD_CORRUPT 0x08
109
110
111
112 #define DXDlength(dxd, len) PXDlength(&(dxd)->loc, len)
113 #define DXDaddress(dxd, addr) PXDaddress(&(dxd)->loc, addr)
114 #define lengthDXD(dxd) lengthPXD(&(dxd)->loc)
115 #define addressDXD(dxd) addressPXD(&(dxd)->loc)
116 #define DXDsize(dxd, size32) ((dxd)->size = cpu_to_le32(size32))
117 #define sizeDXD(dxd) le32_to_cpu((dxd)->size)
118
119
120
121
122 struct component_name {
123 int namlen;
124 wchar_t *name;
125 };
126
127
128
129
130
131 struct dasd {
132 u8 thresh;
133 u8 delta;
134 u8 rsrvd1;
135 u8 limit_hi;
136 __le32 limit_lo;
137 u8 rsrvd2[3];
138 u8 used_hi;
139 __le32 used_lo;
140 };
141
142 #define DASDLIMIT(dasdp) \
143 (((u64)((dasdp)->limit_hi) << 32) + __le32_to_cpu((dasdp)->limit_lo))
144 #define setDASDLIMIT(dasdp, limit)\
145 {\
146 (dasdp)->limit_hi = ((u64)limit) >> 32;\
147 (dasdp)->limit_lo = __cpu_to_le32(limit);\
148 }
149 #define DASDUSED(dasdp) \
150 (((u64)((dasdp)->used_hi) << 32) + __le32_to_cpu((dasdp)->used_lo))
151 #define setDASDUSED(dasdp, used)\
152 {\
153 (dasdp)->used_hi = ((u64)used) >> 32;\
154 (dasdp)->used_lo = __cpu_to_le32(used);\
155 }
156
157 #endif