Get rid of [BL]E_[24]BYTE macros
authorLucas De Marchi <lucas.demarchi@intel.com>
Thu, 15 Aug 2013 17:36:05 +0000 (14:36 -0300)
committerLucas De Marchi <lucas.demarchi@intel.com>
Mon, 19 Aug 2013 20:37:17 +0000 (17:37 -0300)
Use either libc functions from endian.h (when we have the value instead
of a position in buffer) or common provided functions in util.h

src/plugins/jpeg/jpeg.c
src/plugins/rm/rm.c

index 55cdda0..f002ba4 100644 (file)
@@ -196,14 +196,8 @@ _jpeg_data_get(int fd, int *type, int *len)
     return 0;
 }
 
-#define LE_4BYTE(a) ((a)[0] | ((a)[1] << 8) | ((a)[2] << 16) | ((a)[3] << 24))
-#define BE_4BYTE(a) (((a)[0] << 24) | ((a)[1] << 16) | ((a)[2] << 8) | (a)[3])
-
-#define LE_2BYTE(a) ((a)[0] | ((a)[1] << 8))
-#define BE_2BYTE(a) (((a)[0] << 8) | (a)[1])
-
-#define E_2BTYE(little_endian, a) ((little_endian) ? LE_2BYTE(a) : BE_2BYTE(a))
-#define E_4BTYE(little_endian, a) ((little_endian) ? LE_4BYTE(a) : BE_4BYTE(a))
+#define E_2BTYE(little_endian, a) ((little_endian) ? get_le16(a) : get_be16(a))
+#define E_4BTYE(little_endian, a) ((little_endian) ? get_le32(a) : get_be32(a))
 
 enum {
     EXIF_TYPE_BYTE = 1, /* 8 bit unsigned */
@@ -249,15 +243,15 @@ _exif_ifd_get(int fd, int little_endian, struct exif_ifd *ifd)
     }
 
     if (little_endian) {
-        ifd->tag = LE_2BYTE(buf);
-        ifd->type = LE_2BYTE(buf + 2);
-        ifd->count = LE_4BYTE(buf + 4);
-        ifd->offset = LE_4BYTE(buf + 8);
+        ifd->tag = get_le16(buf);
+        ifd->type = get_le16(buf + 2);
+        ifd->count = get_le32(buf + 4);
+        ifd->offset = get_le32(buf + 8);
     } else {
-        ifd->tag = BE_2BYTE(buf);
-        ifd->type = BE_2BYTE(buf + 2);
-        ifd->count = BE_4BYTE(buf + 4);
-        ifd->offset = BE_4BYTE(buf + 8);
+        ifd->tag = get_be16(buf);
+        ifd->type = get_be16(buf + 2);
+        ifd->count = get_be32(buf + 4);
+        ifd->offset = get_be32(buf + 8);
     }
     return 0;
 }
@@ -502,10 +496,10 @@ _exif_data_get(int fd, int len, struct lms_image_info *info)
 
     if (buf[0] == 'I' && buf[1] == 'I') {
         little_endian = 1;
-        offset = LE_4BYTE(buf + 4);
+        offset = get_le32(buf + 4);
     } else if (buf[0] == 'M' && buf[1] == 'M') {
         little_endian = 0;
-        offset = BE_4BYTE(buf + 4);
+        offset = get_be32(buf + 4);
     } else {
         fprintf(stderr, "ERROR: undefined byte sex \"%2.2s\".\n", buf);
         return -5;
index 097db0b..b3fd78b 100644 (file)
 #include <string.h>
 #include <unistd.h>
 
-#define BE_4BYTE(a) ((((unsigned char*)a)[0] << 24) |                   \
-                     (((unsigned char*)a)[1] << 16) |                   \
-                     (((unsigned char*)a)[2] << 8) |                    \
-                     ((unsigned char*)a)[3])
-#define BE_2BYTE(a) ((((unsigned char*)a)[0] << 8) | ((unsigned char*)a)[1])
-
 enum StreamTypes {
     STREAM_TYPE_UNKNOWN = 0,
     STREAM_TYPE_AUDIO,
@@ -119,8 +113,7 @@ _parse_file_header(int fd, struct rm_file_header *file_header)
         return -1;
     }
 
-    /* convert to host byte order */
-    file_header->size = BE_4BYTE(&file_header->size);
+    file_header->size = be32toh(file_header->size);
 
 #if 0
     fprintf(stderr, "file_header type=%.*s\n", 4, file_header->type);
@@ -147,7 +140,7 @@ _read_header_type_and_size(int fd, char *type, uint32_t *size)
     if (read(fd, size, 4) != 4)
         return -1;
 
-    *size = BE_4BYTE(size);
+    *size = be32toh(*size);
 
 #if 0
     fprintf(stderr, "header type=%.*s\n", 4, type);
@@ -166,7 +159,7 @@ _read_string(int fd, char **out, unsigned int *out_len)
     if (read(fd, &len, 2) == -1)
         return -1;
 
-    len = BE_2BYTE(&len);
+    len = be16toh(len);
 
     if (out) {
         if (len > 0) {