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) -> uChar
override 94 inline uChar inPortByte (uShort)
override 101 #if defined(ISA_SYSCTL_SUPPORT) 102 inline void outPortByte (uChar value, uShort port)
override 104 ::outb (value, port);
107 inline void outPortByte (uChar, uShort)
override 111 inline auto isTTY (
int file_descriptor)
const ->
int override 113 return ::isatty(file_descriptor);
116 inline auto ioctl (
int file_descriptor, uLong request, ...) ->
int override 119 va_start (args, request);
120 void* argp = va_arg (args,
void*);
121 int ret = ::ioctl (file_descriptor, request, argp);
126 inline auto pipe (
PipeData& pipe) ->
int override 128 return ::pipe(pipe.getArrayData());
131 inline auto open (
const char* pathname,
int flags, ...) ->
int override 134 va_start (args, flags);
135 auto mode =
static_cast<mode_t
>(va_arg (args,
int));
136 int ret = ::open (pathname, flags, mode);
141 inline auto close (
int file_descriptor) ->
int override 143 return ::close(file_descriptor);
146 inline auto fopen (
const char* path,
const char* mode) -> FILE*
override 148 return std::fopen (path, mode);
151 inline auto fclose (FILE* file_ptr) ->
int override 153 return std::fclose (file_ptr);
156 inline auto fputs (
const char* str, FILE* stream) ->
int override 158 return std::fputs (str, stream);
161 inline auto putchar (
int c) ->
int override 163 #if defined(__sun) && defined(__SVR4) 164 return std::putchar(
char(c));
166 return std::putchar(c);
170 auto sigaction (
int,
const struct sigaction*
171 ,
struct sigaction* ) ->
int override;
172 auto timer_create ( clockid_t,
struct sigevent*
173 , timer_t* ) ->
int override;
174 auto timer_settime ( timer_t,
int 175 ,
const struct itimerspec*
176 ,
struct itimerspec* ) ->
int override;
177 auto timer_delete (timer_t) ->
int override;
178 auto kqueue() ->
int override;
179 auto kevent (
int,
const struct ::kevent*
180 ,
int, struct ::kevent*
181 ,
int,
const struct timespec* ) ->
int override;
183 inline auto getuid() -> uid_t
override 188 inline auto geteuid() -> uid_t
override 193 auto getpwuid_r ( uid_t,
struct passwd*,
char*,
size_t 194 ,
struct passwd** ) ->
int override;
196 auto realpath (
const char*,
char*) ->
char*
override;
201 #endif // FSYSTEMIMPL_H Definition: fsystemimpl.h:78
Definition: class_template.cpp:25
Definition: pipedata.h:47