12#ifndef CMSIS_PLUS_POSIX_IO_BLOCK_H_
13#define CMSIS_PLUS_POSIX_IO_BLOCK_H_
17#if defined(__cplusplus)
21#if defined(OS_USE_OS_APP_CONFIG_H)
22#include <cmsis-plus/os-app-config.h>
31#if !defined(OS_STRING_POSIX_DEVICE_PREFIX)
32#define OS_STRING_POSIX_DEVICE_PREFIX "/dev/"
37#pragma GCC diagnostic push
39#pragma clang diagnostic ignored "-Wc++98-compat"
40#pragma clang diagnostic ignored "-Wdocumentation-unknown-command"
60#pragma GCC diagnostic push
62#elif defined(__GNUC__)
63#pragma GCC diagnostic ignored "-Wsuggest-final-methods"
64#pragma GCC diagnostic ignored "-Wsuggest-final-types"
115 open (
const char* path =
nullptr,
int oflag = 0, ...);
124 vopen (
const char* path,
int oflag, std::va_list args);
127 close (
void)
override;
130 ioctl (
int request, ...);
133 vioctl (
int request, std::va_list args);
165 const char* name_ =
nullptr;
185#pragma GCC diagnostic pop
189#pragma GCC diagnostic push
190#if defined(__clang__)
191#pragma clang diagnostic ignored "-Wpadded"
192#elif defined(__GNUC__)
193#pragma GCC diagnostic ignored "-Wpadded"
194#pragma GCC diagnostic ignored "-Wsuggest-final-methods"
195#pragma GCC diagnostic ignored "-Wsuggest-final-types"
256 do_vopen (
const char* path,
int oflag, std::va_list args)
289#pragma GCC diagnostic pop
333#pragma GCC diagnostic pop
virtual int do_vioctl(int request, std::va_list args)=0
virtual ~device_impl() override
virtual bool do_is_opened(void) override
virtual void do_sync(void)=0
virtual int do_vopen(const char *path, int oflag, std::va_list args)=0
device_impl & impl(void) const
static const char * device_prefix(void)
virtual int close(void) override
virtual bool match_name(const char *name) const
int vopen(const char *path, int oflag, std::va_list args)
virtual int vioctl(int request, std::va_list args)
int ioctl(int request,...)
virtual ~device() override
int open(const char *path=nullptr, int oflag=0,...)
const char * name(void) const
The core of a double linked list, pointers to next, previous.
#define OS_STRING_POSIX_DEVICE_PREFIX