Author: marcel
Date: Mon Sep 26 04:14:00 2016
New Revision: 306333
URL: https://svnweb.freebsd.org/changeset/base/306333

Log:
  Portability changes:
  1.  macOS nor Linux have MAP_NOCORE nor MAP_NOSYNC. Define as 0.
  2.  macOS doesn't have SEEK_DATA nor SEEK_HOLE. Define as -1
      so that lseek will return -1 (with errno set to EINVAL).
  3.  gcc correctly warns that error is assigned but not used in
      image_copyout_region().  Fix by returning on the first error.

Modified:
  head/usr.bin/mkimg/image.c

Modified: head/usr.bin/mkimg/image.c
==============================================================================
--- head/usr.bin/mkimg/image.c  Mon Sep 26 02:29:28 2016        (r306332)
+++ head/usr.bin/mkimg/image.c  Mon Sep 26 04:14:00 2016        (r306333)
@@ -45,6 +45,20 @@ __FBSDID("$FreeBSD$");
 #include "image.h"
 #include "mkimg.h"
 
+#ifndef MAP_NOCORE
+#define        MAP_NOCORE      0
+#endif
+#ifndef MAP_NOSYNC
+#define        MAP_NOSYNC      0
+#endif
+
+#ifndef SEEK_DATA
+#define        SEEK_DATA       -1
+#endif
+#ifndef SEEK_HOLE
+#define        SEEK_HOLE       -1
+#endif
+
 struct chunk {
        STAILQ_ENTRY(chunk) ch_list;
        size_t  ch_size;                /* Size of chunk in bytes. */
@@ -582,10 +596,13 @@ image_copyout_region(int fd, lba_t blk, 
 
        size *= secsz;
 
-       while (size > 0) {
+       error = 0;
+       while (!error && size > 0) {
                ch = image_chunk_find(blk);
-               if (ch == NULL)
-                       return (EINVAL);
+               if (ch == NULL) {
+                       error = EINVAL;
+                       break;
+               }
                ofs = (blk - ch->ch_block) * secsz;
                sz = ch->ch_size - ofs;
                sz = ((lba_t)sz < size) ? sz : (size_t)size;
@@ -606,7 +623,7 @@ image_copyout_region(int fd, lba_t blk, 
                size -= sz;
                blk += sz / secsz;
        }
-       return (0);
+       return (error);
 }
 
 int
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to