4 * Copyright (c) Nokia 2004-2005. All rights reserved.
5 * This code is licensed under the same terms as Perl itself.
9 #ifndef SYMBIAN_PROTO_H
10 #define SYMBIAN_PROTO_H
12 #include <sys/types.h>
13 #include <sys/times.h>
15 #if defined(PERL_CORE) || defined(PERL_EXT)
17 /* We can't include the <string.h> unconditionally
18 * since it has prototypes conflicting with the gcc builtins. */
19 extern void *memchr(const void *s, int c, size_t n);
21 /* dl_symbian.xs needs to see the C++ prototype of memset() instead */
22 extern void *memset(void *s, int c, size_t n);
23 extern size_t strlen(const char *s);
25 extern void *memmove(void *dst, const void *src, size_t n);
26 extern char *strcat(char *dst, const char *src);
27 extern char *strchr(const char *s, int c);
28 extern char *strerror(int errnum);
29 extern int strncmp(const char *s1, const char *s2, size_t n);
30 extern char *strrchr(const char *s, int c);
32 extern int setmode(int fd, long flags);
35 #define memcpy _e32memcpy /* GCC intrinsic */
36 extern void *memcpy(const void *s1, const void *s2, size_t n);
37 extern int strcmp(const char *s1, const char *s2);
38 extern char* strcpy(char *dst, const char *src);
39 extern char* strncpy(char *dst, const char *src, size_t n);
42 #endif /* PERL_CORE || PERL_EXT */
44 #if defined(SYMBIAN_DLL_CPP) || defined(SYMBIAN_UTILS_CPP) || defined(PERLBASE_CPP) || defined(PERLUTIL_CPP)
45 # define PERL_SYMBIAN_START_EXTERN_C extern "C" {
46 # define PERL_SYMBIAN_EXPORT_C EXPORT_C
47 # define PERL_SYMBIAN_END_EXTERN_C }
49 # define PERL_SYMBIAN_START_EXTERN_C
50 # define PERL_SYMBIAN_EXPORT_C
51 # define PERL_SYMBIAN_END_EXTERN_C
54 PERL_SYMBIAN_START_EXTERN_C
55 PERL_SYMBIAN_EXPORT_C int symbian_sys_init(int *argcp, char ***argvp);
56 PERL_SYMBIAN_EXPORT_C void* symbian_get_vars(void);
57 PERL_SYMBIAN_EXPORT_C void symbian_set_vars(const void *);
58 PERL_SYMBIAN_EXPORT_C void symbian_unset_vars(void);
59 PERL_SYMBIAN_EXPORT_C SSize_t symbian_read_stdin(const int fd, char *b, int n);
60 PERL_SYMBIAN_EXPORT_C SSize_t symbian_write_stdout(const int fd, const char *b, int n);
61 PERL_SYMBIAN_EXPORT_C char* symbian_get_error_string(const int error);
62 PERL_SYMBIAN_EXPORT_C void symbian_sleep_usec(const long usec);
63 PERL_SYMBIAN_EXPORT_C int symbian_get_cpu_time(long* sec, long* usec);
64 PERL_SYMBIAN_EXPORT_C clock_t symbian_times(struct tms* buf);
65 PERL_SYMBIAN_EXPORT_C int symbian_usleep(unsigned int usec);
66 PERL_SYMBIAN_EXPORT_C int symbian_do_aspawn(void* vreally, void *vmark, void* sp);
67 PERL_SYMBIAN_EXPORT_C int symbian_do_spawn(const char* command);
68 PERL_SYMBIAN_EXPORT_C int symbian_do_spawn_nowait(const char* command);
69 PERL_SYMBIAN_END_EXTERN_C
71 #endif /* !SYMBIAN_PROTO_H */