/* Copyright 1999 Kazuhiro HIWADA Copyright 2006 Suraj N. Kurapati This file is part of Ruby-VPI. Ruby-VPI is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. Ruby-VPI is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Ruby-VPI; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "main.h" #include "relay.h" #include #include // load the SWIG-generated Ruby interface to VPI #include "swig_wrap.cin" void main_init() { ruby_init(); ruby_init_loadpath(); // load the VPI interface for Ruby Init_vpi(); rb_define_module_function(mVpi, "relay_verilog", main_relay_verilog, 0); rb_define_module_function(mVpi, "relay_ruby_reason", main_relay_ruby_reason, 0); // initialize the Ruby bench char* benchFile = getenv("RUBY_VPI__RUBY_BENCH_FILE"); if (benchFile != NULL) { ruby_script(benchFile); rb_load_file(benchFile); } else { common_printf("error: environment variable RUBY_VPI__RUBY_BENCH_FILE is uninitialized."); exit(EXIT_FAILURE); } // run the test bench ruby_run(); ruby_finalize(); } VALUE main_relay_verilog(VALUE arSelf) { relay_verilog(); return arSelf; } VALUE main_relay_ruby_reason(VALUE arSelf) { return SWIG_NewPointerObj(vlog_relay_ruby_reason(), SWIGTYPE_p_t_cb_data, 0); }