Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore: add extism_http_status_code and ExtismPointer #3

Merged
merged 1 commit into from
Nov 18, 2022
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
47 changes: 26 additions & 21 deletions extism-pdk.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,57 +4,62 @@

#define IMPORT(a, b) __attribute__((import_module(a), import_name(b)))

typedef uint64_t ExtismPointer;

IMPORT("env", "extism_input_length") extern uint64_t extism_input_length();
IMPORT("env", "extism_length") extern uint64_t extism_length(uint64_t);
IMPORT("env", "extism_alloc") extern uint64_t extism_alloc(uint64_t);
IMPORT("env", "extism_free") extern void extism_free(uint64_t);
IMPORT("env", "extism_length") extern uint64_t extism_length(ExtismPointer);
IMPORT("env", "extism_alloc") extern ExtismPointer extism_alloc(uint64_t);
IMPORT("env", "extism_free") extern void extism_free(ExtismPointer);

IMPORT("env", "extism_input_load_u8")
extern uint8_t extism_input_load_u8(uint64_t);
extern uint8_t extism_input_load_u8(ExtismPointer);

IMPORT("env", "extism_input_load_u64")
extern uint64_t extism_input_load_u64(uint64_t);
extern uint64_t extism_input_load_u64(ExtismPointer);

IMPORT("env", "extism_output_set")
extern void extism_output_set(uint64_t, uint64_t);
extern void extism_output_set(ExtismPointer, uint64_t);

IMPORT("env", "extism_error_set")
extern void extism_error_set(uint64_t);
extern void extism_error_set(ExtismPointer);

IMPORT("env", "extism_config_get")
extern uint64_t extism_config_get(uint64_t);
extern ExtismPointer extism_config_get(ExtismPointer);

IMPORT("env", "extism_var_get")
extern uint64_t extism_var_get(uint64_t);
extern ExtismPointer extism_var_get(ExtismPointer);

IMPORT("env", "extism_var_set")
extern void extism_var_set(uint64_t, uint64_t);
extern void extism_var_set(ExtismPointer, ExtismPointer);

IMPORT("env", "extism_store_u8")
extern void extism_store_u8(uint64_t, uint8_t);
extern void extism_store_u8(ExtismPointer, uint8_t);

IMPORT("env", "extism_load_u8")
extern uint8_t extism_load_u8(uint64_t);
extern uint8_t extism_load_u8(ExtismPointer);

IMPORT("env", "extism_store_u64")
extern void extism_store_u64(uint64_t, uint64_t);
extern void extism_store_u64(ExtismPointer, uint64_t);

IMPORT("env", "extism_load_u64")
extern uint64_t extism_load_u64(uint64_t);
extern uint64_t extism_load_u64(ExtismPointer);

IMPORT("env", "extism_http_request")
extern uint64_t extism_http_request(uint64_t, uint64_t);
extern ExtismPointer extism_http_request(ExtismPointer, ExtismPointer);

IMPORT("env", "extism_http_status_code")
extern int32_t extism_http_status_code();

IMPORT("env", "extism_log_info")
extern void extism_log_info(uint64_t);
extern void extism_log_info(ExtismPointer);
IMPORT("env", "extism_log_debug")
extern void extism_log_debug(uint64_t);
extern void extism_log_debug(ExtismPointer);
IMPORT("env", "extism_log_warn")
extern void extism_log_warn(uint64_t);
extern void extism_log_warn(ExtismPointer);
IMPORT("env", "extism_log_error")
extern void extism_log_error(uint64_t);
extern void extism_log_error(ExtismPointer);

static void extism_load(uint64_t offs, uint8_t *buffer, uint64_t length) {
static void extism_load(ExtismPointer offs, uint8_t *buffer, uint64_t length) {
uint64_t n;
uint64_t left = 0;

Expand Down Expand Up @@ -88,7 +93,7 @@ static void extism_load_input(uint8_t *buffer, uint64_t length) {
}
}

static void extism_store(uint64_t offs, const uint8_t *buffer,
static void extism_store(ExtismPointer offs, const uint8_t *buffer,
uint64_t length) {
uint64_t n;
uint64_t left = 0;
Expand Down