diff tools/objlink.c @ 2586:9807ae37ad69

Require stdbool.h, we require C11 now.
author Matti Hamalainen <ccr@tnsp.org>
date Thu, 08 Dec 2022 15:59:22 +0200
parents d56a0e86067a
children
line wrap: on
line diff
--- a/tools/objlink.c	Thu Dec 08 15:56:36 2022 +0200
+++ b/tools/objlink.c	Thu Dec 08 15:59:22 2022 +0200
@@ -156,9 +156,9 @@
 char       *optDestName = NULL;
 char       *optLinkFileName = NULL;
 int        optLinkFileFormat = FMT_GENERIC;
-BOOL       optDescribe = FALSE,
-           optAllowOverlap = FALSE,
-           optCropOutput = FALSE;
+bool       optDescribe = false,
+           optAllowOverlap = false,
+           optCropOutput = false;
 unsigned int optCropStart, optCropEnd;
 unsigned int optInitValue = 0;
 int        optInitValueType = 1;
@@ -270,11 +270,11 @@
 }
 
 
-BOOL dmParseSection(const char *arg, unsigned int *sectStart, unsigned int *sectEnd, char **sectName, BOOL canHasName)
+bool dmParseSection(const char *arg, unsigned int *sectStart, unsigned int *sectEnd, char **sectName, bool canHasName)
 {
     char sectMode, *sep, *str, *namesep;
     unsigned int tmpi;
-    BOOL res = FALSE;
+    bool res = false;
 
     // Define reserved section
     // Create a copy of the argument
@@ -347,7 +347,7 @@
         *sectEnd = tmpi;
     }
 
-    res = TRUE;
+    res = true;
 
 out:
     dmFree(str);
@@ -355,10 +355,10 @@
 }
 
 
-BOOL dmParseInputFile(char *arg, const int type1, const int type2, const char *desc, BOOL requireAddr)
+bool dmParseInputFile(char *arg, const int type1, const int type2, const char *desc, bool requireAddr)
 {
     unsigned int tmpi = 0;
-    BOOL hasAddr = FALSE;
+    bool hasAddr = false;
     char *sep;
 
     if ((sep = strrchr(arg, ':')) != NULL)
@@ -368,26 +368,26 @@
         {
             dmErrorMsg("Invalid %s address '%s' specified for '%s'.\n",
                 desc, sep + 1, arg);
-            return FALSE;
+            return false;
         }
-        hasAddr = TRUE;
+        hasAddr = true;
     }
     else
     if (requireAddr)
     {
         dmErrorMsg("No %s loading address specified for '%s'.\n", desc, arg);
-        return FALSE;
+        return false;
     }
 
     srcFiles[nsrcFiles].filename = arg;
     srcFiles[nsrcFiles].type = hasAddr ? type1 : type2;
     srcFiles[nsrcFiles].addr = tmpi;
     nsrcFiles++;
-    return TRUE;
+    return true;
 }
 
 
-BOOL argHandleOpt(const int optN, char *optArg, char *currArg)
+bool argHandleOpt(const int optN, char *optArg, char *currArg)
 {
 
     switch (optN)
@@ -408,22 +408,22 @@
 
         case 10:
             // Add RAW
-            if (!dmParseInputFile(optArg, STYPE_RAW, STYPE_RAW, "RAW", TRUE))
-                return FALSE;
+            if (!dmParseInputFile(optArg, STYPE_RAW, STYPE_RAW, "RAW", true))
+                return false;
             break;
 
         case 12:
             // Add PRG
-            if (!dmParseInputFile(optArg, STYPE_PRGA, STYPE_PRG, "PRG", FALSE))
-                return FALSE;
+            if (!dmParseInputFile(optArg, STYPE_PRGA, STYPE_PRG, "PRG", false))
+                return false;
             break;
 
         case 14:
             {
                 char *sectName = "Clear";
                 unsigned int sectStart, sectEnd, sectLen;
-                if (!dmParseSection(optArg, &sectStart, &sectEnd, &sectName, TRUE))
-                    return FALSE;
+                if (!dmParseSection(optArg, &sectStart, &sectEnd, &sectName, true))
+                    return false;
 
                 // Allocate memory block
                 sectLen = sectEnd - sectStart + 1;
@@ -431,7 +431,7 @@
                     sectStart, sectEnd, sectLen, sectLen, sectName);
 
                 if (dmReserveMemBlock(sectStart, sectEnd, sectName, MTYPE_RES) != DMERR_OK)
-                    return FALSE;
+                    return false;
             }
             break;
 
@@ -442,7 +442,7 @@
 
         case 18:
             // Allow overlapping segments
-            optAllowOverlap = TRUE;
+            optAllowOverlap = true;
             break;
 
         case 20:
@@ -451,7 +451,7 @@
             if (optMemModel < 0 || optMemModel >= nmemoryModels)
             {
                 dmErrorMsg("Invalid memory model number %i!\n", optMemModel);
-                return FALSE;
+                return false;
             }
             break;
 
@@ -477,7 +477,7 @@
                 default:
                     dmErrorMsg("Invalid/unknown linker file format '%s'!\n",
                         optArg);
-                    return FALSE;
+                    return false;
             }
             break;
 
@@ -499,13 +499,13 @@
                         default:
                             dmErrorMsg("Invalid init value type '%c' specified for '%s'.\n",
                                 p[1], optArg);
-                            return FALSE;
+                            return false;
                     }
                 }
                 if (!dmGetIntVal(optArg, &tmpi, NULL))
                 {
                     dmErrorMsg("Invalid initvalue '%s'.\n", optArg);
-                    return FALSE;
+                    return false;
                 }
                 optInitValue = tmpi;
             }
@@ -513,14 +513,14 @@
 
         case 28:
             // Set describe mode
-            optDescribe = TRUE;
+            optDescribe = true;
             break;
 
         case 30:
             {
                 size_t cropLen;
-                if (!dmParseSection(optArg, &optCropStart, &optCropEnd, NULL, FALSE))
-                    return FALSE;
+                if (!dmParseSection(optArg, &optCropStart, &optCropEnd, NULL, false))
+                    return false;
 
                 cropLen = optCropEnd - optCropStart + 1;
                 dmMsg(1, "Cutting output to $%.4x - $%.4x "
@@ -528,7 +528,7 @@
                     optCropStart, optCropEnd,
                     cropLen, cropLen);
 
-                optCropOutput = TRUE;
+                optCropOutput = true;
             }
             break;
 
@@ -545,13 +545,13 @@
                 if (!dmGetIntVal(optArg, &tmpi, NULL))
                 {
                     dmErrorMsg("Invalid loading address '%s'.\n", optArg);
-                    return FALSE;
+                    return false;
                 }
                 if (tmpi >= 64*1024)
                 {
                     dmErrorMsg("Invalid or insane loading address %d/$%x!\n",
                         tmpi, tmpi);
-                    return FALSE;
+                    return false;
                 }
                 optLoadAddress = tmpi;
             }
@@ -559,14 +559,14 @@
 
         default:
             dmErrorMsg("Unimplemented option argument '%s'.\n", currArg);
-            return FALSE;
+            return false;
     }
 
-    return TRUE;
+    return true;
 }
 
 
-int dmLoadPRG(const char *filename, const BOOL forceAddr, const int destAddr)
+int dmLoadPRG(const char *filename, const bool forceAddr, const int destAddr)
 {
     FILE *fh;
     int dataSize, loadAddr, endAddr, res = DMERR_OK;
@@ -843,7 +843,7 @@
 int main(int argc, char *argv[])
 {
     FILE *outFile = NULL;
-    BOOL hasOverlaps;
+    bool hasOverlaps;
     int res = DMERR_OK, startAddr, endAddr, dataSize, totalSize;
 
     dmInitProg("objlink", "Simple file-linker", "0.83", NULL, NULL);
@@ -914,11 +914,11 @@
             break;
 
         case STYPE_PRG:
-            dmLoadPRG(srcFiles[i].filename, FALSE, 0);
+            dmLoadPRG(srcFiles[i].filename, false, 0);
             break;
 
         case STYPE_PRGA:
-            dmLoadPRG(srcFiles[i].filename, TRUE, srcFiles[i].addr);
+            dmLoadPRG(srcFiles[i].filename, true, srcFiles[i].addr);
             break;
     }
 
@@ -938,7 +938,7 @@
     qsort(memBlocks, nmemBlocks, sizeof(DMMemBlock), dmCompareMemBlock);
 
     // Check for overlapping conflicts
-    hasOverlaps = FALSE;
+    hasOverlaps = false;
     for (int bk1 = 0; bk1 < nmemBlocks; bk1++)
     for (int bk2 = 0; bk2 < nmemBlocks; bk2++)
     if (bk1 != bk2)
@@ -949,7 +949,7 @@
         DMMemBlock
             *mb1 = &memBlocks[bk1],
             *mb2 = &memBlocks[bk2];
-        BOOL found = FALSE;
+        bool found = false;
 
         if (mb1->type != MTYPE_RES)
             continue;
@@ -958,7 +958,7 @@
         {
             if (olp1->overlaps[no] == bk2)
             {
-                found = TRUE;
+                found = true;
                 break;
             }
         }
@@ -977,7 +977,7 @@
                 (res = dmAddOverlap(olp2, bk1)) != DMERR_OK)
                 goto out;
 
-            hasOverlaps = TRUE;
+            hasOverlaps = true;
         }
     }