#define OPENFLAG_APPEND 0x20
#define OPENFLAG_NOLINK 0x40
#define OPENFLAG_CREATE 0x80
+#define OPENFLAG_NONBLOCK 0x100 // How would this work?
#ifndef SEEK_CUR
# define SEEK_SET 1
# define SEEK_CUR 0
#define GETMSG_IGNORE ((void*)-1)
#define FILEFLAG_DIRECTORY 0x10
#define FILEFLAG_SYMLINK 0x20
+#define CLONE_VM 0x10
+
+#ifdef ARCHDIR_is_native
+# include "_native_syscallmod.h"
+#endif
// === TYPES ===
extern int _SysExecVE(const char *path, char **argv, char **envp);
extern int _SysSpawn(const char *Path, const char **argv, const char **envp, int nFDs, int *FDs, struct s_sys_spawninfo *info);
extern int gettid(void);
-extern int getpid(void);
+extern int _SysGetPID(void);
extern int _SysSetFaultHandler(int (*Handler)(int));
extern void _SysSetName(const char *Name);
extern int _SysGetName(char *NameDest);
extern int64_t _SysTimestamp(void);
// --- Permissions ---
-extern int getuid(void);
-extern int getgid(void);
+extern int _SysGetUID(void);
+extern int _SysGetGID(void);
extern void setuid(int id);
extern void setgid(int id);
extern int _SysOpenPipe(int *read, int *write, int flags);
extern int _SysReopen(int fd, const char *path, int flags);
extern int _SysCopyFD(int srcfd, int dstfd);
+extern int _SysFDFlags(int fd, int mask, int newflags);
extern size_t _SysRead(int fd, void *buffer, size_t length);
extern int _SysClose(int fd);
extern int _SysFDCtl(int fd, int option, ...);
extern int _SysGetACL(int fd, t_sysACL *dest);
extern int _SysMount(const char *Device, const char *Directory, const char *Type, const char *Options);
extern int _SysSelect(int nfds, fd_set *read, fd_set *write, fd_set *err, int64_t *timeout, unsigned int extraevents);
-#define select(nfs, rdfds, wrfds, erfds, timeout) _SysSelect(nfs, rdfds, wrfds, erfds, timeout, 0)
+//#define select(nfs, rdfds, wrfds, erfds, timeout) _SysSelect(nfs, rdfds, wrfds, erfds, timeout, 0)
extern int _SysUnlink(const char *pathname);
// --- IPC ---