@@ -314,8 +314,9 @@ libwasmtime_run_module (void *cookie, char *const argv[], wasm_engine_t *engine,
314314static void
315315libwasmtime_run_component (void * cookie , char * const argv [], wasm_engine_t * engine , wasm_byte_vec_t * wasm )
316316{
317- const char * wasi_cli_run_interface = "wasi:cli/run@0.2.0" ;
318- const char * wasi_cli_run_interface_run = "run" ;
317+ const char * const wasi_cli_run_interface = "wasi:cli/run@0.2.0" ;
318+ const char * const wasi_cli_run_interface_run = "run" ;
319+ char * const * arg ;
319320 wasm_byte_vec_t error_message ;
320321
321322 // Load needed functions
@@ -333,6 +334,7 @@ libwasmtime_run_component (void *cookie, char *const argv[], wasm_engine_t *engi
333334 void (* wasmtime_wasip2_config_inherit_stdin ) (wasmtime_wasip2_config_t * config );
334335 void (* wasmtime_wasip2_config_inherit_stdout ) (wasmtime_wasip2_config_t * config );
335336 void (* wasmtime_wasip2_config_inherit_stderr ) (wasmtime_wasip2_config_t * config );
337+ void (* wasmtime_wasip2_config_arg ) (wasmtime_wasip2_config_t * config , const char * arg , size_t arg_len );
336338 void (* wasmtime_context_set_wasip2 ) (wasmtime_context_t * context , wasmtime_wasip2_config_t * config );
337339 wasmtime_component_linker_t * (* wasmtime_component_linker_new ) (wasm_engine_t * engine );
338340 wasmtime_error_t * (* wasmtime_component_linker_add_wasip2 ) (wasmtime_component_linker_t * linker );
@@ -375,6 +377,7 @@ libwasmtime_run_component (void *cookie, char *const argv[], wasm_engine_t *engi
375377 wasmtime_wasip2_config_inherit_stdin = dlsym (cookie , "wasmtime_wasip2_config_inherit_stdin" );
376378 wasmtime_wasip2_config_inherit_stdout = dlsym (cookie , "wasmtime_wasip2_config_inherit_stdout" );
377379 wasmtime_wasip2_config_inherit_stderr = dlsym (cookie , "wasmtime_wasip2_config_inherit_stderr" );
380+ wasmtime_wasip2_config_arg = dlsym (cookie , "wasmtime_wasip2_config_arg" );
378381 wasmtime_context_set_wasip2 = dlsym (cookie , "wasmtime_context_set_wasip2" );
379382 wasmtime_component_linker_new = dlsym (cookie , "wasmtime_component_linker_new" );
380383 wasmtime_component_linker_add_wasip2 = dlsym (cookie , "wasmtime_component_linker_add_wasip2" );
@@ -391,7 +394,7 @@ libwasmtime_run_component (void *cookie, char *const argv[], wasm_engine_t *engi
391394 if (wasm_engine_delete == NULL || wasm_byte_vec_delete == NULL || wasmtime_store_new == NULL
392395 || wasmtime_store_delete == NULL || wasmtime_store_context == NULL || wasmtime_component_new == NULL
393396 || wasmtime_wasip2_config_new == NULL || wasmtime_wasip2_config_inherit_stdin == NULL
394- || wasmtime_wasip2_config_inherit_stdout == NULL || wasmtime_wasip2_config_inherit_stderr == NULL
397+ || wasmtime_wasip2_config_inherit_stdout == NULL || wasmtime_wasip2_config_inherit_stderr == NULL || wasmtime_wasip2_config_arg == NULL
395398 || wasmtime_context_set_wasip2 == NULL || wasmtime_component_linker_new == NULL || wasmtime_component_linker_add_wasip2 == NULL
396399 || wasmtime_component_linker_instantiate == NULL || wasmtime_component_instance_get_export_index == NULL
397400 || wasmtime_component_instance_get_func == NULL || wasmtime_component_func_call == NULL || wasmtime_component_export_index_delete == NULL
@@ -422,7 +425,10 @@ libwasmtime_run_component (void *cookie, char *const argv[], wasm_engine_t *engi
422425 wasmtime_wasip2_config_inherit_stdin (wasi_config );
423426 wasmtime_wasip2_config_inherit_stdout (wasi_config );
424427 wasmtime_wasip2_config_inherit_stderr (wasi_config );
425- // TODO: argv
428+
429+ for (arg = argv ; * arg != NULL ; ++ arg )
430+ wasmtime_wasip2_config_arg (wasi_config , * arg , strlen (* arg ));
431+
426432 wasmtime_context_set_wasip2 (context , wasi_config );
427433
428434 // Get wasi exposing linker
0 commit comments