Commit d824d06328904f610b47652dcd488392f2fc62b6
Committed by
Richard Weinberger
1 parent
f21a7c195c
Exists in
smarc-l5.0.0_1.0.0-ga
and in
5 other branches
um: switch cow_user.h to htobe{32,64}/betoh{32,64}
... rather than open-coding the 64bit versions. endian.h has those guys. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by: Richard Weinberger <richard@nod.at>
Showing 2 changed files with 21 additions and 57 deletions Side-by-side Diff
arch/um/drivers/cow.h
... | ... | @@ -3,41 +3,6 @@ |
3 | 3 | |
4 | 4 | #include <asm/types.h> |
5 | 5 | |
6 | -#if defined(__KERNEL__) | |
7 | - | |
8 | -# include <asm/byteorder.h> | |
9 | - | |
10 | -# if defined(__BIG_ENDIAN) | |
11 | -# define ntohll(x) (x) | |
12 | -# define htonll(x) (x) | |
13 | -# elif defined(__LITTLE_ENDIAN) | |
14 | -# define ntohll(x) be64_to_cpu(x) | |
15 | -# define htonll(x) cpu_to_be64(x) | |
16 | -# else | |
17 | -# error "Could not determine byte order" | |
18 | -# endif | |
19 | - | |
20 | -#else | |
21 | -/* For the definition of ntohl, htonl and __BYTE_ORDER */ | |
22 | -#include <endian.h> | |
23 | -#include <netinet/in.h> | |
24 | -#if defined(__BYTE_ORDER) | |
25 | - | |
26 | -# if __BYTE_ORDER == __BIG_ENDIAN | |
27 | -# define ntohll(x) (x) | |
28 | -# define htonll(x) (x) | |
29 | -# elif __BYTE_ORDER == __LITTLE_ENDIAN | |
30 | -# define ntohll(x) bswap_64(x) | |
31 | -# define htonll(x) bswap_64(x) | |
32 | -# else | |
33 | -# error "Could not determine byte order: __BYTE_ORDER uncorrectly defined" | |
34 | -# endif | |
35 | - | |
36 | -#else /* ! defined(__BYTE_ORDER) */ | |
37 | -# error "Could not determine byte order: __BYTE_ORDER not defined" | |
38 | -#endif | |
39 | -#endif /* ! defined(__KERNEL__) */ | |
40 | - | |
41 | 6 | extern int init_cow_file(int fd, char *cow_file, char *backing_file, |
42 | 7 | int sectorsize, int alignment, int *bitmap_offset_out, |
43 | 8 | unsigned long *bitmap_len_out, int *data_offset_out); |
arch/um/drivers/cow_user.c
... | ... | @@ -8,11 +8,10 @@ |
8 | 8 | * that. |
9 | 9 | */ |
10 | 10 | #include <unistd.h> |
11 | -#include <byteswap.h> | |
12 | 11 | #include <errno.h> |
13 | 12 | #include <string.h> |
14 | 13 | #include <arpa/inet.h> |
15 | -#include <asm/types.h> | |
14 | +#include <endian.h> | |
16 | 15 | #include "cow.h" |
17 | 16 | #include "cow_sys.h" |
18 | 17 | |
... | ... | @@ -214,8 +213,8 @@ |
214 | 213 | "header\n"); |
215 | 214 | goto out; |
216 | 215 | } |
217 | - header->magic = htonl(COW_MAGIC); | |
218 | - header->version = htonl(COW_VERSION); | |
216 | + header->magic = htobe32(COW_MAGIC); | |
217 | + header->version = htobe32(COW_VERSION); | |
219 | 218 | |
220 | 219 | err = -EINVAL; |
221 | 220 | if (strlen(backing_file) > sizeof(header->backing_file) - 1) { |
... | ... | @@ -246,10 +245,10 @@ |
246 | 245 | goto out_free; |
247 | 246 | } |
248 | 247 | |
249 | - header->mtime = htonl(modtime); | |
250 | - header->size = htonll(*size); | |
251 | - header->sectorsize = htonl(sectorsize); | |
252 | - header->alignment = htonl(alignment); | |
248 | + header->mtime = htobe32(modtime); | |
249 | + header->size = htobe64(*size); | |
250 | + header->sectorsize = htobe32(sectorsize); | |
251 | + header->alignment = htobe32(alignment); | |
253 | 252 | header->cow_format = COW_BITMAP; |
254 | 253 | |
255 | 254 | err = cow_write_file(fd, header, sizeof(*header)); |
... | ... | @@ -301,8 +300,8 @@ |
301 | 300 | magic = header->v1.magic; |
302 | 301 | if (magic == COW_MAGIC) |
303 | 302 | version = header->v1.version; |
304 | - else if (magic == ntohl(COW_MAGIC)) | |
305 | - version = ntohl(header->v1.version); | |
303 | + else if (magic == be32toh(COW_MAGIC)) | |
304 | + version = be32toh(header->v1.version); | |
306 | 305 | /* No error printed because the non-COW case comes through here */ |
307 | 306 | else goto out; |
308 | 307 | |
... | ... | @@ -327,9 +326,9 @@ |
327 | 326 | "header\n"); |
328 | 327 | goto out; |
329 | 328 | } |
330 | - *mtime_out = ntohl(header->v2.mtime); | |
331 | - *size_out = ntohll(header->v2.size); | |
332 | - *sectorsize_out = ntohl(header->v2.sectorsize); | |
329 | + *mtime_out = be32toh(header->v2.mtime); | |
330 | + *size_out = be64toh(header->v2.size); | |
331 | + *sectorsize_out = be32toh(header->v2.sectorsize); | |
333 | 332 | *bitmap_offset_out = sizeof(header->v2); |
334 | 333 | *align_out = *sectorsize_out; |
335 | 334 | file = header->v2.backing_file; |
... | ... | @@ -341,10 +340,10 @@ |
341 | 340 | "header\n"); |
342 | 341 | goto out; |
343 | 342 | } |
344 | - *mtime_out = ntohl(header->v3.mtime); | |
345 | - *size_out = ntohll(header->v3.size); | |
346 | - *sectorsize_out = ntohl(header->v3.sectorsize); | |
347 | - *align_out = ntohl(header->v3.alignment); | |
343 | + *mtime_out = be32toh(header->v3.mtime); | |
344 | + *size_out = be64toh(header->v3.size); | |
345 | + *sectorsize_out = be32toh(header->v3.sectorsize); | |
346 | + *align_out = be32toh(header->v3.alignment); | |
348 | 347 | if (*align_out == 0) { |
349 | 348 | cow_printf("read_cow_header - invalid COW header, " |
350 | 349 | "align == 0\n"); |
351 | 350 | |
352 | 351 | |
... | ... | @@ -366,16 +365,16 @@ |
366 | 365 | * this was used until Dec2005 - 64bits are needed to represent |
367 | 366 | * 2038+. I.e. we can safely do this truncating cast. |
368 | 367 | * |
369 | - * Additionally, we must use ntohl() instead of ntohll(), since | |
368 | + * Additionally, we must use be32toh() instead of be64toh(), since | |
370 | 369 | * the program used to use the former (tested - I got mtime |
371 | 370 | * mismatch "0 vs whatever"). |
372 | 371 | * |
373 | 372 | * Ever heard about bug-to-bug-compatibility ? ;-) */ |
374 | - *mtime_out = (time32_t) ntohl(header->v3_b.mtime); | |
373 | + *mtime_out = (time32_t) be32toh(header->v3_b.mtime); | |
375 | 374 | |
376 | - *size_out = ntohll(header->v3_b.size); | |
377 | - *sectorsize_out = ntohl(header->v3_b.sectorsize); | |
378 | - *align_out = ntohl(header->v3_b.alignment); | |
375 | + *size_out = be64toh(header->v3_b.size); | |
376 | + *sectorsize_out = be32toh(header->v3_b.sectorsize); | |
377 | + *align_out = be32toh(header->v3_b.alignment); | |
379 | 378 | if (*align_out == 0) { |
380 | 379 | cow_printf("read_cow_header - invalid COW header, " |
381 | 380 | "align == 0\n"); |