diff options
author | Jarkko Hietaniemi <jhi@iki.fi> | 2001-08-02 13:25:43 +0000 |
---|---|---|
committer | Jarkko Hietaniemi <jhi@iki.fi> | 2001-08-02 13:25:43 +0000 |
commit | e1caacb4fdb62cb28dc825ca0115faf95e569339 (patch) | |
tree | 82b5eb0dc32a568bebeaf78d402b2441de840112 /wince/include | |
parent | 6f2ad931e2b0390c895341c3cd8e3fad2616118f (diff) | |
download | perl-e1caacb4fdb62cb28dc825ca0115faf95e569339.tar.gz |
Integrate the PerlCE (WinCE Perl) port;
kindly supplied by Rainer Keuchel <rkeuc@allgeier.com>.
p4raw-id: //depot/perl@11549
Diffstat (limited to 'wince/include')
-rw-r--r-- | wince/include/arpa/inet.h | 4 | ||||
-rw-r--r-- | wince/include/cectype.h | 19 | ||||
-rw-r--r-- | wince/include/errno.h | 49 | ||||
-rw-r--r-- | wince/include/netdb.h | 12 | ||||
-rw-r--r-- | wince/include/sys/socket.h | 217 | ||||
-rw-r--r-- | wince/include/sys/stat.h | 55 | ||||
-rw-r--r-- | wince/include/sys/types.h | 23 | ||||
-rw-r--r-- | wince/include/sys/utime.h | 18 | ||||
-rw-r--r-- | wince/include/time.h | 58 |
9 files changed, 455 insertions, 0 deletions
diff --git a/wince/include/arpa/inet.h b/wince/include/arpa/inet.h new file mode 100644 index 0000000000..0303df0876 --- /dev/null +++ b/wince/include/arpa/inet.h @@ -0,0 +1,4 @@ +/* + * this is a dummy header file for Socket.xs + */ + diff --git a/wince/include/cectype.h b/wince/include/cectype.h new file mode 100644 index 0000000000..3531ba2ac0 --- /dev/null +++ b/wince/include/cectype.h @@ -0,0 +1,19 @@ +#ifndef CECTYPE_H
+#define CECTYPE_H 1
+
+#if UNDER_CE < 300
+#define isdigit(C) iswdigit(C)
+#define isalpha(C) iswalpha(C)
+#define islower(C) iswlower(C)
+#define isupper(C) iswupper(C)
+#define isspace(C) iswspace(C)
+#define isalnum(C) iswalnum(C)
+#define iscntrl(C) iswcntrl(C)
+#define isprint(C) iswprint(C)
+#define ispunct(C) iswpunct(C)
+#define isxdigit(C) iswxdigit(C)
+#define isascii(C) iswascii(C)
+#define isgraph(C) iswgraph(C)
+#endif
+
+#endif
diff --git a/wince/include/errno.h b/wince/include/errno.h new file mode 100644 index 0000000000..29c4775d37 --- /dev/null +++ b/wince/include/errno.h @@ -0,0 +1,49 @@ +#ifndef ERRNO_H
+#define ERRNO_H 1
+
+#ifdef wince_private
+#include <cethread.h>
+#ifdef _MT
+#define errno _getptd()->_terrno
+#else
+extern int errno;
+#endif
+#endif
+
+#define EPERM 1
+#define ENOENT 2
+#define ESRCH 3
+#define EINTR 4
+#define EIO 5
+#define ENXIO 6
+#define E2BIG 7
+#define ENOEXEC 8
+#define EBADF 9
+#define ECHILD 10
+#define EAGAIN 11
+#define ENOMEM 12
+#define EACCES 13
+#define EFAULT 14
+#define EOSERR 15 // rk
+#define EBUSY 16
+#define EEXIST 17
+#define EXDEV 18
+#define ENODEV 19
+#define ENOTDIR 20
+#define EISDIR 21
+#define EINVAL 22
+#define ENFILE 23
+#define EMFILE 24
+#define ENOTTY 25
+#define EFBIG 27
+#define ENOSPC 28
+#define ESPIPE 29
+#define EROFS 30
+#define EMLINK 31
+#define EPIPE 32
+#define EDOM 33
+#define ERANGE 34
+#define EDEADLK 36
+#define ENOSYS 37
+
+#endif
diff --git a/wince/include/netdb.h b/wince/include/netdb.h new file mode 100644 index 0000000000..b0c5ea1949 --- /dev/null +++ b/wince/include/netdb.h @@ -0,0 +1,12 @@ +// netdb.h + +// djl +// Provide UNIX compatibility + + +#ifndef _INC_NETDB +#define _INC_NETDB + +#include <sys/socket.h> + +#endif //_INC_NETDB diff --git a/wince/include/sys/socket.h b/wince/include/sys/socket.h new file mode 100644 index 0000000000..2d6f7b8306 --- /dev/null +++ b/wince/include/sys/socket.h @@ -0,0 +1,217 @@ +// sys/socket.h + +// djl +// Provide UNIX compatibility + +#ifndef _INC_SYS_SOCKET +#define _INC_SYS_SOCKET + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef _WINDOWS_ +#ifdef __GNUC__ +#define WIN32_LEAN_AND_MEAN +#ifdef __GNUC__ +#define Win32_Winsock +#endif +#include <windows.h> +#else +#define _WINDOWS_ + +#ifndef FAR +#define FAR +#endif + +#define PASCAL __stdcall +#define WINAPI __stdcall + +#undef WORD +typedef int BOOL; +typedef unsigned short WORD; +typedef void* HANDLE; +typedef void* HWND; +typedef int (FAR WINAPI *FARPROC)(); + +typedef unsigned long DWORD; +typedef void *PVOID; + +#define IN +#define OUT + +#ifndef UNDER_CE +typedef struct _OVERLAPPED { + DWORD Internal; + DWORD InternalHigh; + DWORD Offset; + DWORD OffsetHigh; + HANDLE hEvent; +} OVERLAPPED, *LPOVERLAPPED; +#endif + +#endif +#endif //_WINDOWS_ +// #ifndef __GNUC__ +#include <winsock.h> +// #endif + +#define ENOTSOCK WSAENOTSOCK +#undef HOST_NOT_FOUND + +#ifdef USE_SOCKETS_AS_HANDLES + +#ifndef PERL_FD_SETSIZE +#define PERL_FD_SETSIZE 64 +#endif + +#define PERL_BITS_PER_BYTE 8 +#define PERL_NFDBITS (sizeof(Perl_fd_mask)*PERL_BITS_PER_BYTE) + +typedef int Perl_fd_mask; + +typedef struct Perl_fd_set { + Perl_fd_mask bits[(PERL_FD_SETSIZE+PERL_NFDBITS-1)/PERL_NFDBITS]; +} Perl_fd_set; + +#define PERL_FD_CLR(n,p) \ + ((p)->bits[(n)/PERL_NFDBITS] &= ~((unsigned)1 << ((n)%PERL_NFDBITS))) + +#define PERL_FD_SET(n,p) \ + ((p)->bits[(n)/PERL_NFDBITS] |= ((unsigned)1 << ((n)%PERL_NFDBITS))) + +#define PERL_FD_ZERO(p) memset((char *)(p),0,sizeof(*(p))) + +#define PERL_FD_ISSET(n,p) \ + ((p)->bits[(n)/PERL_NFDBITS] & ((unsigned)1 << ((n)%PERL_NFDBITS))) + +#else /* USE_SOCKETS_AS_HANDLES */ + +#define Perl_fd_set fd_set +#define PERL_FD_SET(n,p) FD_SET(n,p) +#define PERL_FD_CLR(n,p) FD_CLR(n,p) +#define PERL_FD_ISSET(n,p) FD_ISSET(n,p) +#define PERL_FD_ZERO(p) FD_ZERO(p) + +#endif /* USE_SOCKETS_AS_HANDLES */ + +SOCKET win32_accept (SOCKET s, struct sockaddr *addr, int *addrlen); +int win32_bind (SOCKET s, const struct sockaddr *addr, int namelen); +int win32_closesocket (SOCKET s); +int win32_connect (SOCKET s, const struct sockaddr *name, int namelen); +int win32_ioctlsocket (SOCKET s, long cmd, u_long *argp); +int win32_getpeername (SOCKET s, struct sockaddr *name, int * namelen); +int win32_getsockname (SOCKET s, struct sockaddr *name, int * namelen); +int win32_getsockopt (SOCKET s, int level, int optname, char * optval, int *optlen); +u_long win32_htonl (u_long hostlong); +u_short win32_htons (u_short hostshort); +unsigned long win32_inet_addr (const char * cp); +char * win32_inet_ntoa (struct in_addr in); +int win32_listen (SOCKET s, int backlog); +u_long win32_ntohl (u_long netlong); +u_short win32_ntohs (u_short netshort); +int win32_recv (SOCKET s, char * buf, int len, int flags); +int win32_recvfrom (SOCKET s, char * buf, int len, int flags, + struct sockaddr *from, int * fromlen); +int win32_select (int nfds, Perl_fd_set *rfds, Perl_fd_set *wfds, Perl_fd_set *xfds, + const struct timeval *timeout); +int win32_send (SOCKET s, const char * buf, int len, int flags); +int win32_sendto (SOCKET s, const char * buf, int len, int flags, + const struct sockaddr *to, int tolen); +int win32_setsockopt (SOCKET s, int level, int optname, + const char * optval, int optlen); +SOCKET win32_socket (int af, int type, int protocol); +int win32_shutdown (SOCKET s, int how); + +/* Database function prototypes */ + +struct hostent * win32_gethostbyaddr(const char * addr, int len, int type); +struct hostent * win32_gethostbyname(const char * name); +int win32_gethostname (char * name, int namelen); +struct servent * win32_getservbyport(int port, const char * proto); +struct servent * win32_getservbyname(const char * name, const char * proto); +struct protoent * win32_getprotobynumber(int proto); +struct protoent * win32_getprotobyname(const char * name); +struct protoent *win32_getprotoent(void); +struct servent *win32_getservent(void); +void win32_sethostent(int stayopen); +void win32_setnetent(int stayopen); +struct netent * win32_getnetent(void); +struct netent * win32_getnetbyname(char *name); +struct netent * win32_getnetbyaddr(long net, int type); +void win32_setprotoent(int stayopen); +void win32_setservent(int stayopen); +void win32_endhostent(void); +void win32_endnetent(void); +void win32_endprotoent(void); +void win32_endservent(void); + +#ifndef WIN32SCK_IS_STDSCK +// +// direct to our version +// +#define htonl win32_htonl +#define htons win32_htons +#define ntohl win32_ntohl +#define ntohs win32_ntohs +#define inet_addr win32_inet_addr +#define inet_ntoa win32_inet_ntoa + +#define socket win32_socket +#define bind win32_bind +#define listen win32_listen +#define accept win32_accept +#define connect win32_connect +#define send win32_send +#define sendto win32_sendto +#define recv win32_recv +#define recvfrom win32_recvfrom +#define shutdown win32_shutdown +#define closesocket win32_closesocket +#define ioctlsocket win32_ioctlsocket +#define setsockopt win32_setsockopt +#define getsockopt win32_getsockopt +#define getpeername win32_getpeername +#define getsockname win32_getsockname +#define gethostname win32_gethostname +#define gethostbyname win32_gethostbyname +#define gethostbyaddr win32_gethostbyaddr +#define getprotobyname win32_getprotobyname +#define getprotobynumber win32_getprotobynumber +#define getservbyname win32_getservbyname +#define getservbyport win32_getservbyport +#define select win32_select +#define endhostent win32_endhostent +#define endnetent win32_endnetent +#define endprotoent win32_endprotoent +#define endservent win32_endservent +#define getnetent win32_getnetent +#define getnetbyname win32_getnetbyname +#define getnetbyaddr win32_getnetbyaddr +#define getprotoent win32_getprotoent +#define getservent win32_getservent +#define sethostent win32_sethostent +#define setnetent win32_setnetent +#define setprotoent win32_setprotoent +#define setservent win32_setservent + +#ifdef USE_SOCKETS_AS_HANDLES +#undef fd_set +#undef FD_SET +#undef FD_CLR +#undef FD_ISSET +#undef FD_ZERO +#define fd_set Perl_fd_set +#define FD_SET(n,p) PERL_FD_SET(n,p) +#define FD_CLR(n,p) PERL_FD_CLR(n,p) +#define FD_ISSET(n,p) PERL_FD_ISSET(n,p) +#define FD_ZERO(p) PERL_FD_ZERO(p) +#endif /* USE_SOCKETS_AS_HANDLES */ + +#endif /* WIN32SCK_IS_STDSCK */ + +#ifdef __cplusplus +} +#endif + +#endif // _INC_SYS_SOCKET diff --git a/wince/include/sys/stat.h b/wince/include/sys/stat.h new file mode 100644 index 0000000000..b4dcc9fe40 --- /dev/null +++ b/wince/include/sys/stat.h @@ -0,0 +1,55 @@ +#ifndef SYS_STAT_H
+#define SYS_STAT_H 1
+
+#include <sys/types.h>
+
+// stat.h
+#define _S_IFMT 0170000 /* file type mask */
+#define _S_IFDIR 0040000 /* directory */
+#define _S_IFCHR 0020000 /* character special */
+#define _S_IFIFO 0010000 /* pipe */
+#define _S_IFREG 0100000 /* regular */
+#define _S_IREAD 0000400 /* read permission, owner */
+#define _S_IWRITE 0000200 /* write permission, owner */
+#define _S_IEXEC 0000100 /* execute/search permission, owner */
+
+#define _S_IFMT 0170000 /* file type mask */
+#define _S_IFDIR 0040000 /* directory */
+#define _S_IFCHR 0020000 /* character special */
+#define _S_IFIFO 0010000 /* pipe */
+#define _S_IFREG 0100000 /* regular */
+#define _S_IREAD 0000400 /* read permission, owner */
+#define _S_IWRITE 0000200 /* write permission, owner */
+#define _S_IEXEC 0000100 /* execute/search permission, owner */
+
+#define S_IFMT _S_IFMT
+#define S_IFREG _S_IFREG
+#define S_IFCHR _S_IFCHR
+#define S_IFDIR _S_IFDIR
+#define S_IREAD _S_IREAD
+#define S_IWRITE _S_IWRITE
+#define S_IEXEC _S_IEXEC
+
+#ifndef S_ISDIR
+#define S_ISDIR(X) (((X) & S_IFMT) == S_IFDIR)
+#endif
+#ifndef S_ISREG
+#define S_ISREG(X) (((X) & S_IFMT) == S_IFREG)
+#endif
+
+struct stat
+{
+ dev_t st_dev;
+ ino_t st_ino;
+ unsigned short st_mode;
+ short st_nlink;
+ short st_uid;
+ short st_gid;
+ dev_t st_rdev;
+ off_t st_size;
+ time_t st_atime;
+ time_t st_mtime;
+ time_t st_ctime;
+};
+
+#endif
diff --git a/wince/include/sys/types.h b/wince/include/sys/types.h new file mode 100644 index 0000000000..9741ca5937 --- /dev/null +++ b/wince/include/sys/types.h @@ -0,0 +1,23 @@ +#ifndef SYS_TYPES_H
+#define SYS_TYPES_H 1
+
+#ifndef _TIME_T_DEFINED_
+typedef unsigned long time_t;
+#define _TIME_T_DEFINED_
+#endif
+
+typedef unsigned long dev_t;
+typedef unsigned long ino_t;
+typedef unsigned short gid_t;
+typedef unsigned short uid_t;
+typedef long clock_t;
+typedef long ptrdiff_t;
+typedef long off_t;
+
+typedef unsigned char u_char;
+typedef unsigned short u_short;
+
+typedef unsigned char * caddr_t;
+typedef unsigned int size_t;
+
+#endif
diff --git a/wince/include/sys/utime.h b/wince/include/sys/utime.h new file mode 100644 index 0000000000..c98ddcf52c --- /dev/null +++ b/wince/include/sys/utime.h @@ -0,0 +1,18 @@ +#ifndef SYS_UTIME_H
+#define SYS_UTIME_H 1
+
+#include "time.h"
+
+struct utimbuf
+{
+ time_t actime;
+ time_t modtime;
+};
+
+struct _utimbuf
+{
+ time_t actime;
+ time_t modtime;
+};
+
+#endif
diff --git a/wince/include/time.h b/wince/include/time.h new file mode 100644 index 0000000000..78acd32930 --- /dev/null +++ b/wince/include/time.h @@ -0,0 +1,58 @@ +#ifndef TIME_H
+#define TIME_H 1
+
+#include <celib_defs.h>
+#include <sys/types.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern long _timezone;
+extern int _daylight;
+extern long _dstbias;
+extern char *_tzname[];
+extern const char __dnames[];
+extern const char __mnames[];
+extern int _days[];
+extern int _lpdays[];
+
+#define _DAY_SEC (24L * 60L * 60L) /* secs in a day */
+#define _YEAR_SEC (365L * _DAY_SEC) /* secs in a year */
+#define _FOUR_YEAR_SEC (1461L * _DAY_SEC) /* secs in a 4 year interval */
+#define _DEC_SEC 315532800L /* secs in 1970-1979 */
+#define _BASE_YEAR 70L /* 1970 is the base year */
+#define _BASE_DOW 4 /* 01-01-70 was a Thursday */
+#define _LEAP_YEAR_ADJUST 17L /* Leap years 1900 - 1970 */
+#define _MAX_YEAR 138L /* 2038 is the max year */
+
+struct tm {
+ int tm_sec; /* seconds after the minute - [0,59] */
+ int tm_min; /* minutes after the hour - [0,59] */
+ int tm_hour; /* hours since midnight - [0,23] */
+ int tm_mday; /* day of the month - [1,31] */
+ int tm_mon; /* months since January - [0,11] */
+ int tm_year; /* years since 1900 */
+ int tm_wday; /* days since Sunday - [0,6] */
+ int tm_yday; /* days since January 1 - [0,365] */
+ int tm_isdst; /* daylight savings time flag */
+};
+
+XCE_EXPORT struct tm * xcegmtime(const time_t *timp);
+XCE_EXPORT struct tm *xcelocaltime (const time_t *ptime);
+XCE_EXPORT char *xceasctime (const struct tm *tb);
+XCE_EXPORT int xceutime (const char *fname, struct _utimbuf *times);
+XCE_EXPORT int xcefutime (int fh, struct _utimbuf *times);
+XCE_EXPORT void xceftime (struct _timeb *tp);
+XCE_EXPORT void xcegettimeofday (struct timeval *tv, struct timezone *tz);
+XCE_EXPORT char *xcectime(const time_t *timp);
+XCE_EXPORT void xceftime (struct _timeb *tp);
+XCE_EXPORT time_t xcemktime (struct tm *tb);
+XCE_EXPORT time_t xcetime (time_t *timeptr);
+XCE_EXPORT void _xcetzset(void);
+
+#ifdef __cplusplus
+};
+#endif
+
+#endif
|