starting data converter tool
[ia32rtools.git] / tools / masm_tools.h
diff --git a/tools/masm_tools.h b/tools/masm_tools.h
new file mode 100644 (file)
index 0000000..717001f
--- /dev/null
@@ -0,0 +1,35 @@
+#if __SIZEOF_LONG__ != 8
+#error fix ret/strtoul to do 64bit
+#endif
+
+static unsigned long parse_number(const char *number)
+{
+  int len = strlen(number);
+  const char *p = number;
+  char *endp = NULL;
+  unsigned long ret;
+  int neg = 0;
+  int bad;
+
+  if (*p == '-') {
+    neg = 1;
+    p++;
+  }
+  if (len > 1 && *p == '0')
+    p++;
+  if (number[len - 1] == 'h') {
+    ret = strtoul(p, &endp, 16);
+    bad = (*endp != 'h');
+  }
+  else {
+    ret = strtoul(p, &endp, 10);
+    bad = (*endp != 0);
+  }
+  if (bad)
+    aerr("number parsing failed (%s)\n", number);
+  if (neg)
+    ret = -ret;
+  return ret;
+}
+
+