28#ifndef CMSIS_PLUS_POSIX_IO_BLOCK_H_
29#define CMSIS_PLUS_POSIX_IO_BLOCK_H_
33#if defined(__cplusplus)
37#if defined(OS_USE_OS_APP_CONFIG_H)
38#include <cmsis-plus/os-app-config.h>
47#if ! defined(OS_STRING_POSIX_DEVICE_PREFIX)
48#define OS_STRING_POSIX_DEVICE_PREFIX "/dev/"
53#pragma GCC diagnostic push
56#pragma clang diagnostic ignored "-Wc++98-compat"
57#pragma clang diagnostic ignored "-Wdocumentation-unknown-command"
98 operator= (
const device&) =
delete;
100 operator= (
device&&) =
delete;
127 open (
const char* path =
nullptr,
int oflag = 0, ...);
136 vopen (
const char* path,
int oflag, std::va_list args);
139 close (
void)
override;
142 ioctl (
int request, ...);
145 vioctl (
int request, std::va_list args);
178 const char* name_ =
nullptr;
202#pragma GCC diagnostic push
203#pragma GCC diagnostic ignored "-Wpadded"
264 do_vopen (
const char* path,
int oflag, std::va_list args) = 0;
295#pragma GCC diagnostic pop
339#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