summaryrefslogtreecommitdiffstats
path: root/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/test-tools/host-tool/src/transport.h
diff options
context:
space:
mode:
Diffstat (limited to 'fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/test-tools/host-tool/src/transport.h')
-rw-r--r--fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/test-tools/host-tool/src/transport.h121
1 files changed, 121 insertions, 0 deletions
diff --git a/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/test-tools/host-tool/src/transport.h b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/test-tools/host-tool/src/transport.h
new file mode 100644
index 000000000..449f438f8
--- /dev/null
+++ b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/test-tools/host-tool/src/transport.h
@@ -0,0 +1,121 @@
+/*
+ * Copyright (C) 2019 Intel Corporation. All rights reserved.
+ * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+ */
+
+#ifndef DEPS_APP_MGR_HOST_TOOL_SRC_TRANSPORT_H_
+#define DEPS_APP_MGR_HOST_TOOL_SRC_TRANSPORT_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* IMRT link message between host and WAMR */
+typedef struct {
+ unsigned short message_type;
+ unsigned int payload_size;
+ char *payload;
+} imrt_link_message_t;
+
+/* The receive phase of IMRT link message */
+typedef enum {
+ Phase_Non_Start,
+ Phase_Leading,
+ Phase_Type,
+ Phase_Size,
+ Phase_Payload
+} recv_phase_t;
+
+/* The receive context of IMRT link message */
+typedef struct {
+ recv_phase_t phase;
+ int size_in_phase;
+ imrt_link_message_t message;
+} imrt_link_recv_context_t;
+
+/**
+ * @brief Send data to WAMR.
+ *
+ * @param fd the connection fd to WAMR
+ * @param buf the buffer that contains content to be sent
+ * @param len size of the buffer to be sent
+ *
+ * @return true if success, false if fail
+ */
+bool
+host_tool_send_data(int fd, const char *buf, unsigned int len);
+
+/**
+ * @brief Handle one byte of IMRT link message
+ *
+ * @param ch the one byte from WAMR to be handled
+ * @param ctx the receive context
+ *
+ * @return -1 invalid sync byte
+ * 1 byte added to buffer, waiting more for complete packet
+ * 0 completed packet
+ * 2 in receiving payload
+ */
+int
+on_imrt_link_byte_arrive(unsigned char ch, imrt_link_recv_context_t *ctx);
+
+/**
+ * @brief Initialize TCP connection with remote server.
+ *
+ * @param address the network address of peer
+ * @param port the network port of peer
+ * @param fd pointer of integer to save the socket fd once return success
+ *
+ * @return true if success, false if fail
+ */
+bool
+tcp_init(const char *address, uint16_t port, int *fd);
+
+/**
+ * @brief Initialize UART connection with remote.
+ *
+ * @param device name of the UART device
+ * @param baudrate baudrate of the device
+ * @param fd pointer of integer to save the uart fd once return success
+ *
+ * @return true if success, false if fail
+ */
+bool
+uart_init(const char *device, int baudrate, int *fd);
+
+/**
+ * @brief Parse UART baudrate from an integer
+ *
+ * @param the baudrate interger to be parsed
+ *
+ * @return true if success, false if fail
+ *
+ * @par
+ * @code
+ * int baudrate = parse_baudrate(9600);
+ * ...
+ * uart_term.c_cflag = baudrate;
+ * ...
+ * @endcode
+ */
+int
+parse_baudrate(int baud);
+
+/**
+ * @brief Send data over UDP.
+ *
+ * @param address network address of the remote
+ * @param port network port of the remote
+ * @param buf the buffer that contains content to be sent
+ * @param len size of the buffer to be sent
+ *
+ * @return true if success, false if fail
+ */
+bool
+udp_send(const char *address, int port, const char *buf, int len);
+
+#ifdef __cplusplus
+} /* end of extern "C" */
+#endif
+
+#endif /* DEPS_APP_MGR_HOST_TOOL_SRC_TRANSPORT_H_ */