This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Update epigraph
[perl5.git] / amigaos4 / amigaos.h
CommitLineData
a83a2cd1
AB
1#ifndef _AMIGAOS_H
2#define _AMIGAOS_H
3
4/* prototypes and defines missing from current OS4 SDK; */
5
6/* netinet/in.h */
7
8// #define INADDR_LOOPBACK 0x7f00001UL
9
10/* unistd.h */
11
12#include <stdio.h>
13
14#if defined(__CLIB2__)
738ab09f 15#include <dos.h>
a83a2cd1
AB
16#endif
17#if defined(__NEWLIB__)
738ab09f 18#include <amiga_platform.h>
a83a2cd1
AB
19#endif
20
21#if 1
738ab09f
AB
22int myexecve(bool isperlthread, const char *path, char *argv[], char *env[]);
23int myexecvp(bool isperlthread, const char *filename, char *argv[]);
24int myexecv(bool isperlthread, const char *path, char *argv[]);
25int myexecl(bool isperlthread, const char *path, ...);
a83a2cd1
AB
26#endif
27
738ab09f
AB
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__)
a83a2cd1
AB
32
33int pipe(int filedes[2]);
34
47718690
AB
35//FILE *amigaos_popen(const char *cmd, const char *mode);
36//int amigaos_pclose(FILE *f);
6de23f80 37
a83a2cd1
AB
38void amigaos4_obtain_environ();
39void amigaos4_release_environ();
40
738ab09f
AB
41char *mystrdup(const char *s);
42
43char *convert_path_u2a(const char *filename);
44char *convert_path_a2u(const char *filename);
45
ef2467ad
AB
46/* Need Pid_t define to make amigaos.c compile without including config.h */
47#ifndef Pid_t
48#define Pid_t pid_t
49#endif
50
51int amigaos_kill(Pid_t pid, int signal);
a83a2cd1 52
ef2467ad 53#define kill(a,b) amigaos_kill((a),(b))
a83a2cd1
AB
54
55void ___makeenviron() __attribute__((constructor));
56void ___freeenviron() __attribute__((destructor));
57
58long amigaos_get_file(int fd);
59
a843b009
AB
60void amigaos4_init_fork_array();
61void amigaos4_dispose_fork_array();
62void amigaos4_init_environ_sema();
a83a2cd1 63
1cd70adf
AB
64/* emulated flock stuff */
65
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. */
70
71extern int flock(int fd, int operation);
72
73#define flock(a, b) amigaos_flock((a), (b))
74
a83a2cd1 75#endif