4 /* prototypes and defines missing from current OS4 SDK; */
8 // #define INADDR_LOOPBACK 0x7f00001UL
14 #if defined(__CLIB2__)
17 #if defined(__NEWLIB__)
18 #include <amiga_platform.h>
22 int myexecve(bool isperlthread, const char *path, char *argv[], char *env[]);
23 int myexecvp(bool isperlthread, const char *filename, char *argv[]);
24 int myexecv(bool isperlthread, const char *path, char *argv[]);
25 int myexecl(bool isperlthread, const char *path, ...);
28 #define execve(path, argv, env) myexecve(TRUE, path, argv, env)
29 #define execvp(filename, argv) myexecvp(TRUE, filename, argv)
30 #define execv(path, argv) myexecv(TRUE, path, argv)
31 #define execl(path, ...) myexecl(TRUE, path, __VA_ARGS__)
33 int pipe(int filedes[2]);
35 //FILE *amigaos_popen(const char *cmd, const char *mode);
36 //int amigaos_pclose(FILE *f);
38 void amigaos4_obtain_environ();
39 void amigaos4_release_environ();
41 char *mystrdup(const char *s);
43 char *convert_path_u2a(const char *filename);
44 char *convert_path_a2u(const char *filename);
46 /* Need Pid_t define to make amigaos.c compile without including config.h */
51 int amigaos_kill(Pid_t pid, int signal);
53 #define kill(a,b) amigaos_kill((a),(b))
55 void ___makeenviron() __attribute__((constructor));
56 void ___freeenviron() __attribute__((destructor));
58 long amigaos_get_file(int fd);
60 void amigaos4_init_fork_array();
61 void amigaos4_dispose_fork_array();
62 void amigaos4_init_environ_sema();
64 /* emulated flock stuff */
66 #define LOCK_SH 1 /* Shared lock. */
67 #define LOCK_EX 2 /* Exclusive lock. */
68 #define LOCK_UN 8 /* Unlock. */
69 #define LOCK_NB 4 /* Don't block when locking. */
71 extern int flock(int fd, int operation);
73 #define flock(a, b) amigaos_flock((a), (b))