0001
0002
0003
0004
0005 #ifndef _H_JFS_TYPES
0006 #define _H_JFS_TYPES
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017 #include <linux/types.h>
0018 #include <linux/nls.h>
0019
0020
0021
0022
0023
0024
0025
0026 typedef u16 tid_t;
0027 typedef u16 lid_t;
0028
0029
0030
0031
0032 struct timestruc_t {
0033 __le32 tv_sec;
0034 __le32 tv_nsec;
0035 };
0036
0037
0038
0039
0040
0041 #define LEFTMOSTONE 0x80000000
0042 #define HIGHORDER 0x80000000u
0043 #define ONES 0xffffffffu
0044
0045
0046
0047
0048
0049
0050
0051
0052 typedef struct {
0053 __le32 len_addr;
0054 __le32 addr2;
0055 } pxd_t;
0056
0057
0058
0059 static inline void PXDlength(pxd_t *pxd, __u32 len)
0060 {
0061 pxd->len_addr = (pxd->len_addr & cpu_to_le32(~0xffffff)) |
0062 cpu_to_le32(len & 0xffffff);
0063 }
0064
0065 static inline void PXDaddress(pxd_t *pxd, __u64 addr)
0066 {
0067 pxd->len_addr = (pxd->len_addr & cpu_to_le32(0xffffff)) |
0068 cpu_to_le32((addr >> 32)<<24);
0069 pxd->addr2 = cpu_to_le32(addr & 0xffffffff);
0070 }
0071
0072
0073 static inline __u32 lengthPXD(pxd_t *pxd)
0074 {
0075 return le32_to_cpu((pxd)->len_addr) & 0xffffff;
0076 }
0077
0078 static inline __u64 addressPXD(pxd_t *pxd)
0079 {
0080 __u64 n = le32_to_cpu(pxd->len_addr) & ~0xffffff;
0081 return (n << 8) + le32_to_cpu(pxd->addr2);
0082 }
0083
0084 #define MAXTREEHEIGHT 8
0085
0086 struct pxdlist {
0087 s16 maxnpxd;
0088 s16 npxd;
0089 pxd_t pxd[MAXTREEHEIGHT];
0090 };
0091
0092
0093
0094
0095
0096 typedef struct {
0097 __u8 flag;
0098 __u8 rsrvd[3];
0099 __le32 size;
0100 pxd_t loc;
0101 } dxd_t;
0102
0103
0104 #define DXD_INDEX 0x80
0105 #define DXD_INLINE 0x40
0106 #define DXD_EXTENT 0x20
0107 #define DXD_FILE 0x10
0108 #define DXD_CORRUPT 0x08
0109
0110
0111
0112 #define DXDlength(dxd, len) PXDlength(&(dxd)->loc, len)
0113 #define DXDaddress(dxd, addr) PXDaddress(&(dxd)->loc, addr)
0114 #define lengthDXD(dxd) lengthPXD(&(dxd)->loc)
0115 #define addressDXD(dxd) addressPXD(&(dxd)->loc)
0116 #define DXDsize(dxd, size32) ((dxd)->size = cpu_to_le32(size32))
0117 #define sizeDXD(dxd) le32_to_cpu((dxd)->size)
0118
0119
0120
0121
0122 struct component_name {
0123 int namlen;
0124 wchar_t *name;
0125 };
0126
0127
0128
0129
0130
0131 struct dasd {
0132 u8 thresh;
0133 u8 delta;
0134 u8 rsrvd1;
0135 u8 limit_hi;
0136 __le32 limit_lo;
0137 u8 rsrvd2[3];
0138 u8 used_hi;
0139 __le32 used_lo;
0140 };
0141
0142 #define DASDLIMIT(dasdp) \
0143 (((u64)((dasdp)->limit_hi) << 32) + __le32_to_cpu((dasdp)->limit_lo))
0144 #define setDASDLIMIT(dasdp, limit)\
0145 {\
0146 (dasdp)->limit_hi = ((u64)limit) >> 32;\
0147 (dasdp)->limit_lo = __cpu_to_le32(limit);\
0148 }
0149 #define DASDUSED(dasdp) \
0150 (((u64)((dasdp)->used_hi) << 32) + __le32_to_cpu((dasdp)->used_lo))
0151 #define setDASDUSED(dasdp, used)\
0152 {\
0153 (dasdp)->used_hi = ((u64)used) >> 32;\
0154 (dasdp)->used_lo = __cpu_to_le32(used);\
0155 }
0156
0157 #endif