This source file includes following definitions.
- e2fs_sb_bswap
- e2fs_cg_bswap
- e2fs_i_bswap
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36 #include <sys/types.h>
37 #if defined(_KERNEL)
38 #include <sys/systm.h>
39 #endif
40 #include <ufs/ext2fs/ext2fs.h>
41 #include <ufs/ext2fs/ext2fs_dinode.h>
42
43 #if !defined(_KERNEL)
44 #include <string.h>
45 #endif
46
47
48 #if BYTE_ORDER == BIG_ENDIAN
49 void
50 e2fs_sb_bswap(struct ext2fs *old, struct ext2fs *new)
51 {
52
53 memcpy(new, old, sizeof(struct ext2fs));
54 new->e2fs_icount = swap32(old->e2fs_icount);
55 new->e2fs_bcount = swap32(old->e2fs_bcount);
56 new->e2fs_rbcount = swap32(old->e2fs_rbcount);
57 new->e2fs_fbcount = swap32(old->e2fs_fbcount);
58 new->e2fs_ficount = swap32(old->e2fs_ficount);
59 new->e2fs_first_dblock = swap32(old->e2fs_first_dblock);
60 new->e2fs_log_bsize = swap32(old->e2fs_log_bsize);
61 new->e2fs_fsize = swap32(old->e2fs_fsize);
62 new->e2fs_bpg = swap32(old->e2fs_bpg);
63 new->e2fs_fpg = swap32(old->e2fs_fpg);
64 new->e2fs_ipg = swap32(old->e2fs_ipg);
65 new->e2fs_mtime = swap32(old->e2fs_mtime);
66 new->e2fs_wtime = swap32(old->e2fs_wtime);
67 new->e2fs_mnt_count = swap16(old->e2fs_mnt_count);
68 new->e2fs_max_mnt_count = swap16(old->e2fs_max_mnt_count);
69 new->e2fs_magic = swap16(old->e2fs_magic);
70 new->e2fs_state = swap16(old->e2fs_state);
71 new->e2fs_beh = swap16(old->e2fs_beh);
72 new->e2fs_minrev = swap16(old->e2fs_minrev);
73 new->e2fs_lastfsck = swap32(old->e2fs_lastfsck);
74 new->e2fs_fsckintv = swap32(old->e2fs_fsckintv);
75 new->e2fs_creator = swap32(old->e2fs_creator);
76 new->e2fs_rev = swap32(old->e2fs_rev);
77 new->e2fs_ruid = swap16(old->e2fs_ruid);
78 new->e2fs_rgid = swap16(old->e2fs_rgid);
79 new->e2fs_first_ino = swap32(old->e2fs_first_ino);
80 new->e2fs_inode_size = swap16(old->e2fs_inode_size);
81 new->e2fs_block_group_nr = swap16(old->e2fs_block_group_nr);
82 new->e2fs_features_compat = swap32(old->e2fs_features_compat);
83 new->e2fs_features_incompat = swap32(old->e2fs_features_incompat);
84 new->e2fs_features_rocompat = swap32(old->e2fs_features_rocompat);
85 new->e2fs_algo = swap32(old->e2fs_algo);
86 }
87
88 void
89 e2fs_cg_bswap(struct ext2_gd *old, struct ext2_gd *new, int size)
90 {
91 int i;
92 for (i=0; i < (size / sizeof(struct ext2_gd)); i++) {
93 new[i].ext2bgd_b_bitmap = swap32(old[i].ext2bgd_b_bitmap);
94 new[i].ext2bgd_i_bitmap = swap32(old[i].ext2bgd_i_bitmap);
95 new[i].ext2bgd_i_tables = swap32(old[i].ext2bgd_i_tables);
96 new[i].ext2bgd_nbfree = swap16(old[i].ext2bgd_nbfree);
97 new[i].ext2bgd_nifree = swap16(old[i].ext2bgd_nifree);
98 new[i].ext2bgd_ndirs = swap16(old[i].ext2bgd_ndirs);
99 }
100 }
101
102 void
103 e2fs_i_bswap(struct ext2fs_dinode *old, struct ext2fs_dinode *new)
104 {
105 new->e2di_mode = swap16(old->e2di_mode);
106 new->e2di_uid_low = swap16(old->e2di_uid_low);
107 new->e2di_gid_low = swap16(old->e2di_gid_low);
108 new->e2di_uid_high = swap16(old->e2di_uid_high);
109 new->e2di_gid_high = swap16(old->e2di_gid_high);
110 new->e2di_nlink = swap16(old->e2di_nlink);
111 new->e2di_size = swap32(old->e2di_size);
112 new->e2di_atime = swap32(old->e2di_atime);
113 new->e2di_ctime = swap32(old->e2di_ctime);
114 new->e2di_mtime = swap32(old->e2di_mtime);
115 new->e2di_dtime = swap32(old->e2di_dtime);
116 new->e2di_nblock = swap32(old->e2di_nblock);
117 new->e2di_flags = swap32(old->e2di_flags);
118 new->e2di_gen = swap32(old->e2di_gen);
119 new->e2di_facl = swap32(old->e2di_facl);
120 new->e2di_dacl = swap32(old->e2di_dacl);
121 new->e2di_faddr = swap32(old->e2di_faddr);
122 memcpy(&new->e2di_blocks[0], &old->e2di_blocks[0],
123 (NDADDR+NIADDR) * sizeof(int));
124 }
125 #endif