X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/55a08c7439db5b0335a5b26e40b3a46e1e03d3e8..5f4e5ebf04edc2c9e91429952943a41b86dd0bb9:/src/simix/simcalls.py diff --git a/src/simix/simcalls.py b/src/simix/simcalls.py index 5b0f872197..96b621f6c9 100755 --- a/src/simix/simcalls.py +++ b/src/simix/simcalls.py @@ -292,19 +292,20 @@ if __name__ == '__main__': fd.close() # - # popping_enum.h + # popping_enum.hpp # - fd = header("popping_enum.h") + fd = header("popping_enum.hpp") fd.write('/**\n') fd.write(' * @brief All possible simcalls.\n') fd.write(' */\n') - fd.write('typedef enum {\n') + fd.write('enum e_smx_simcall_t {\n') fd.write(' SIMCALL_NONE,\n') handle(fd, Simcall.enum, simcalls, simcalls_dict) - fd.write(' NUM_SIMCALLS\n') - fd.write('} e_smx_simcall_t;\n') + fd.write('};\n') + fd.write('\n') + fd.write('constexpr int NUM_SIMCALLS = ' + str(1 + len(simcalls)) + ';\n'); fd.close() # @@ -314,6 +315,7 @@ if __name__ == '__main__': fd = header("popping_generated.cpp") fd.write('#include "smx_private.hpp"\n') + fd.write('#include \n') fd.write('#include \n') fd.write('#if SIMGRID_HAVE_MC\n') fd.write('#include "src/mc/mc_forward.hpp"\n') @@ -325,12 +327,12 @@ if __name__ == '__main__': fd.write( '/** @brief Simcalls\' names (generated from src/simix/simcalls.in) */\n') - fd.write('const char* simcall_names[] = {\n') + fd.write('constexpr std::array simcall_names{{\n') fd.write(' "SIMCALL_NONE",\n') handle(fd, Simcall.string, simcalls, simcalls_dict) - fd.write('};\n\n') + fd.write('}};\n\n') fd.write('/** @private\n') fd.write( @@ -350,8 +352,6 @@ if __name__ == '__main__': handle(fd, Simcall.case, simcalls, simcalls_dict) - fd.write(' case NUM_SIMCALLS:\n') - fd.write(' break;\n') fd.write(' case SIMCALL_NONE:\n') fd.write(' throw std::invalid_argument(simgrid::xbt::string_printf("Asked to do the noop syscall on %s@%s",\n') fd.write(' get_cname(),\n')