summaryrefslogtreecommitdiff
path: root/kernel/yosys.h
diff options
context:
space:
mode:
authorWilliam Speirs <bill.speirs@gmail.com>2014-10-16 12:06:54 -0400
committerClifford Wolf <clifford@clifford.at>2014-10-17 11:41:36 +0200
commit31267a1ae8d670c4b8749fc55b07c01d9285a488 (patch)
tree678fb6b416aef122cbb9b9affd5f9c702dc2ce03 /kernel/yosys.h
parentfda52f05f277720e12aadb4716415ec9bff616a5 (diff)
Header changes so it will compile on VS
Diffstat (limited to 'kernel/yosys.h')
-rw-r--r--kernel/yosys.h29
1 files changed, 28 insertions, 1 deletions
diff --git a/kernel/yosys.h b/kernel/yosys.h
index 239146d7..e4465edf 100644
--- a/kernel/yosys.h
+++ b/kernel/yosys.h
@@ -68,6 +68,30 @@
# include <tcl.h>
#endif
+// a few platform specific things
+#ifdef _WIN32
+# define NOMINMAX
+# include <Windows.h>
+# include <stdint.h> // takes care of a number of typedefs
+# include <io.h>
+# include <direct.h>
+
+// these are always a bit dangerous :-)
+# define strtok_r strtok_s
+# define strdup _strdup
+# define snprintf _snprintf
+# define access _access
+# define getcwd _getcwd
+# define mkdir _mkdir
+# define popen _popen
+# define pclose _pclose
+
+# define PATH_MAX MAX_PATH
+# define F_OK 00
+# define X_OK 00 // note this is NOT correct as there is no execute flag in Windows
+#endif
+
+
#define PRIVATE_NAMESPACE_BEGIN namespace {
#define PRIVATE_NAMESPACE_END }
#define YOSYS_NAMESPACE_BEGIN namespace Yosys {
@@ -85,6 +109,9 @@
#if !defined(__GNUC__) && !defined(__clang__)
# define __attribute__(...)
+# define _NORETURN_ __declspec(noreturn)
+#else
+# define _NORETURN_
#endif
YOSYS_NAMESPACE_BEGIN
@@ -96,7 +123,7 @@ namespace RTLIL {
struct Cell;
}
-std::string stringf(const char *fmt, ...) __attribute__ ((format (printf, 1, 2)));
+std::string stringf(const char *fmt, ...) __attribute__((format(printf, 1, 2)));
std::string vstringf(const char *fmt, va_list ap);
std::string next_token(std::string &text, const char *sep);
bool patmatch(const char *pattern, const char *string);