aboutsummaryrefslogtreecommitdiffstats
path: root/kernel
diff options
context:
space:
mode:
authorAman Goel <amangoel@umich.edu>2018-07-04 15:14:58 -0400
committerAman Goel <amangoel@umich.edu>2018-07-04 15:14:58 -0400
commitf0b1ec3e9758582bc0215e646c331e45a4e2a824 (patch)
tree2847b1045fbf06420cfdce3ccf8bae1346d8c5b3 /kernel
parent6e63df6dd08fe424f46039d26f9f238ac1cb4494 (diff)
parent4d343fc1cdafe469484846051680ca0b1f948549 (diff)
downloadyosys-f0b1ec3e9758582bc0215e646c331e45a4e2a824.tar.gz
yosys-f0b1ec3e9758582bc0215e646c331e45a4e2a824.tar.bz2
yosys-f0b1ec3e9758582bc0215e646c331e45a4e2a824.zip
Merge branch 'YosysHQ-master'
Diffstat (limited to 'kernel')
-rw-r--r--kernel/driver.cc19
-rw-r--r--kernel/yosys.cc2
2 files changed, 19 insertions, 2 deletions
diff --git a/kernel/driver.cc b/kernel/driver.cc
index bec872c24..178641101 100644
--- a/kernel/driver.cc
+++ b/kernel/driver.cc
@@ -85,20 +85,37 @@ USING_YOSYS_NAMESPACE
#ifdef EMSCRIPTEN
# include <sys/stat.h>
# include <sys/types.h>
+# include <emscripten.h>
extern "C" int main(int, char**);
extern "C" void run(const char*);
extern "C" const char *errmsg();
extern "C" const char *prompt();
-int main(int, char**)
+int main(int argc, char **argv)
{
+ EM_ASM(
+ if (ENVIRONMENT_IS_NODE)
+ {
+ FS.mkdir('/hostcwd');
+ FS.mount(NODEFS, { root: '.' }, '/hostcwd');
+ FS.mkdir('/hostfs');
+ FS.mount(NODEFS, { root: '/' }, '/hostfs');
+ }
+ );
+
mkdir("/work", 0777);
chdir("/work");
log_files.push_back(stdout);
log_error_stderr = true;
yosys_banner();
yosys_setup();
+
+ if (argc == 2)
+ {
+ // Run the first argument as a script file
+ run_frontend(argv[1], "script", 0, 0, 0);
+ }
}
void run(const char *command)
diff --git a/kernel/yosys.cc b/kernel/yosys.cc
index aa5901271..750a154e6 100644
--- a/kernel/yosys.cc
+++ b/kernel/yosys.cc
@@ -739,7 +739,7 @@ std::string proc_self_dirname()
#ifdef EMSCRIPTEN
std::string proc_share_dirname()
{
- return "/share";
+ return "/share/";
}
#else
std::string proc_share_dirname()