12#ifndef CMSIS_PLUS_POSIX_IO_IO_H_
13#define CMSIS_PLUS_POSIX_IO_IO_H_
17#if defined(__cplusplus)
21#if defined(OS_USE_OS_APP_CONFIG_H)
22#include <cmsis-plus/os-app-config.h>
36#pragma GCC diagnostic push
38#pragma clang diagnostic ignored "-Wc++98-compat"
39#pragma clang diagnostic ignored "-Wdocumentation-unknown-command"
65 open (
const char* path,
int oflag, ...);
68 vopen (
const char* path,
int oflag, std::va_list args);
80#pragma GCC diagnostic push
82#elif defined(__GNUC__)
83#pragma GCC diagnostic ignored "-Wsuggest-final-methods"
97 vopen (
const char* path,
int oflag, std::va_list args);
99#pragma GCC diagnostic push
100#if defined(__clang__)
101#elif defined(__GNUC__)
102#pragma GCC diagnostic ignored "-Wshadow"
106#pragma GCC diagnostic pop
119#pragma GCC diagnostic push
120#if defined(__clang__)
121#elif defined(__GNUC__)
122#pragma GCC diagnostic ignored "-Wshadow"
137#pragma GCC diagnostic pop
157 io (
const io&) =
delete;
160 operator= (
const io&)
189 read (
void* buf, std::size_t nbyte);
192 write (
const void* buf, std::size_t nbyte);
198 fcntl (
int cmd, ...);
201 vfcntl (
int cmd, std::va_list args);
206#pragma GCC diagnostic push
207#if defined(__clang__)
208#elif defined(__GNUC__)
209#pragma GCC diagnostic ignored "-Wredundant-tags"
213#pragma GCC diagnostic pop
216 lseek (off_t offset,
int whence);
293#pragma GCC diagnostic pop
297#pragma GCC diagnostic push
298#if defined(__clang__)
299#elif defined(__GNUC__)
300#pragma GCC diagnostic ignored "-Wsuggest-final-methods"
301#pragma GCC diagnostic ignored "-Wsuggest-final-types"
377#pragma GCC diagnostic push
378#if defined(__clang__)
379#elif defined(__GNUC__)
380#pragma GCC diagnostic ignored "-Wredundant-tags"
384#pragma GCC diagnostic pop
419#pragma GCC diagnostic pop
442 file_descriptor_ = fildes;
454 return file_descriptor_;
487#pragma GCC diagnostic pop
File descriptors manager static class.<cmsis-plus/posix-io/file-descriptors-manager....
virtual bool do_is_connected(void)
virtual bool do_is_opened(void)=0
virtual int do_close(void)=0
virtual ssize_t do_writev(const iovec *iov, int iovcnt)
virtual int do_vfcntl(int cmd, std::va_list args)
virtual int do_isatty(void)
virtual ssize_t do_write(const void *buf, std::size_t nbyte)=0
virtual void do_deallocate(void)
virtual ssize_t do_read(void *buf, std::size_t nbyte)=0
virtual int do_fstat(struct stat *buf)
virtual off_t do_lseek(off_t offset, int whence)=0
virtual ssize_t writev(const iovec *iov, int iovcnt)
file_descriptor_t file_descriptor(void) const
virtual off_t lseek(off_t offset, int whence)
io * alloc_file_descriptor(void)
io_impl & impl(void) const
virtual int fstat(struct stat *buf)
virtual ssize_t write(const void *buf, std::size_t nbyte)
void clear_file_descriptor(void)
virtual ssize_t read(void *buf, std::size_t nbyte)
type_t get_type(void) const
virtual int vfcntl(int cmd, std::va_list args)
int socket(int domain, int type, int protocol)
io * open(const char *path, int oflag,...)
io * vopen(const char *path, int oflag, std::va_list args)
int stat(const char *path, struct stat *buf)
constexpr file_descriptor_t no_file_descriptor