39 #if !defined (USE_FINAL_H) && !defined (COMPILE_FINAL_CUT) 40 #error "Only <final/final.h> can be included directly." 43 #if defined(__linux__) 45 #if defined(__arm__) && defined(__GLIBC__) && defined(__GLIBC_PREREQ) 47 #if !__GLIBC_PREREQ(2,30) 48 #define ARM_ISA_SYSCTL 52 #if defined(__x86_64__) || defined(__i386) || defined(ARM_ISA_SYSCTL) 53 #define ISA_SYSCTL_SUPPORT 55 #endif // defined(__x86_64__) || defined(__i386) || defined(ARM_ISA_SYSCTL) 57 #endif // defined(__linux__) 60 #include <sys/ioctl.h> 62 #include <sys/types.h> 69 #include "final/util/fsystem.h" 88 #if defined(ISA_SYSCTL_SUPPORT) 89 inline auto inPortByte (uShort port) noexcept -> uChar
override 94 inline uChar inPortByte (uShort) noexcept
override 101 #if defined(ISA_SYSCTL_SUPPORT) 102 inline void outPortByte (uChar value, uShort port) noexcept
override 104 ::outb (value, port);
107 inline void outPortByte (uChar, uShort) noexcept
override 111 inline auto isTTY (
int file_descriptor)
const noexcept ->
int override 113 return ::isatty(file_descriptor);
116 inline auto ioctl (
int file_descriptor, uLong request, ...) noexcept ->
int override 119 va_start (args, request);
120 void* argp = va_arg (args,
void*);
123 int ret = ::ioctl (file_descriptor, request, argp);
127 inline auto pipe (
PipeData& pipe) noexcept ->
int override 129 return ::pipe(pipe.getArrayData());
132 inline auto open (
const char* pathname,
int flags, ...) noexcept ->
int override 135 va_start (args, flags);
136 auto mode =
static_cast<mode_t
>(va_arg (args,
int));
139 int ret = ::open (pathname, flags, mode);
143 inline auto close (
int file_descriptor) noexcept ->
int override 145 return ::close(file_descriptor);
148 inline auto fopen (
const char* path,
const char* mode) noexcept -> FILE*
override 150 return std::fopen (path, mode);
153 inline auto fclose (FILE* file_ptr) ->
int override 155 return std::fclose (file_ptr);
158 inline auto fputs (
const char* str, FILE* stream) noexcept ->
int override 160 return std::fputs (str, stream);
163 inline auto putchar (
int c) noexcept ->
int override 165 #if defined(__sun) && defined(__SVR4) 166 return std::putchar(
char(c));
168 return std::putc(c, stdout);
172 inline auto putstring (
const char* str, std::size_t len) noexcept ->
int override 174 return int(std::fwrite(str, 1, len, stdout));
177 auto sigaction (
int,
const struct sigaction*
178 ,
struct sigaction* ) noexcept ->
int override;
179 auto timer_create ( clockid_t,
struct sigevent*
180 , timer_t* ) noexcept ->
int override;
181 auto timer_settime ( timer_t,
int 182 ,
const struct itimerspec*
183 ,
struct itimerspec* ) noexcept ->
int override;
184 auto timer_delete (timer_t) noexcept ->
int override;
185 auto kqueue() noexcept ->
int override;
186 auto kevent (
int,
const struct ::kevent*
187 ,
int, struct ::kevent*
188 ,
int,
const struct timespec* ) noexcept ->
int override;
190 inline auto getuid() noexcept -> uid_t
override 195 inline auto geteuid() noexcept -> uid_t
override 200 auto getpwuid_r ( uid_t,
struct passwd*,
char*,
size_t 201 ,
struct passwd** ) noexcept ->
int override;
203 auto realpath (
const char*,
char*) noexcept ->
char*
override;
208 #endif // FSYSTEMIMPL_H Definition: fsystemimpl.h:78
Definition: class_template.cpp:25
Definition: pipedata.h:48