diff options
author | Claire Xen <claire@clairexen.net> | 2022-02-15 17:57:27 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-02-15 17:57:27 +0100 |
commit | 57ef73b2053ad644cfecd608dafdb9b848fc6cdb (patch) | |
tree | 0c3ff28e48071a2c921b7ed1fe7218124c1df629 /src/misc/util | |
parent | 9b245d9f6910c048e9bbcf95ee5dee46f2f24f2c (diff) | |
parent | 264dfc7ed414476438e4a858258f5516d7b863c6 (diff) | |
download | abc-57ef73b2053ad644cfecd608dafdb9b848fc6cdb.tar.gz abc-57ef73b2053ad644cfecd608dafdb9b848fc6cdb.tar.bz2 abc-57ef73b2053ad644cfecd608dafdb9b848fc6cdb.zip |
Merge pull request #10 from YosysHQ/yosys-experimental
Integrate write_cex and cexinfo and some fixes in write_cex output code
Diffstat (limited to 'src/misc/util')
-rw-r--r-- | src/misc/util/utilFile.c | 28 | ||||
-rw-r--r-- | src/misc/util/utilSignal.c | 4 |
2 files changed, 32 insertions, 0 deletions
diff --git a/src/misc/util/utilFile.c b/src/misc/util/utilFile.c index 4bb2f4c6..f64d71c2 100644 --- a/src/misc/util/utilFile.c +++ b/src/misc/util/utilFile.c @@ -25,6 +25,23 @@ #include <fcntl.h> #include <sys/stat.h> +// Handle legacy macros +#if !defined(S_IREAD) +#if defined(S_IRUSR) +#define S_IREAD S_IRUSR +#else +#error S_IREAD is undefined +#endif +#endif + +#if !defined(S_IWRITE) +#if defined(S_IWUSR) +#define S_IWRITE S_IWUSR +#else +#error S_IWRITE is undefined +#endif +#endif + #if defined(_MSC_VER) || defined(__MINGW32__) #include <windows.h> #include <process.h> @@ -102,6 +119,17 @@ int tmpFile(const char* prefix, const char* suffix, char** out_name) } assert(0); // -- could not open temporary file return 0; +#elif defined(__wasm) + static int seq = 0; // no risk of collision since we're in a sandbox + int fd; + *out_name = (char*)malloc(strlen(prefix) + strlen(suffix) + 9); + sprintf(*out_name, "%s%08d%s", prefix, seq++, suffix); + fd = open(*out_name, O_CREAT | O_EXCL | O_RDWR, S_IREAD | S_IWRITE); + if (fd == -1){ + free(*out_name); + *out_name = NULL; + } + return fd; #else int fd; *out_name = (char*)malloc(strlen(prefix) + strlen(suffix) + 7); diff --git a/src/misc/util/utilSignal.c b/src/misc/util/utilSignal.c index 03af81d1..137ff54b 100644 --- a/src/misc/util/utilSignal.c +++ b/src/misc/util/utilSignal.c @@ -43,7 +43,11 @@ ABC_NAMESPACE_IMPL_START int Util_SignalSystem(const char* cmd) { +#if defined(__wasm) + return -1; +#else return system(cmd); +#endif } int tmpFile(const char* prefix, const char* suffix, char** out_name); |