From 24e25f255f00af7674798f50247ffd10e743b2a7 Mon Sep 17 00:00:00 2001 From: Sean McBride Date: Fri, 24 Jul 2020 13:07:58 -0400 Subject: [PATCH] feat: add sandbox_state_stringify --- runtime/include/sandbox.h | 1 + runtime/src/sandbox.c | 46 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 47 insertions(+) diff --git a/runtime/include/sandbox.h b/runtime/include/sandbox.h index a9cd53c..8bc7ef2 100644 --- a/runtime/include/sandbox.h +++ b/runtime/include/sandbox.h @@ -127,6 +127,7 @@ void sandbox_free(struct sandbox *sandbox); void sandbox_free_linear_memory(struct sandbox *sandbox); void sandbox_main(struct sandbox *sandbox); int sandbox_parse_http_request(struct sandbox *sandbox, size_t length); +char * sandbox_state_stringify(sandbox_state_t sandbox_state); /** * Given a sandbox, returns the module that sandbox is executing diff --git a/runtime/src/sandbox.c b/runtime/src/sandbox.c index fa923b1..af8839a 100644 --- a/runtime/src/sandbox.c +++ b/runtime/src/sandbox.c @@ -273,6 +273,52 @@ sandbox_initialize_io_handles_and_file_descriptors(struct sandbox *sandbox) assert(f == 2); } +char * +sandbox_state_stringify(sandbox_state_t state) +{ + switch (state) { + case SANDBOX_UNINITIALIZED: + return "Uninitialized"; + case SANDBOX_ALLOCATED: + return "Allocated"; + case SANDBOX_SET_AS_INITIALIZED: + return "Set As Initialized"; + case SANDBOX_INITIALIZED: + return "Initialized"; + case SANDBOX_SET_AS_RUNNABLE: + return "Set As Runnable"; + case SANDBOX_RUNNABLE: + return "Runnable"; + case SANDBOX_SET_AS_RUNNING: + return "Set As Running"; + case SANDBOX_RUNNING: + return "Running"; + case SANDBOX_SET_AS_PREEMPTED: + return "Set As Preempted"; + case SANDBOX_PREEMPTED: + return "Preempted"; + case SANDBOX_SET_AS_BLOCKED: + return "Set As Blocked"; + case SANDBOX_BLOCKED: + return "Blocked"; + case SANDBOX_SET_AS_RETURNED: + return "Set As Returned"; + case SANDBOX_RETURNED: + return "Returned"; + case SANDBOX_SET_AS_COMPLETE: + return "Set As Complete"; + case SANDBOX_COMPLETE: + return "Complete"; + case SANDBOX_SET_AS_ERROR: + return "Set As Error"; + case SANDBOX_ERROR: + return "Error"; + default: + /* Crash, as this should be exclusive */ + assert(0); + } +} + /** * Sandbox execution logic * Handles setup, request parsing, WebAssembly initialization, function execution, response building and sending, and