ironspdk-sys 0.1.3

ironspdk SPDK FFI bindings and wrappers
#pragma once

extern char *rs_handle_rpc_cmd(const char *cmd, const struct spdk_json_val *params);

#include <spdk/rpc.h>
#include "json.h"

#define RUST_SPDK_RPC(name) \
static \
void __rust_spdk_rpc_##name(struct spdk_jsonrpc_request *request, \
                  const struct spdk_json_val *params) \
{ \
    struct spdk_json_write_ctx *w; \
    char *out; \
\
    out = rs_handle_rpc_cmd(#name, params); \
    w = spdk_jsonrpc_begin_result(request); \
    spdk_json_write_string(w, out); \
    free(out); \
    spdk_jsonrpc_end_result(request, w); \
} \
SPDK_RPC_REGISTER(#name, __rust_spdk_rpc_##name, SPDK_RPC_RUNTIME)