}
};
+// all RPC structures must be packed
+#pragma pack(push, 1)
// ggml_tensor is serialized into rpc_tensor
-#pragma pack(1)
struct rpc_tensor {
uint64_t id;
uint32_t type;
RPC_CMD_COUNT,
};
-#pragma pack(1)
struct rpc_msg_alloc_buffer_req {
uint64_t size;
};
-#pragma pack(1)
struct rpc_msg_alloc_buffer_rsp {
uint64_t remote_ptr;
uint64_t remote_size;
};
-#pragma pack(1)
struct rpc_msg_get_alignment_rsp {
uint64_t alignment;
};
-#pragma pack(1)
struct rpc_msg_get_max_size_rsp {
uint64_t max_size;
};
-#pragma pack(1)
struct rpc_msg_buffer_get_base_req {
uint64_t remote_ptr;
};
-#pragma pack(1)
struct rpc_msg_buffer_get_base_rsp {
uint64_t base_ptr;
};
-#pragma pack(1)
struct rpc_msg_free_buffer_req {
uint64_t remote_ptr;
};
-#pragma pack(1)
struct rpc_msg_buffer_clear_req {
uint64_t remote_ptr;
uint8_t value;
};
-#pragma pack(1)
struct rpc_msg_get_tensor_req {
rpc_tensor tensor;
uint64_t offset;
uint64_t size;
};
-#pragma pack(1)
struct rpc_msg_copy_tensor_req {
rpc_tensor src;
rpc_tensor dst;
};
-#pragma pack(1)
struct rpc_msg_copy_tensor_rsp {
uint8_t result;
};
-#pragma pack(1)
struct rpc_msg_graph_compute_rsp {
uint8_t result;
};
-#pragma pack(1)
struct rpc_msg_get_device_memory_rsp {
uint64_t free_mem;
uint64_t total_mem;
};
+#pragma pack(pop)
// RPC data structures