VSF Documented
unistd.h
Go to the documentation of this file.
1#ifndef __VSF_LINUX_UNISTD_H__
2#define __VSF_LINUX_UNISTD_H__
3
5
6#if VSF_LINUX_CFG_RELATIVE_PATH == ENABLED
8//# include "./linux/limits.h"
9# include "./sys/types.h"
10# include "./sys/select.h"
11# include "./pwd.h"
12
13// avoid compiler.h in vsf.h include c headers
14# define __USE_LOCAL_LIBC__
15# define __USE_LOCAL_STDIO__
16#else
17# include <stddef.h>
18// avoid to include <linux/xxx.h>, because it will introduce kernel structures,
19// which will maybe conflict with user structures with the same name.
20// include <linux/limits.h> in source file for PATH_MAX
21//# include <linux/limits.h>
22# include <sys/types.h>
23# include <sys/select.h>
24# include <pwd.h>
25#endif
26
27#define __SIMPLE_LIBC_SETJMP_VPLT_ONLY__
28#include <setjmp/setjmp.h>
29
30#include "vsf.h"
31#include "../vsf_linux.h"
32#include "../port/busybox/busybox.h"
34
35#ifdef __cplusplus
36extern "C" {
37#endif
38
39#if defined(__WIN__) && defined(__CPU_X64__)
40# define exec_ret_t intptr_t
41#else
42# define exec_ret_t int
43#endif
44
45#if VSF_LINUX_CFG_WRAPPER == ENABLED
46#define confstr VSF_LINUX_WRAPPER(confstr)
47
48#define usleep VSF_LINUX_WRAPPER(usleep)
49#define sleep VSF_LINUX_WRAPPER(sleep)
50#define pause VSF_LINUX_WRAPPER(pause)
51
52#define getlogin VSF_LINUX_WRAPPER(getlogin)
53#define getlogin_r VSF_LINUX_WRAPPER(getlogin_r)
54
55#define setgid VSF_LINUX_WRAPPER(setgid)
56#define getgid VSF_LINUX_WRAPPER(getgid)
57#define setegid VSF_LINUX_WRAPPER(setegid)
58#define getegid VSF_LINUX_WRAPPER(getegid)
59#define setuid VSF_LINUX_WRAPPER(setuid)
60#define getuid VSF_LINUX_WRAPPER(getuid)
61#define seteuid VSF_LINUX_WRAPPER(seteuid)
62#define geteuid VSF_LINUX_WRAPPER(geteuid)
63#define getpid VSF_LINUX_WRAPPER(getpid)
64#define getppid VSF_LINUX_WRAPPER(getppid)
65#define gettid VSF_LINUX_WRAPPER(gettid)
66#define setsid VSF_LINUX_WRAPPER(setsid)
67#define getsid VSF_LINUX_WRAPPER(getsid)
68#define setpgid VSF_LINUX_WRAPPER(setpgid)
69#define getpgid VSF_LINUX_WRAPPER(getpgid)
70#define setpgrp VSF_LINUX_WRAPPER(setpgrp)
71#define getpgrp VSF_LINUX_WRAPPER(getpgrp)
72#define setresuid VSF_LINUX_WRAPPER(setresuid)
73#define setresgid VSF_LINUX_WRAPPER(setresgid)
74
75#define execl VSF_LINUX_WRAPPER(execl)
76#define execlp VSF_LINUX_WRAPPER(execlp)
77#define execv VSF_LINUX_WRAPPER(execv)
78#define execve VSF_LINUX_WRAPPER(execve)
79#define execvp VSF_LINUX_WRAPPER(execvp)
80#define execvpe VSF_LINUX_WRAPPER(execvpe)
81#define sysconf VSF_LINUX_WRAPPER(sysconf)
82#define pathconf VSF_LINUX_WRAPPER(pathconf)
83#define fpathconf VSF_LINUX_WRAPPER(fpathconf)
84#define pipe VSF_LINUX_WRAPPER(pipe)
85#define pipe2 VSF_LINUX_WRAPPER(pipe2)
86#define alarm VSF_LINUX_WRAPPER(alarm)
87#define ualarm VSF_LINUX_WRAPPER(ualarm)
88#define fork VSF_LINUX_WRAPPER(fork)
89#define _exit VSF_LINUX_WRAPPER(_exit)
90#define acct VSF_LINUX_WRAPPER(acct)
91
92#define isatty VSF_LINUX_WRAPPER(isatty)
93#define symlink VSF_LINUX_WRAPPER(symlink)
94#define getpagesize VSF_LINUX_WRAPPER(getpagesize)
95#define ftruncate VSF_LINUX_WRAPPER(ftruncate)
96#define truncate VSF_LINUX_WRAPPER(truncate)
97#define ftruncate64 VSF_LINUX_WRAPPER(ftruncate64)
98#define truncate64 VSF_LINUX_WRAPPER(truncate64)
99#define readlink VSF_LINUX_WRAPPER(readlink)
100#define tcgetpgrp VSF_LINUX_WRAPPER(tcgetpgrp)
101#define tcsetpgrp VSF_LINUX_WRAPPER(tcsetpgrp)
102#define getpass VSF_LINUX_WRAPPER(getpass)
103#define gethostname VSF_LINUX_WRAPPER(gethostname)
104#define sethostname VSF_LINUX_WRAPPER(sethostname)
105
106#define getentropy VSF_LINUX_WRAPPER(getentropy)
107
108#define gethostid VSF_LINUX_WRAPPER(gethostid)
109#define sethostid VSF_LINUX_WRAPPER(sethostid)
110
111#if __IS_COMPILER_IAR__
112#else
113# define access VSF_LINUX_WRAPPER(access)
114# define unlink VSF_LINUX_WRAPPER(unlink)
115# define unlinkat VSF_LINUX_WRAPPER(unlinkat)
116# define link VSF_LINUX_WRAPPER(link)
117# define mkdir VSF_LINUX_WRAPPER(mkdir)
118# define mkdirat VSF_LINUX_WRAPPER(mkdirat)
119# define rmdir VSF_LINUX_WRAPPER(rmdir)
120# define close VSF_LINUX_WRAPPER(close)
121# define lseek VSF_LINUX_WRAPPER(lseek)
122# define read VSF_LINUX_WRAPPER(read)
123# define write VSF_LINUX_WRAPPER(write)
124# define readv VSF_LINUX_WRAPPER(readv)
125# define writev VSF_LINUX_WRAPPER(writev)
126# define pread VSF_LINUX_WRAPPER(pread)
127# define pwrite VSF_LINUX_WRAPPER(pwrite)
128# define preadv VSF_LINUX_WRAPPER(preadv)
129# define pwritev VSF_LINUX_WRAPPER(pwritev)
130# define chdir VSF_LINUX_WRAPPER(chdir)
131# define fchdir VSF_LINUX_WRAPPER(fchdir)
132# define getcwd VSF_LINUX_WRAPPER(getcwd)
133# define fsync VSF_LINUX_WRAPPER(fsync)
134# define fdatasync VSF_LINUX_WRAPPER(fdatasync)
135#endif
136#elif defined(__WIN__) && !defined(__VSF_APPLET__)
137#define _exit VSF_LINUX_WRAPPER(_exit)
138#endif
139
140// syscalls
141
142#define __NR_close close
143#define __NR_dup dup
144#define __NR_dup2 dup2
145#define __NR_dup3 dup3
146#define __NR_access access
147#define __NR_write write
148#define __NR_writev writev
149#define __NR_read read
150#define __NR_readv readv
151#define __NR_truncate truncate
152#define __NR_rtruncate ftruncate
153#define __NR_faccessat faccessat
154#define __NR_unlink unlink
155#define __NR_unlinkat unlinkat
156#define __NR_sync sync
157#define __NR_fsync fsync
158#define __NR_chdir chdir
159#define __NR_fchdir fchdir
160#define __NR_chown chown
161#define __NR_fchown fchown
162#define __NR_fchownat fchownat
163#define __NR_chroot chroot
164#define __NR_pipe pipe
165#define __NR_pipe2 pipe2
166#define __NR_alarm alarm
167#define __NR_execve execve
168#define __NR_wait4 wait4
169#define __NR_gettid gettid
170#define SYS_gettid __NR_gettid
171
172#define __NR_preadv(__fd, __vec, __vlen, __pos_l, __pos_h) \
173 preadv64((__fd), (__vec), (__vlen), ((off64_t)(__pos_l) << 32) + (__pos_h))
174#define __NR_pwritev(__fd, __vec, __vlen, __pos_l, __pos_h) \
175 pwritev64((__fd), (__vec), (__vlen), ((off64_t)(__pos_l) << 32) + (__pos_h))
176
177#define _POSIX_VERSION 200112L
178
179#define STDIN_FILENO 0
180#define STDOUT_FILENO 1
181#define STDERR_FILENO 2
182
183#define environ (vsf_linux_get_cur_process()->__environ)
184
185// confstr
186
187enum {
189#define _CS_PATH _CS_PATH
191#define _CS_GNU_LIBC_VERSION _CS_GNU_LIBC_VERSION
193#define _CS_GNU_LIBPTHREAD_VERSION _CS_GNU_LIBPTHREAD_VERSION
194};
195
196enum {
206};
207
208enum {
215
217};
218
219enum {
225};
226
227// workaround while using lwip, which will check iovec MACRO and define iovec if not defined
228#define iovec iovec
229struct iovec {
230 void *iov_base;
231 size_t iov_len;
232};
233
234#define F_OK (1 << 0)
235#define R_OK (1 << 1)
236#define W_OK (1 << 2)
237#define X_OK (1 << 3)
238
239#if VSF_LINUX_APPLET_USE_UNISTD == ENABLED
242
249
252
264
273
284
288 // realpath belongs to stdlib.h, but do not remove realpath here for compatibility
292
303
308
323
337
342
346
353
357# ifndef __VSF_APPLET__
359# endif
360#endif
361
362#if defined(__VSF_APPLET__) && (defined(__VSF_APPLET_LIB__) || defined(__VSF_APPLET_LINUX_UNISTD_LIB__))\
363 && VSF_APPLET_CFG_ABI_PATCH != ENABLED && VSF_LINUX_APPLET_USE_UNISTD == ENABLED
364
365#ifndef VSF_LINUX_APPLET_UNISTD_VPLT
366# if VSF_LINUX_USE_APPLET == ENABLED
367# define VSF_LINUX_APPLET_UNISTD_VPLT \
368 ((vsf_linux_unistd_vplt_t *)(VSF_LINUX_APPLET_VPLT->unistd_vplt))
369# else
370# define VSF_LINUX_APPLET_UNISTD_VPLT \
371 ((vsf_linux_unistd_vplt_t *)vsf_vplt((void *)0))
372# endif
373#endif
374
375#define VSF_LINUX_APPLET_UNISTD_ENTRY(__NAME) \
376 VSF_APPLET_VPLT_ENTRY_FUNC_ENTRY(VSF_LINUX_APPLET_UNISTD_VPLT, __NAME)
377#define VSF_LINUX_APPLET_UNISTD_IMP(...) \
378 VSF_APPLET_VPLT_ENTRY_FUNC_IMP(VSF_LINUX_APPLET_UNISTD_VPLT, __VA_ARGS__)
379
380VSF_LINUX_APPLET_UNISTD_IMP(__execl_va, exec_ret_t, const char *pathname, const char *arg, va_list ap, bool has_env) {
382 return VSF_LINUX_APPLET_UNISTD_ENTRY(__execl_va)(pathname, arg, ap, has_env);
383}
384VSF_LINUX_APPLET_UNISTD_IMP(__execlp_va, exec_ret_t, const char *pathname, const char *arg, va_list ap) {
386 return VSF_LINUX_APPLET_UNISTD_ENTRY(__execlp_va)(pathname, arg, ap);
387}
388VSF_LINUX_APPLET_UNISTD_IMP(confstr, size_t, int name, char *buf, size_t len) {
390 return VSF_LINUX_APPLET_UNISTD_ENTRY(confstr)(name, buf, len);
391}
392VSF_LINUX_APPLET_UNISTD_IMP(usleep, int, int micro_seconds) {
394 return VSF_LINUX_APPLET_UNISTD_ENTRY(usleep)(micro_seconds);
395}
396VSF_LINUX_APPLET_UNISTD_IMP(sleep, unsigned, unsigned seconds) {
398 return VSF_LINUX_APPLET_UNISTD_ENTRY(sleep)(seconds);
399}
400VSF_LINUX_APPLET_UNISTD_IMP(pause, int, void) {
402 return VSF_LINUX_APPLET_UNISTD_ENTRY(pause)();
403}
404VSF_LINUX_APPLET_UNISTD_IMP(alarm, unsigned int, unsigned int seconds) {
406 return VSF_LINUX_APPLET_UNISTD_ENTRY(alarm)(seconds);
407}
408VSF_LINUX_APPLET_UNISTD_IMP(ualarm, useconds_t, useconds_t usecs, useconds_t interval) {
410 return VSF_LINUX_APPLET_UNISTD_ENTRY(ualarm)(usecs, interval);
411}
412VSF_LINUX_APPLET_UNISTD_IMP(getlogin, char *, void) {
414 return VSF_LINUX_APPLET_UNISTD_ENTRY(getlogin)();
415}
416VSF_LINUX_APPLET_UNISTD_IMP(getlogin_r, int, char *buf, size_t bufsize) {
418 return VSF_LINUX_APPLET_UNISTD_ENTRY(getlogin_r)(buf, bufsize);
419}
420VSF_LINUX_APPLET_UNISTD_IMP(setuid, int, uid_t uid) {
422 return VSF_LINUX_APPLET_UNISTD_ENTRY(setuid)(uid);
423}
424VSF_LINUX_APPLET_UNISTD_IMP(getuid, uid_t, void) {
426 return VSF_LINUX_APPLET_UNISTD_ENTRY(getuid)();
427}
428VSF_LINUX_APPLET_UNISTD_IMP(seteuid, int, uid_t euid) {
430 return VSF_LINUX_APPLET_UNISTD_ENTRY(seteuid)(euid);
431}
432VSF_LINUX_APPLET_UNISTD_IMP(geteuid, uid_t, void) {
434 return VSF_LINUX_APPLET_UNISTD_ENTRY(geteuid)();
435}
436VSF_LINUX_APPLET_UNISTD_IMP(setgid, int, gid_t gid) {
438 return VSF_LINUX_APPLET_UNISTD_ENTRY(setgid)(gid);
439}
440VSF_LINUX_APPLET_UNISTD_IMP(getgid, gid_t, void) {
442 return VSF_LINUX_APPLET_UNISTD_ENTRY(getgid)();
443}
444VSF_LINUX_APPLET_UNISTD_IMP(setegid, int, gid_t egid) {
446 return VSF_LINUX_APPLET_UNISTD_ENTRY(setegid)(egid);
447}
448VSF_LINUX_APPLET_UNISTD_IMP(getegid, gid_t, void) {
450 return VSF_LINUX_APPLET_UNISTD_ENTRY(getegid)();
451}
452VSF_LINUX_APPLET_UNISTD_IMP(getpid, pid_t, void) {
454 return VSF_LINUX_APPLET_UNISTD_ENTRY(getpid)();
455}
456VSF_LINUX_APPLET_UNISTD_IMP(getppid, pid_t, void) {
458 return VSF_LINUX_APPLET_UNISTD_ENTRY(getppid)();
459}
460VSF_LINUX_APPLET_UNISTD_IMP(gettid, pid_t, void) {
462 return VSF_LINUX_APPLET_UNISTD_ENTRY(gettid)();
463}
464VSF_LINUX_APPLET_UNISTD_IMP(setsid, pid_t, void) {
466 return VSF_LINUX_APPLET_UNISTD_ENTRY(setsid)();
467}
468VSF_LINUX_APPLET_UNISTD_IMP(getsid, pid_t, pid_t pid) {
470 return VSF_LINUX_APPLET_UNISTD_ENTRY(getsid)(pid);
471}
472VSF_LINUX_APPLET_UNISTD_IMP(setpgid, int, pid_t pid, pid_t pgid) {
474 return VSF_LINUX_APPLET_UNISTD_ENTRY(setpgid)(pid, pgid);
475}
476VSF_LINUX_APPLET_UNISTD_IMP(getpgid, pid_t, pid_t pid) {
478 return VSF_LINUX_APPLET_UNISTD_ENTRY(getpgid)(pid);
479}
480VSF_LINUX_APPLET_UNISTD_IMP(setpgrp, int, void) {
482 return VSF_LINUX_APPLET_UNISTD_ENTRY(setpgrp)();
483}
484VSF_LINUX_APPLET_UNISTD_IMP(getpgrp, pid_t, void) {
486 return VSF_LINUX_APPLET_UNISTD_ENTRY(getpgrp)();
487}
488VSF_LINUX_APPLET_UNISTD_IMP(setresuid, int, uid_t ruid, uid_t euid, uid_t suid) {
490 return VSF_LINUX_APPLET_UNISTD_ENTRY(setresuid)(ruid, euid, suid);
491}
492VSF_LINUX_APPLET_UNISTD_IMP(setresgid, int, gid_t rgid, gid_t egid, gid_t sgid) {
494 return VSF_LINUX_APPLET_UNISTD_ENTRY(setresgid)(rgid, egid, sgid);
495}
496VSF_LINUX_APPLET_UNISTD_IMP(execv, exec_ret_t, const char *pathname, char * const * argv) {
498 return VSF_LINUX_APPLET_UNISTD_ENTRY(execv)(pathname, argv);
499}
500VSF_LINUX_APPLET_UNISTD_IMP(execve, exec_ret_t, const char *pathname, char * const * argv, char * const * envp) {
502 return VSF_LINUX_APPLET_UNISTD_ENTRY(execve)(pathname, argv, envp);
503}
504VSF_LINUX_APPLET_UNISTD_IMP(execvp, exec_ret_t, const char *file, char * const * argv) {
506 return VSF_LINUX_APPLET_UNISTD_ENTRY(execvp)(file, argv);
507}
508VSF_LINUX_APPLET_UNISTD_IMP(execvpe, exec_ret_t, const char *file, char * const * argv, char * const * envp) {
510 return VSF_LINUX_APPLET_UNISTD_ENTRY(execvpe)(file, argv, envp);
511}
512VSF_LINUX_APPLET_UNISTD_IMP(daemon, int, int nochdir, int noclose) {
514 return VSF_LINUX_APPLET_UNISTD_ENTRY(daemon)(nochdir, noclose);
515}
516VSF_LINUX_APPLET_UNISTD_IMP(sysconf, long, int name) {
518 return VSF_LINUX_APPLET_UNISTD_ENTRY(sysconf)(name);
519}
520VSF_LINUX_APPLET_UNISTD_IMP(pathconf, long, const char *path, int name) {
522 return VSF_LINUX_APPLET_UNISTD_ENTRY(pathconf)(path, name);
523}
524VSF_LINUX_APPLET_UNISTD_IMP(fpathconf, long, int fd, int name) {
526 return VSF_LINUX_APPLET_UNISTD_ENTRY(fpathconf)(fd, name);
527}
528VSF_LINUX_APPLET_UNISTD_IMP(pipe, int, int pipefd[2]) {
530 return VSF_LINUX_APPLET_UNISTD_ENTRY(pipe)(pipefd);
531}
532VSF_LINUX_APPLET_UNISTD_IMP(pipe2, int, int pipefd[2], int flags) {
534 return VSF_LINUX_APPLET_UNISTD_ENTRY(pipe2)(pipefd, flags);
535}
536VSF_LINUX_APPLET_UNISTD_IMP(access, int, const char *pathname, int mode) {
538 return VSF_LINUX_APPLET_UNISTD_ENTRY(access)(pathname, mode);
539}
540VSF_LINUX_APPLET_UNISTD_IMP(unlink, int, const char *pathname) {
542 return VSF_LINUX_APPLET_UNISTD_ENTRY(unlink)(pathname);
543}
544VSF_LINUX_APPLET_UNISTD_IMP(unlinkat, int, int dirfd, const char *pathname, int flags) {
546 return VSF_LINUX_APPLET_UNISTD_ENTRY(unlinkat)(dirfd, pathname, flags);
547}
548VSF_LINUX_APPLET_UNISTD_IMP(link, int, const char *oldpath, const char *newpath) {
550 return VSF_LINUX_APPLET_UNISTD_ENTRY(link)(oldpath, newpath);
551}
552VSF_LINUX_APPLET_UNISTD_IMP(mkdir, int, const char *pathname, mode_t mode) {
554 return VSF_LINUX_APPLET_UNISTD_ENTRY(mkdir)(pathname, mode);
555}
556VSF_LINUX_APPLET_UNISTD_IMP(mkdirat, int, int dirfd, const char *pathname, mode_t mode) {
558 return VSF_LINUX_APPLET_UNISTD_ENTRY(mkdirat)(dirfd, pathname, mode);
559}
560VSF_LINUX_APPLET_UNISTD_IMP(rmdir, int, const char *pathname) {
562 return VSF_LINUX_APPLET_UNISTD_ENTRY(rmdir)(pathname);
563}
564VSF_LINUX_APPLET_UNISTD_IMP(dup, int, int oldfd) {
566 return VSF_LINUX_APPLET_UNISTD_ENTRY(dup)(oldfd);
567}
568VSF_LINUX_APPLET_UNISTD_IMP(dup2, int, int oldfd, int newfd) {
570 return VSF_LINUX_APPLET_UNISTD_ENTRY(dup2)(oldfd, newfd);
571}
572VSF_LINUX_APPLET_UNISTD_IMP(dup3, int, int oldfd, int newfd, int flags) {
574 return VSF_LINUX_APPLET_UNISTD_ENTRY(dup3)(oldfd, newfd, flags);
575}
576VSF_LINUX_APPLET_UNISTD_IMP(chroot, int, const char *path) {
578 return VSF_LINUX_APPLET_UNISTD_ENTRY(chroot)(path);
579}
580VSF_LINUX_APPLET_UNISTD_IMP(chdir, int, const char *pathname) {
582 return VSF_LINUX_APPLET_UNISTD_ENTRY(chdir)(pathname);
583}
584VSF_LINUX_APPLET_UNISTD_IMP(fchdir, int, int fd) {
586 return VSF_LINUX_APPLET_UNISTD_ENTRY(fchdir)(fd);
587}
588VSF_LINUX_APPLET_UNISTD_IMP(getcwd, char *, char *buffer, size_t maxlen) {
590 return VSF_LINUX_APPLET_UNISTD_ENTRY(getcwd)(buffer, maxlen);
591}
592VSF_LINUX_APPLET_UNISTD_IMP(close, int, int fd) {
594 return VSF_LINUX_APPLET_UNISTD_ENTRY(close)(fd);
595}
596VSF_LINUX_APPLET_UNISTD_IMP(lseek, off_t, int fd, off_t offset, int whence) {
598 return VSF_LINUX_APPLET_UNISTD_ENTRY(lseek)(fd, offset, whence);
599}
600VSF_LINUX_APPLET_UNISTD_IMP(read, ssize_t, int fd, void *buf, size_t count) {
602 return VSF_LINUX_APPLET_UNISTD_ENTRY(read)(fd, buf, count);
603}
604VSF_LINUX_APPLET_UNISTD_IMP(write, ssize_t, int fd, const void *buf, size_t count) {
606 return VSF_LINUX_APPLET_UNISTD_ENTRY(write)(fd, buf, count);
607}
608VSF_LINUX_APPLET_UNISTD_IMP(readv, ssize_t, int fd, const struct iovec *iov, int iovcnt) {
610 return VSF_LINUX_APPLET_UNISTD_ENTRY(readv)(fd, iov, iovcnt);
611}
612VSF_LINUX_APPLET_UNISTD_IMP(writev, ssize_t, int fd, const struct iovec *iov, int iovcnt) {
614 return VSF_LINUX_APPLET_UNISTD_ENTRY(writev)(fd, iov, iovcnt);
615}
616VSF_LINUX_APPLET_UNISTD_IMP(pread, ssize_t, int fd, void *buf, size_t count, off_t offset) {
618 return VSF_LINUX_APPLET_UNISTD_ENTRY(pread)(fd, buf, count, offset);
619}
620VSF_LINUX_APPLET_UNISTD_IMP(pwrite, ssize_t, int fd, const void *buf, size_t count, off_t offset) {
622 return VSF_LINUX_APPLET_UNISTD_ENTRY(pwrite)(fd, buf, count, offset);
623}
624VSF_LINUX_APPLET_UNISTD_IMP(preadv, ssize_t, int fd, const struct iovec *iov, int iovcnt, off_t offset) {
626 return VSF_LINUX_APPLET_UNISTD_ENTRY(preadv)(fd, iov, iovcnt, offset);
627}
628VSF_LINUX_APPLET_UNISTD_IMP(pwritev, ssize_t, int fd, const struct iovec *iov, int iovcnt, off_t offset) {
630 return VSF_LINUX_APPLET_UNISTD_ENTRY(pwritev)(fd, iov, iovcnt, offset);
631}
632VSF_LINUX_APPLET_UNISTD_IMP(sync, void, void) {
634 VSF_LINUX_APPLET_UNISTD_ENTRY(sync)();
635}
636VSF_LINUX_APPLET_UNISTD_IMP(syncfs, int, int fd) {
638 return VSF_LINUX_APPLET_UNISTD_ENTRY(syncfs)(fd);
639}
640VSF_LINUX_APPLET_UNISTD_IMP(fsync, int, int fd) {
642 return VSF_LINUX_APPLET_UNISTD_ENTRY(fsync)(fd);
643}
644VSF_LINUX_APPLET_UNISTD_IMP(fdatasync, int, int fd) {
646 return VSF_LINUX_APPLET_UNISTD_ENTRY(fdatasync)(fd);
647}
648VSF_LINUX_APPLET_UNISTD_IMP(isatty, int, int fd) {
650 return VSF_LINUX_APPLET_UNISTD_ENTRY(isatty)(fd);
651}
652VSF_LINUX_APPLET_UNISTD_IMP(getpagesize, size_t, void) {
654 return VSF_LINUX_APPLET_UNISTD_ENTRY(getpagesize)();
655}
656VSF_LINUX_APPLET_UNISTD_IMP(symlink, int, const char *target, const char *linkpath) {
658 return VSF_LINUX_APPLET_UNISTD_ENTRY(symlink)(target, linkpath);
659}
660VSF_LINUX_APPLET_UNISTD_IMP(ftruncate, int, int fd, off_t length) {
662 return VSF_LINUX_APPLET_UNISTD_ENTRY(ftruncate)(fd, length);
663}
664VSF_LINUX_APPLET_UNISTD_IMP(truncate, int, const char *pathname, off_t length) {
666 return VSF_LINUX_APPLET_UNISTD_ENTRY(truncate)(pathname, length);
667}
668VSF_LINUX_APPLET_UNISTD_IMP(ftruncate64, int, int fd, off64_t length) {
670 return VSF_LINUX_APPLET_UNISTD_ENTRY(ftruncate64)(fd, length);
671}
672VSF_LINUX_APPLET_UNISTD_IMP(truncate64, int, const char *pathname, off64_t length) {
674 return VSF_LINUX_APPLET_UNISTD_ENTRY(truncate64)(pathname, length);
675}
676VSF_LINUX_APPLET_UNISTD_IMP(readlink, ssize_t, const char *pathname, char *buf, size_t bufsiz) {
678 return VSF_LINUX_APPLET_UNISTD_ENTRY(readlink)(pathname, buf, bufsiz);
679}
680VSF_LINUX_APPLET_UNISTD_IMP(tcgetpgrp, pid_t, int fd) {
682 return VSF_LINUX_APPLET_UNISTD_ENTRY(tcgetpgrp)(fd);
683}
684VSF_LINUX_APPLET_UNISTD_IMP(tcsetpgrp, int, int fd, pid_t pgrp) {
686 return VSF_LINUX_APPLET_UNISTD_ENTRY(tcsetpgrp)(fd, pgrp);
687}
688VSF_LINUX_APPLET_UNISTD_IMP(getpass, char *, const char *prompt) {
690 return VSF_LINUX_APPLET_UNISTD_ENTRY(getpass)(prompt);
691}
692VSF_LINUX_APPLET_UNISTD_IMP(gethostname, int, char *name, size_t len) {
694 return VSF_LINUX_APPLET_UNISTD_ENTRY(gethostname)(name, len);
695}
696VSF_LINUX_APPLET_UNISTD_IMP(sethostname, int, const char *name, size_t len) {
698 return VSF_LINUX_APPLET_UNISTD_ENTRY(sethostname)(name, len);
699}
700VSF_LINUX_APPLET_UNISTD_IMP(chown, int, const char *pathname, uid_t owner, gid_t group) {
702 return VSF_LINUX_APPLET_UNISTD_ENTRY(chown)(pathname, owner, group);
703}
704VSF_LINUX_APPLET_UNISTD_IMP(fchown, int, int fd, uid_t owner, gid_t group) {
706 return VSF_LINUX_APPLET_UNISTD_ENTRY(fchown)(fd, owner, group);
707}
708VSF_LINUX_APPLET_UNISTD_IMP(lchown, int, const char *pathname, uid_t owner, gid_t group) {
710 return VSF_LINUX_APPLET_UNISTD_ENTRY(lchown)(pathname, owner, group);
711}
712VSF_LINUX_APPLET_UNISTD_IMP(fchownat, int, int dirfd, const char *pathname, uid_t owner, gid_t group, int flags) {
714 return VSF_LINUX_APPLET_UNISTD_ENTRY(fchownat)(dirfd, pathname, owner, group, flags);
715}
716VSF_LINUX_APPLET_UNISTD_IMP(getentropy, int, void *buffer, size_t length) {
718 return VSF_LINUX_APPLET_UNISTD_ENTRY(getentropy)(buffer, length);
719}
720VSF_LINUX_APPLET_UNISTD_IMP(gethostid, long, void) {
722 return VSF_LINUX_APPLET_UNISTD_ENTRY(gethostid)();
723}
724VSF_LINUX_APPLET_UNISTD_IMP(sethostid, int, long hostid) {
726 return VSF_LINUX_APPLET_UNISTD_ENTRY(sethostid)(hostid);
727}
728VSF_LINUX_APPLET_UNISTD_IMP(lseek64, off64_t, int fd, off64_t offset, int whence) {
730 return VSF_LINUX_APPLET_UNISTD_ENTRY(lseek64)(fd, offset, whence);
731}
732VSF_LINUX_APPLET_UNISTD_IMP(ttyname, char *, int fd) {
734 return VSF_LINUX_APPLET_UNISTD_ENTRY(ttyname)(fd);
735}
736VSF_LINUX_APPLET_UNISTD_IMP(ttyname_r, int, int fd, char *buf, size_t buflen) {
738 return VSF_LINUX_APPLET_UNISTD_ENTRY(ttyname_r)(fd, buf, buflen);
739}
740VSF_LINUX_APPLET_UNISTD_IMP(_exit, void, int status) {
742 VSF_LINUX_APPLET_UNISTD_ENTRY(_exit)(status);
743}
744VSF_LINUX_APPLET_UNISTD_IMP(acct, int, const char *filename) {
746 return VSF_LINUX_APPLET_UNISTD_ENTRY(acct)(filename);
747}
748VSF_LINUX_APPLET_UNISTD_IMP(__vsf_linux_vfork_prepare, pid_t, vsf_linux_process_t *parent_process) {
750 return VSF_LINUX_APPLET_UNISTD_ENTRY(__vsf_linux_vfork_prepare)(parent_process);
751}
752VSF_LINUX_APPLET_UNISTD_IMP(mkdirs, int, const char *pathname, mode_t mode) {
754 return VSF_LINUX_APPLET_UNISTD_ENTRY(mkdirs)(pathname, mode);
755}
756VSF_LINUX_APPLET_UNISTD_IMP(getdtablesize, int, void) {
758 return VSF_LINUX_APPLET_UNISTD_ENTRY(getdtablesize)();
759}
760
761VSF_APPLET_VPLT_FUNC_DECORATOR(execl) exec_ret_t execl(const char *pathname, const char *arg, ...) {
762 exec_ret_t ret;
763
764 va_list ap;
765 va_start(ap, arg);
766 ret = VSF_LINUX_APPLET_UNISTD_ENTRY(__execl_va)(pathname, arg, ap, false);
767 va_end(ap);
768 return ret;
769}
770VSF_APPLET_VPLT_FUNC_DECORATOR(execle) exec_ret_t execle(const char *pathname, const char *arg, ...) {
771 exec_ret_t ret;
772
773 va_list ap;
774 va_start(ap, arg);
775 ret = VSF_LINUX_APPLET_UNISTD_ENTRY(__execl_va)(pathname, arg, ap, true);
776 va_end(ap);
777 return ret;
778}
779VSF_APPLET_VPLT_FUNC_DECORATOR(execlp) exec_ret_t execlp(const char *file, const char *arg, ...) {
780 int ret;
781
782 va_list ap;
783 va_start(ap, arg);
784 ret = VSF_LINUX_APPLET_UNISTD_ENTRY(__execlp_va)(file, arg, ap);
785 va_end(ap);
786 return ret;
787}
788
789#else // __VSF_APPLET__ && VSF_LINUX_APPLET_USE_UNISTD
790
791size_t confstr(int name, char *buf, size_t len);
792
793int usleep(int micro_seconds);
794unsigned sleep(unsigned seconds);
795int pause(void);
796
797unsigned int alarm(unsigned int seconds);
798useconds_t ualarm(useconds_t usecs, useconds_t interval);
799
800char * getlogin(void);
801int getlogin_r(char *buf, size_t bufsize);
802
803pid_t gettid(void);
804pid_t getpid(void);
805pid_t getppid(void);
806
807int setuid(uid_t uid);
808uid_t getuid(void);
809int seteuid(uid_t euid);
810uid_t geteuid(void);
811int setegid(gid_t egid);
812gid_t getegid(void);
813int setgid(gid_t git);
814gid_t getgid(void);
815pid_t setsid(void);
816pid_t getsid(pid_t pid);
817int setpgid(pid_t pid, pid_t pgid);
818pid_t getpgid(pid_t pid);
819int setpgrp(void);
820pid_t getpgrp(void);
821int setresuid(uid_t ruid, uid_t euid, uid_t suid);
822int setresgid(gid_t rgid, gid_t egid, gid_t sgid);
823
824exec_ret_t execl(const char *pathname, const char *arg, ...);
825exec_ret_t execle(const char *pathname, const char *arg, ...);
826exec_ret_t execlp(const char *file, const char *arg, ...);
827exec_ret_t execv(const char *pathname, char * const * argv);
828exec_ret_t execve(const char *pathname, char * const * argv, char * const * envp);
829exec_ret_t execvp(const char *file, char * const * argv);
830exec_ret_t execvpe(const char *file, char * const * argv, char * const * envp);
831int daemon(int nochdir, int noclose);
832
833pid_t fork(void);
834void _exit(int status);
835long sysconf(int name);
836long pathconf(const char *path, int name);
837long fpathconf(int fd, int name);
838int pipe(int pipefd[2]);
839int pipe2(int pipefd[2], int flags);
840
841int access(const char *pathname, int mode);
842int unlink(const char *pathname);
843int unlinkat(int dirfd, const char *pathname, int flags);
844int link(const char *oldpath, const char *newpath);
845int mkdir(const char *pathname, mode_t mode);
846int mkdirat(int dirfd, const char *pathname, mode_t mode);
847int mkdirs(const char *pathname, mode_t mode);
848int rmdir(const char *pathname);
849int dup(int oldfd);
850int dup2(int oldfd, int newfd);
851int dup3(int oldfd, int newfd, int flags);
852
853int chroot(const char *path);
854int chdir(const char *pathname);
855int fchdir(int fd);
856char * getcwd(char *buffer, size_t maxlen);
857
858int close(int fd);
859off_t lseek(int fd, off_t offset, int whence);
860off64_t lseek64(int fd, off64_t offset, int whence);
861ssize_t read(int fd, void *buf, size_t count);
862ssize_t write(int fd, const void *buf, size_t count);
863ssize_t readv(int fd, const struct iovec *iov, int iovcnt);
864ssize_t writev(int fd, const struct iovec *iov, int iovcnt);
865ssize_t pread(int fd, void *buf, size_t count, off_t offset);
866ssize_t preadv(int fd, const struct iovec *iov, int iovcnt, off_t offset);
867ssize_t preadv64 (int fd, const struct iovec *vector, int iovcnt, off64_t offset);
868ssize_t pwrite(int fd, const void *buf, size_t count, off_t offset);
869ssize_t pwritev(int fd, const struct iovec *iov, int iovcnt, off_t offset);
870ssize_t pwritev64 (int fd, const struct iovec *vector, int iovcnt, off64_t offset);
871
872void sync(void);
873int syncfs(int fd);
874int fsync(int fd);
875int fdatasync(int fd);
876
877int isatty(int fd);
878char * ttyname(int fd);
879int ttyname_r(int fd, char *buf, size_t buflen);
880size_t getpagesize(void);
881int symlink(const char *target, const char *linkpath);
882int truncate(const char *pathname, off_t length);
883int ftruncate(int fd, off_t length);
884int truncate64(const char *pathname, off64_t length);
885int ftruncate64(int fd, off64_t length);
886ssize_t readlink(const char *pathname, char *buf, size_t bufsiz);
887pid_t tcgetpgrp(int fd);
888int tcsetpgrp(int fd, pid_t pgrp);
889char * getpass(const char *prompt);
890int gethostname(char *name, size_t len);
891int sethostname(const char *name, size_t len);
892
893int chown(const char *pathname, uid_t owner, gid_t group);
894int fchown(int fd, uid_t owner, gid_t group);
895int lchown(const char *pathname, uid_t owner, gid_t group);
896int fchownat(int dirfd, const char *pathname, uid_t owner, gid_t group, int flags);
897
898int getentropy(void *buffer, size_t length);
899
900long gethostid(void);
901int sethostid(long hostid);
902
903int getdtablesize(void);
904
905int acct(const char *filename);
906
907#if VSF_LINUX_USE_VFORK == ENABLED
909#endif
910
911#endif // __VSF_APPLET__ && VSF_LINUX_APPLET_USE_UNISTD
912
913#if VSF_LINUX_USE_VFORK == ENABLED
914# define vfork() ({ \
915 vsf_linux_process_t *parent_process = vsf_linux_get_cur_process(); \
916 pid_t result = (pid_t)-1, child_pid = __vsf_linux_vfork_prepare(parent_process);\
917 if (child_pid >= 0) { \
918 result = !setjmp(parent_process->__vfork_jmpbuf) ? (pid_t)0 : child_pid;\
919 } \
920 result; \
921})
922#else
923# define vfork() -1
924#endif
925
926#ifdef __cplusplus
927}
928#endif
929
930#endif
Definition vsf_linux.h:270
int pid_t
Definition types.h:85
__USECONDS_T useconds_t
Definition types.h:136
unsigned int uid_t
Definition types.h:90
unsigned int gid_t
Definition types.h:91
long long off64_t
Definition types.h:97
unsigned int mode_t
Definition types.h:87
int ssize_t
Definition types.h:68
long off_t
Definition types.h:95
#define realpath
Definition stdlib.h:44
Definition grp.h:29
Definition unistd.h:229
void * iov_base
Definition unistd.h:230
size_t iov_len
Definition unistd.h:231
Definition unistd.h:240
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(fpathconf)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(ualarm)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(alarm)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(unlink)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(truncate)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(getdtablesize)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(sleep)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(lseek)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(pathconf)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(setresuid)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(pause)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(execlp)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(rmdir)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(gettid)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(getpagesize)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(pwritev)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(setsid)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(daemon)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(syncfs)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(unlinkat)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(setegid)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(fchdir)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(close)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(getppid)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(__vsf_linux_vfork_prepare)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(chroot)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(execl)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(getpgid)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(ttyname_r)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(tcsetpgrp)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(readlink)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(gethostid)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(execv)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(setpgrp)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(setgid)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(truncate64)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(preadv)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(ftruncate64)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(pread)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(pipe2)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(gethostname)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(chdir)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(usleep)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(execle)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(realpath)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(getcwd)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(writev)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(access)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(execvp)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(write)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(setpgid)
vsf_vplt_info_t info
Definition unistd.h:241
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(fchown)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(seteuid)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(fsync)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(pwrite)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(mkdirs)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(symlink)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(mkdirat)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(getpgrp)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(ttyname)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(fdatasync)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(_exit)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(getgid)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(mkdir)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(getpid)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(ftruncate)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(getlogin)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(chown)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(getpass)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(getegid)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(__execl_va)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(sethostname)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(setresgid)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(__execlp_va)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(getlogin_r)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(sysconf)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(lchown)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(geteuid)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(getsid)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(tcgetpgrp)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(confstr)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(lseek64)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(sethostid)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(execvpe)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(execve)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(getentropy)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(getuid)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(setuid)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(isatty)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(fchownat)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(readv)
Definition vsf_cfg.h:95
#define fpathconf
Definition unistd.h:83
#define pathconf
Definition unistd.h:82
#define pause
Definition unistd.h:50
#define link
Definition unistd.h:116
int dup2(int oldfd, int newfd)
Definition vsf_linux_fs.c:1582
@ DT_REG
Definition unistd.h:198
@ DT_CHR
Definition unistd.h:202
@ DT_DIR
Definition unistd.h:199
@ DT_FIFO
Definition unistd.h:200
@ DT_LNK
Definition unistd.h:204
@ DT_SOCK
Definition unistd.h:201
@ DT_BLK
Definition unistd.h:203
@ DT_UNKNOWN
Definition unistd.h:197
@ DT_EXE
Definition unistd.h:205
#define exec_ret_t
Definition unistd.h:42
__VSF_VPLT_DECORATOR__ vsf_linux_unistd_vplt_t vsf_linux_unistd_vplt
Definition vsf_linux.c:5000
int lchown(const char *pathname, uid_t owner, gid_t group)
Definition vsf_linux.c:3052
#define sethostid
Definition unistd.h:109
#define lseek
Definition unistd.h:121
#define unlink
Definition unistd.h:114
#define access
Definition unistd.h:113
@ _SC_PAGE_SIZE
Definition unistd.h:216
@ _SC_SYMLOOP_MAX
Definition unistd.h:213
@ _SC_OPEN_MAX
Definition unistd.h:210
@ _SC_GETGR_R_SIZE_MAX
Definition unistd.h:212
@ _SC_PAGESIZE
Definition unistd.h:209
@ _SC_CLK_TCK
Definition unistd.h:211
@ _SC_NPROCESSORS_ONLN
Definition unistd.h:214
#define setresuid
Definition unistd.h:72
int fchown(int fd, uid_t owner, gid_t group)
Definition vsf_linux.c:3047
int dup(int oldfd)
Definition vsf_linux_fs.c:1577
#define setgid
Definition unistd.h:55
int mkdirs(const char *pathname, mode_t mode)
Definition vsf_linux_fs.c:1559
#define mkdir
Definition unistd.h:117
#define execv
Definition unistd.h:77
#define getpagesize
Definition unistd.h:94
#define execlp
Definition unistd.h:76
#define alarm
Definition unistd.h:86
#define confstr
Definition unistd.h:46
#define setegid
Definition unistd.h:57
#define pwrite
Definition unistd.h:127
#define getpass
Definition unistd.h:102
#define writev
Definition unistd.h:125
#define _CS_PATH
Definition unistd.h:189
#define getpgid
Definition unistd.h:69
#define ftruncate64
Definition unistd.h:97
#define pread
Definition unistd.h:126
#define fchdir
Definition unistd.h:131
#define execvpe
Definition unistd.h:80
#define gethostid
Definition unistd.h:108
#define getlogin
Definition unistd.h:52
int fchownat(int dirfd, const char *pathname, uid_t owner, gid_t group, int flags)
Definition vsf_linux.c:3057
#define getpgrp
Definition unistd.h:71
#define tcgetpgrp
Definition unistd.h:100
#define getcwd
Definition unistd.h:132
#define pipe2
Definition unistd.h:85
#define truncate
Definition unistd.h:96
exec_ret_t execle(const char *pathname, const char *arg,...)
Definition vsf_linux.c:2438
#define readv
Definition unistd.h:124
#define truncate64
Definition unistd.h:98
ssize_t preadv64(int fd, const struct iovec *vector, int iovcnt, off64_t offset)
Definition vsf_linux_fs.c:2037
#define ualarm
Definition unistd.h:87
#define pipe
Definition unistd.h:84
#define seteuid
Definition unistd.h:61
#define read
Definition unistd.h:122
#define rmdir
Definition unistd.h:119
#define execl
Definition unistd.h:75
#define acct
Definition unistd.h:90
#define execvp
Definition unistd.h:79
#define setsid
Definition unistd.h:66
#define fdatasync
Definition unistd.h:134
@ _PC_MAX_CANON
Definition unistd.h:221
@ _PC_LINK_MAX
Definition unistd.h:220
@ _PC_MAX_INPUT
Definition unistd.h:222
@ _PC_NAME_MAX
Definition unistd.h:223
@ _PC_PATH_MAX
Definition unistd.h:224
#define unlinkat
Definition unistd.h:115
#define setpgrp
Definition unistd.h:70
#define preadv
Definition unistd.h:128
int chown(const char *pathname, uid_t owner, gid_t group)
Definition vsf_linux.c:3042
#define getuid
Definition unistd.h:60
off64_t lseek64(int fd, off64_t offset, int whence)
Definition vsf_linux_fs.c:2119
char * ttyname(int fd)
Definition vsf_linux.c:1099
#define pwritev
Definition unistd.h:129
#define symlink
Definition unistd.h:93
#define ftruncate
Definition unistd.h:95
int ttyname_r(int fd, char *buf, size_t buflen)
Definition vsf_linux.c:1077
#define sysconf
Definition unistd.h:81
#define close
Definition unistd.h:120
#define chdir
Definition unistd.h:130
#define getgid
Definition unistd.h:56
#define usleep
Definition unistd.h:48
#define mkdirat
Definition unistd.h:118
#define gethostname
Definition unistd.h:103
#define fork
Definition unistd.h:88
#define getentropy
Definition unistd.h:106
#define _exit
Definition unistd.h:89
#define geteuid
Definition unistd.h:62
#define write
Definition unistd.h:123
void sync(void)
Definition vsf_linux_fs.c:2146
#define setresgid
Definition unistd.h:73
#define setuid
Definition unistd.h:59
#define sleep
Definition unistd.h:49
#define getlogin_r
Definition unistd.h:53
#define getegid
Definition unistd.h:58
pid_t __vsf_linux_vfork_prepare(vsf_linux_process_t *parent_process)
Definition vsf_linux.c:3881
int syncfs(int fd)
Definition vsf_linux_fs.c:2150
#define fsync
Definition unistd.h:133
#define sethostname
Definition unistd.h:104
#define getsid
Definition unistd.h:67
#define getpid
Definition unistd.h:63
#define setpgid
Definition unistd.h:68
#define gettid
Definition unistd.h:65
#define _CS_GNU_LIBC_VERSION
Definition unistd.h:191
#define execve
Definition unistd.h:78
ssize_t pwritev64(int fd, const struct iovec *vector, int iovcnt, off64_t offset)
Definition vsf_linux_fs.c:2073
#define getppid
Definition unistd.h:64
#define tcsetpgrp
Definition unistd.h:101
int getdtablesize(void)
Definition vsf_linux.c:3875
#define isatty
Definition unistd.h:92
int dup3(int oldfd, int newfd, int flags)
Definition vsf_linux_fs.c:1587
int daemon(int nochdir, int noclose)
Definition vsf_linux.c:1894
#define _CS_GNU_LIBPTHREAD_VERSION
Definition unistd.h:193
int chroot(const char *path)
Definition vsf_linux_fs.c:1633
#define readlink
Definition unistd.h:99
#define __VSF_VPLT_DECORATOR__
Definition vsf_cfg.h:93
#define VSF_APPLET_VPLT_ENTRY_FUNC_TRACE()
Definition vsf_cfg.h:165
exec_ret_t __execl_va(const char *pathname, const char *arg, va_list ap, bool has_env)
Definition vsf_linux.c:2401
exec_ret_t __execlp_va(const char *pathname, const char *arg, va_list ap)
Definition vsf_linux.c:2364
#define VSF_APPLET_VPLT_FUNC_DECORATOR(__NAME)
Definition vsf_linux_applet_lib.c:1
uint64_t offset
Definition vsf_memfs.h:49
uint_fast8_t length
Definition vsf_pbuf.c:38
uint8_t status
Definition vsf_tgui.h:122