This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perlapi: Remove per-thread section; move to real scns
[perl5.git] / amigaos4 / amigaos.h
index bcbde8c..f2bab44 100644 (file)
 #include <stdio.h>
 
 #if defined(__CLIB2__)
-#  include <dos.h>
+#include <dos.h>
 #endif
 #if defined(__NEWLIB__)
-#  include <amiga_platform.h>
+#include <amiga_platform.h>
 #endif
 
 #if 1
-int myexecve(const char *path, char *argv[], char *env[]);
-int myexecvp(const char *filename, char *argv[]);
-int myexecv(const char *path, char *argv[]);
-int myexecl(const char *path, ...);
+int myexecve(bool isperlthread, const char *path, char *argv[], char *env[]);
+int myexecvp(bool isperlthread, const char *filename, char *argv[]);
+int myexecv(bool isperlthread, const char *path, char *argv[]);
+int myexecl(bool isperlthread, const char *path, ...);
 #endif
 
-#define execve(path, argv, env) myexecve(path, argv, env)
-#define execvp(filename, argv) myexecvp(filename, argv)
-#define execv(path, argv) myexecv(path, argv)
-#define execl(path, ...) myexecl(path, __VA_ARGS__)
+#define execve(path, argv, env) myexecve(TRUE, path, argv, env)
+#define execvp(filename, argv) myexecvp(TRUE, filename, argv)
+#define execv(path, argv) myexecv(TRUE, path, argv)
+#define execl(path, ...) myexecl(TRUE, path, __VA_ARGS__)
 
 int pipe(int filedes[2]);
 
-FILE *amigaos_popen(const char *cmd, const char *mode);
+//FILE *amigaos_popen(const char *cmd, const char *mode);
+//int   amigaos_pclose(FILE *f);
+
 void amigaos4_obtain_environ();
 void amigaos4_release_environ();
 
-/* signal.h */
+char *mystrdup(const char *s);
+
+char *convert_path_u2a(const char *filename);
+char *convert_path_a2u(const char *filename);
+
+/* Need Pid_t define to make amigaos.c compile without including config.h */
+#ifndef Pid_t
+#define Pid_t pid_t
+#endif
 
-// #define SIGQUIT SIGABRT
+int amigaos_kill(Pid_t pid, int  signal);
+
+#define kill(a,b) amigaos_kill((a),(b))
 
 void ___makeenviron() __attribute__((constructor));
 void ___freeenviron() __attribute__((destructor));
 
 long amigaos_get_file(int fd);
 
-// BOOL constructed;
+void amigaos4_init_fork_array();
+void amigaos4_dispose_fork_array();
+void amigaos4_init_environ_sema();
+
+/* emulated flock stuff */
+
+#define LOCK_SH 1 /* Shared lock.  */
+#define LOCK_EX 2 /* Exclusive lock.  */
+#define LOCK_UN 8 /* Unlock.  */
+#define LOCK_NB 4 /* Don't block when locking.  */
 
+extern int flock(int fd, int operation);
 
+#define flock(a, b) amigaos_flock((a), (b))
 
 #endif