diff options
author | mkaply%us.ibm.com <devnull@localhost> | 2004-04-19 16:28:00 +0000 |
---|---|---|
committer | mkaply%us.ibm.com <devnull@localhost> | 2004-04-19 16:28:00 +0000 |
commit | f70daeec9ae46bae2cd770fc162217e66ce7c1d5 (patch) | |
tree | 49255fbcd80fa55d286a0607079c07c8eeb540dd | |
parent | 86a38a05ee685993cccbf9a4f458d36351b59aa9 (diff) | |
download | nspr-hg-f70daeec9ae46bae2cd770fc162217e66ce7c1d5.tar.gz |
#239663
r=mkaply, sr=blizzard (platform specific)
OS/2 only - bring back VACPP support for NSPR and DBM mainly so VACPP can still be used with NSS
-rw-r--r-- | config/rules.mk | 5 | ||||
-rw-r--r-- | configure.in | 2 | ||||
-rw-r--r-- | pr/include/md/_os2.h | 7 | ||||
-rw-r--r-- | pr/include/md/_os2_errors.h | 2 | ||||
-rw-r--r-- | pr/include/prio.h | 2 | ||||
-rw-r--r-- | pr/include/private/primpl.h | 4 | ||||
-rw-r--r-- | pr/include/prtypes.h | 15 | ||||
-rw-r--r-- | pr/src/io/prsocket.c | 6 | ||||
-rw-r--r-- | pr/src/md/os2/os2_errors.c | 2 | ||||
-rw-r--r-- | pr/src/md/os2/os2sock.c | 17 | ||||
-rw-r--r-- | pr/src/md/os2/os2thred.c | 8 | ||||
-rw-r--r-- | pr/src/misc/prnetdb.c | 6 |
12 files changed, 60 insertions, 16 deletions
diff --git a/config/rules.mk b/config/rules.mk index beb3072a..200f6634 100644 --- a/config/rules.mk +++ b/config/rules.mk @@ -378,11 +378,16 @@ ifeq ($(OS_ARCH),OS2) echo CODE LOADONCALL MOVEABLE DISCARDABLE >> $@ echo DATA PRELOAD MOVEABLE MULTIPLE NONSHARED >> $@ echo EXPORTS >> $@ +ifeq ($(MOZ_OS2_TOOLS),VACPP) + grep -v ';+' $< | grep -v ';-' | \ + sed -e 's; DATA ;;' -e 's,;;,,' -e 's,;.*,,' >> $@ +else grep -v ';+' $< | grep -v ';-' | \ sed -e 's; DATA ;;' -e 's,;;,,' -e 's,;.*,,' -e 's,\([\t ]*\),\1_,' | \ awk 'BEGIN {ord=1;} { print($$0 " @" ord " RESIDENTNAME"); ord++;}' >> $@ $(ADD_TO_DEF_FILE) endif +endif # # Translate source filenames to absolute paths. This is required for diff --git a/configure.in b/configure.in index 8084f1d0..5770eaeb 100644 --- a/configure.in +++ b/configure.in @@ -1789,6 +1789,8 @@ mips-sony-newsos*) *-os2*) AC_DEFINE(XP_OS2) AC_DEFINE(XP_PC) + AC_DEFINE(BSD_SELECT) + AC_DEFINE(TCPV40HDRS) LIB_SUFFIX=lib DLL_SUFFIX=dll RC=rc.exe diff --git a/pr/include/md/_os2.h b/pr/include/md/_os2.h index 4f97703a..8dbbafde 100644 --- a/pr/include/md/_os2.h +++ b/pr/include/md/_os2.h @@ -242,9 +242,6 @@ extern PRInt32 _MD_CloseFile(PRInt32 osfd); /* --- Socket IO stuff --- */ -#define TCPV40HDRS -#define BSD_SELECT - /* The ones that don't map directly may need to be re-visited... */ #ifdef XP_OS2_VACPP #define EPIPE EBADF @@ -286,7 +283,11 @@ extern PRInt32 _MD_CloseSocket(PRInt32 osfd); #define _MD_CLOSE_SOCKET _MD_CloseSocket #define _MD_SENDTO (_PR_MD_SENDTO) #define _MD_RECVFROM (_PR_MD_RECVFROM) +#ifdef XP_OS2_VACPP +#define _MD_SOCKETPAIR(s, type, proto, sv) -1 +#else #define _MD_SOCKETPAIR (_PR_MD_SOCKETPAIR) +#endif #define _MD_GETSOCKNAME (_PR_MD_GETSOCKNAME) #define _MD_GETPEERNAME (_PR_MD_GETPEERNAME) #define _MD_GETSOCKOPT (_PR_MD_GETSOCKOPT) diff --git a/pr/include/md/_os2_errors.h b/pr/include/md/_os2_errors.h index b872fac8..1eae688b 100644 --- a/pr/include/md/_os2_errors.h +++ b/pr/include/md/_os2_errors.h @@ -127,8 +127,10 @@ NSPR_API(void) _MD_os2_map_listen_error(PRInt32 err); NSPR_API(void) _MD_os2_map_shutdown_error(PRInt32 err); #define _PR_MD_MAP_SHUTDOWN_ERROR _MD_os2_map_shutdown_error +#ifndef XP_OS2_VACPP NSPR_API(void) _MD_os2_map_socketpair_error(int err); #define _PR_MD_MAP_SOCKETPAIR_ERROR _MD_os2_map_socketpair_error +#endif NSPR_API(void) _MD_os2_map_getsockname_error(PRInt32 err); #define _PR_MD_MAP_GETSOCKNAME_ERROR _MD_os2_map_getsockname_error diff --git a/pr/include/prio.h b/pr/include/prio.h index 50bfa811..dbda0788 100644 --- a/pr/include/prio.h +++ b/pr/include/prio.h @@ -194,7 +194,7 @@ union PRNetAddr { PRIPv6Addr ip; /* the actual 128 bits of address */ PRUint32 scope_id; /* set of interfaces for a scope */ } ipv6; -#if defined(XP_UNIX) || defined(XP_OS2) +#if defined(XP_UNIX) || defined(XP_OS2_EMX) struct { /* Unix domain socket address */ PRUint16 family; /* address family (AF_UNIX) */ #ifdef XP_OS2 diff --git a/pr/include/private/primpl.h b/pr/include/private/primpl.h index db323306..e39ba6a1 100644 --- a/pr/include/private/primpl.h +++ b/pr/include/private/primpl.h @@ -1395,7 +1395,7 @@ extern PRUintn _PR_NetAddrSize(const PRNetAddr* addr); ** struct sockaddr_in6. */ -#if defined(XP_UNIX) || defined(XP_OS2) +#if defined(XP_UNIX) || defined(XP_OS2_EMX) #define PR_NETADDR_SIZE(_addr) \ ((_addr)->raw.family == PR_AF_INET \ ? sizeof((_addr)->inet) \ @@ -1411,7 +1411,7 @@ extern PRUintn _PR_NetAddrSize(const PRNetAddr* addr); #else -#if defined(XP_UNIX) || defined(XP_OS2) +#if defined(XP_UNIX) || defined(XP_OS2_EMX) #define PR_NETADDR_SIZE(_addr) \ ((_addr)->raw.family == PR_AF_INET \ ? sizeof((_addr)->inet) \ diff --git a/pr/include/prtypes.h b/pr/include/prtypes.h index 819f9c16..b7ee24f4 100644 --- a/pr/include/prtypes.h +++ b/pr/include/prtypes.h @@ -158,6 +158,21 @@ #define PR_CALLBACK_DECL #define PR_STATIC_CALLBACK(__x) static __x +#elif defined(XP_OS2_VACPP) + +#define PR_EXPORT(__type) extern __type +#define PR_EXPORT_DATA(__type) extern __type +#define PR_IMPORT(__type) extern __type +#define PR_IMPORT_DATA(__type) extern __type + +#define PR_EXTERN(__type) extern __type +#define PR_IMPLEMENT(__type) __type +#define PR_EXTERN_DATA(__type) extern __type +#define PR_IMPLEMENT_DATA(__type) __type +#define PR_CALLBACK _Optlink +#define PR_CALLBACK_DECL +#define PR_STATIC_CALLBACK(__x) static __x PR_CALLBACK + #else /* Unix */ #define PR_EXPORT(__type) extern __type diff --git a/pr/src/io/prsocket.c b/pr/src/io/prsocket.c index 999fc03d..7f5a7065 100644 --- a/pr/src/io/prsocket.c +++ b/pr/src/io/prsocket.c @@ -44,7 +44,7 @@ PRBool IsValidNetAddr(const PRNetAddr *addr) { if ((addr != NULL) -#if defined(XP_UNIX) || defined(XP_OS2) +#if defined(XP_UNIX) || defined(XP_OS2_EMX) && (addr->raw.family != PR_AF_LOCAL) #endif && (addr->raw.family != PR_AF_INET6) @@ -61,7 +61,7 @@ static PRBool IsValidNetAddrLen(const PRNetAddr *addr, PRInt32 addr_len) * is not uniform, so we don't check it. */ if ((addr != NULL) -#if defined(XP_UNIX) || defined(XP_OS2) +#if defined(XP_UNIX) || defined(XP_OS2_EMX) && (addr->raw.family != AF_UNIX) #endif && (PR_NETADDR_SIZE(addr) != addr_len)) { @@ -1273,7 +1273,7 @@ PR_IMPLEMENT(PRFileDesc*) PR_Socket(PRInt32 domain, PRInt32 type, PRInt32 proto) if (!_pr_initialized) _PR_ImplicitInitialization(); if (PR_AF_INET != domain && PR_AF_INET6 != domain -#if defined(XP_UNIX) || defined(XP_OS2) +#if defined(XP_UNIX) || defined(XP_OS2_EMX) && PR_AF_LOCAL != domain #endif ) { diff --git a/pr/src/md/os2/os2_errors.c b/pr/src/md/os2/os2_errors.c index 7c270c4d..1d29bf20 100644 --- a/pr/src/md/os2/os2_errors.c +++ b/pr/src/md/os2/os2_errors.c @@ -875,6 +875,7 @@ void _MD_os2_map_shutdown_error(PRInt32 err) } } +#ifndef XP_OS2_VACPP void _MD_os2_map_socketpair_error(PRInt32 err) { switch (err) { @@ -898,6 +899,7 @@ void _MD_os2_map_socketpair_error(PRInt32 err) return; } } +#endif void _MD_os2_map_getsockname_error(PRInt32 err) { diff --git a/pr/src/md/os2/os2sock.c b/pr/src/md/os2/os2sock.c index 8830a675..0b2653b1 100644 --- a/pr/src/md/os2/os2sock.c +++ b/pr/src/md/os2/os2sock.c @@ -53,6 +53,14 @@ #define READ_FD 1 #define WRITE_FD 2 +#ifdef XP_OS2_VACPP +#define _OS2_WRITEV writev +#define _OS2_IOCTL ioctl +#else +#define _OS2_WRITEV so_writev +#define _OS2_IOCTL so_ioctl +#endif + void _PR_MD_INIT_IO() { @@ -100,7 +108,7 @@ _MD_SocketAvailable(PRFileDesc *fd) { PRInt32 result; - if (so_ioctl(fd->secret->md.osfd, FIONREAD, (char *) &result, sizeof(result)) < 0) { + if (_OS2_IOCTL(fd->secret->md.osfd, FIONREAD, (char *) &result, sizeof(result)) < 0) { PR_SetError(PR_BAD_DESCRIPTOR_ERROR, sock_errno()); return -1; } @@ -539,7 +547,7 @@ _PR_MD_WRITEV(PRFileDesc *fd, const PRIOVec *iov, PRInt32 iov_size, } } - while ((rv = so_writev(osfd, (const struct iovec*)iov, iov_size)) == -1) { + while ((rv = _OS2_WRITEV(osfd, (const struct iovec*)iov, iov_size)) == -1) { err = sock_errno(); if ((err == EWOULDBLOCK)) { if (fd->secret->nonblocking) { @@ -584,6 +592,7 @@ _PR_MD_SHUTDOWN(PRFileDesc *fd, PRIntn how) return rv; } +#ifndef XP_OS2_VACPP PRInt32 _PR_MD_SOCKETPAIR(int af, int type, int flags, PRInt32 *osfd) { @@ -596,7 +605,7 @@ _PR_MD_SOCKETPAIR(int af, int type, int flags, PRInt32 *osfd) } return rv; } - +#endif PRStatus _PR_MD_GETSOCKNAME(PRFileDesc *fd, PRNetAddr *addr, PRUint32 *addrlen) @@ -666,7 +675,7 @@ _MD_MakeNonblock(PRFileDesc *fd) return; } - err = so_ioctl( osfd, FIONBIO, (char *) &one, sizeof(one)); + err = _OS2_IOCTL( osfd, FIONBIO, (char *) &one, sizeof(one)); if ( err != 0 ) { err = sock_errno(); diff --git a/pr/src/md/os2/os2thred.c b/pr/src/md/os2/os2thred.c index 45613573..d6d35b70 100644 --- a/pr/src/md/os2/os2thred.c +++ b/pr/src/md/os2/os2thred.c @@ -220,10 +220,18 @@ _PR_MD_CREATE_THREAD(PRThread *thread, PARAMSTORE* params = PR_Malloc(sizeof(PARAMSTORE)); params->start = start; params->thread = thread; +#ifdef XP_OS2_VACPP /* No exception handler for VACPP */ + thread->md.handle = thread->id = (TID) _beginthread( + (void(* _Optlink)(void*))start, + NULL, + thread->stack->stackSize, + thread); +#else thread->md.handle = thread->id = (TID) _beginthread(ExcpStartFunc, NULL, thread->stack->stackSize, params); +#endif if(thread->md.handle == -1) { return PR_FAILURE; } diff --git a/pr/src/misc/prnetdb.c b/pr/src/misc/prnetdb.c index b26b7539..c0d548d2 100644 --- a/pr/src/misc/prnetdb.c +++ b/pr/src/misc/prnetdb.c @@ -693,7 +693,7 @@ PR_IMPLEMENT(PRStatus) PR_GetHostByName( #ifdef XP_OS2_VACPP h = GETHOSTBYNAME((char *)name); #else - h = GETHOSTBYNAME(name); + h = GETHOSTBYNAME(name); #endif if (NULL == h) @@ -924,7 +924,7 @@ PR_IMPLEMENT(PRStatus) PR_GetIPNodeByName( #else /* _PR_INET6 */ LOCK_DNS(); #ifdef XP_OS2_VACPP - h = GETHOSTBYNAME((char *)name); + h = GETHOSTBYNAME((char *)name); #else h = GETHOSTBYNAME(name); #endif @@ -1373,7 +1373,7 @@ PRUintn _PR_NetAddrSize(const PRNetAddr* addr) #else addrsize = sizeof(addr->ipv6); #endif -#if defined(XP_UNIX) || defined(XP_OS2) +#if defined(XP_UNIX) || defined(XP_OS2_EMX) else if (AF_UNIX == addr->raw.family) addrsize = sizeof(addr->local); #endif |