From 71b89bc9ceb59f2603cf4b0635849269597a4823 Mon Sep 17 00:00:00 2001 From: Oxore Date: Tue, 30 Apr 2024 01:38:42 +0300 Subject: Impl --stop and --gdb options --- chardev.hpp | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 chardev.hpp (limited to 'chardev.hpp') diff --git a/chardev.hpp b/chardev.hpp new file mode 100644 index 0000000..0a0d9df --- /dev/null +++ b/chardev.hpp @@ -0,0 +1,32 @@ +/* SPDX-License-Identifier: Unlicense + */ + +#pragma once + +#include +#include + +enum class CharDevType: uint8_t { + kUndefined = 0, + kPty, ///< Creates new PTY + kTcp, ///< Binds and listens to specified address and port +}; + +struct CharDev { + CharDevType type{}; + const char* path{}; + int fd{-1}; + size_t path_len{}; + uint16_t port{}; + static CharDev Invalid(const char* path = nullptr) + { + return CharDev{CharDevType::kUndefined, path}; + } + static CharDev Pty(void) { return CharDev{CharDevType::kPty}; } + static CharDev Tcp(const char* host, size_t path_len, uint16_t port) + { + return CharDev{CharDevType::kTcp, host, -1, path_len, port}; + } + static CharDev Parse(const char* path); +}; + -- cgit v1.2.3