From 5121b368cd2f5e650e1808e10c231444e02da279 Mon Sep 17 00:00:00 2001 From: Ali Mohammad Pur Date: Thu, 4 May 2023 00:37:55 +0330 Subject: [PATCH] LibWasm: Implement the random_get() call --- Userland/Libraries/LibWasm/WASI/Wasi.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/Userland/Libraries/LibWasm/WASI/Wasi.cpp b/Userland/Libraries/LibWasm/WASI/Wasi.cpp index 034eb18ac3..b2e145a6de 100644 --- a/Userland/Libraries/LibWasm/WASI/Wasi.cpp +++ b/Userland/Libraries/LibWasm/WASI/Wasi.cpp @@ -7,6 +7,7 @@ #include #include #include +#include #include #include #include @@ -676,6 +677,14 @@ ErrorOr> Implementation::impl$clock_time_get(Configuration&, C return Result { static_cast(ts.tv_sec) * nanoseconds_in_second + static_cast(ts.tv_nsec) }; } +ErrorOr> Implementation::impl$random_get(Configuration& configuration, Pointer buf, Size buf_len) +{ + auto buffer_slice = TRY(slice_typed_memory(configuration, buf, buf_len)); + fill_with_random(buffer_slice); + + return Result {}; +} + #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wunused-parameter" @@ -710,7 +719,6 @@ ErrorOr> Implementation::impl$path_unlink_file(Configuration&, FD, ErrorOr> Implementation::impl$poll_oneoff(Configuration&, ConstPointer in, Pointer out, Size nsubscriptions) { return Errno::NoSys; } ErrorOr> Implementation::impl$proc_raise(Configuration&, Signal) { return Errno::NoSys; } ErrorOr> Implementation::impl$sched_yield(Configuration&) { return Errno::NoSys; } -ErrorOr> Implementation::impl$random_get(Configuration&, Pointer buf, Size buf_len) { return Errno::NoSys; } ErrorOr> Implementation::impl$sock_accept(Configuration&, FD fd, FDFlags fd_flags) { return Errno::NoSys; } ErrorOr> Implementation::impl$sock_recv(Configuration&, FD fd, Pointer ri_data, Size ri_data_len, RIFlags ri_flags) { return Errno::NoSys; } ErrorOr> Implementation::impl$sock_send(Configuration&, FD fd, Pointer si_data, Size si_data_len, SIFlags si_flags) { return Errno::NoSys; }