Bugzilla Bug 225859: added 64-bit Windows support. Peter Armistead

contributed the first 64-bit Windows patch (for IA64) in 2001.  Portions
of this checkin are based on the patch contributed by Makoto Kato
<m_kato@ga2.so-net.ne.jp>. r=wtc.
Modified Files: configure configure.in prtypes.h _win95.cfg _win95.h
                _winnt.cfg _winnt.h probslet.h pprio.h primpl.h
                pr/src/Makefile.in prfile.c prio.c prsocket.c ntgc.c ntio.c
                ntmisc.c w32rng.c w32shm.c w95io.c w95sock.c w95thred.c
                prinit.c pr/tests/prpoll.c
This commit is contained in:
wtchang%redhat.com 2005-10-21 18:21:43 +00:00
parent 9a4a50882a
commit a17ce29d57
24 changed files with 514 additions and 204 deletions

73
nsprpub/configure vendored
View File

@ -4032,6 +4032,28 @@ EOF
#define _MIPS_ 1
EOF
;;
x86_64)
cat >> confdefs.h <<\EOF
#define _AMD64_ 1
EOF
cat >> confdefs.h <<\EOF
#define _M_AMD64 1
EOF
USE_64=1
;;
ia64)
cat >> confdefs.h <<\EOF
#define _IA64_ 1
EOF
cat >> confdefs.h <<\EOF
#define _M_IA64 1
EOF
USE_64=1
;;
*)
cat >> confdefs.h <<\EOF
@ -4041,6 +4063,13 @@ EOF
;;
esac
if test "$USE_64"; then
cat >> confdefs.h <<\EOF
#define _WIN64 1
EOF
fi
;;
*-ncr-sysv*)
@ -4336,17 +4365,17 @@ EOF
_OPTIMIZE_FLAGS="$_OPTIMIZE_FLAGS -Olimit 4000"
ac_safe=`echo "machine/builtins.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for machine/builtins.h""... $ac_c" 1>&6
echo "configure:4340: checking for machine/builtins.h" >&5
echo "configure:4369: checking for machine/builtins.h" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 4345 "configure"
#line 4374 "configure"
#include "confdefs.h"
#include <machine/builtins.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
{ (eval echo configure:4350: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
{ (eval echo configure:4379: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@ -4908,7 +4937,7 @@ case $target in
;;
*)
echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6
echo "configure:4912: checking for dlopen in -ldl" >&5
echo "configure:4941: checking for dlopen in -ldl" >&5
ac_lib_var=`echo dl'_'dlopen | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@ -4916,7 +4945,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-ldl $LIBS"
cat > conftest.$ac_ext <<EOF
#line 4920 "configure"
#line 4949 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@ -4927,7 +4956,7 @@ int main() {
dlopen()
; return 0; }
EOF
if { (eval echo configure:4931: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:4960: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@ -4944,17 +4973,17 @@ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
echo "$ac_t""yes" 1>&6
ac_safe=`echo "dlfcn.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for dlfcn.h""... $ac_c" 1>&6
echo "configure:4948: checking for dlfcn.h" >&5
echo "configure:4977: checking for dlfcn.h" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 4953 "configure"
#line 4982 "configure"
#include "confdefs.h"
#include <dlfcn.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
{ (eval echo configure:4958: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
{ (eval echo configure:4987: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@ -4987,13 +5016,13 @@ esac
if test $ac_cv_prog_gcc = yes; then
echo $ac_n "checking whether ${CC-cc} needs -traditional""... $ac_c" 1>&6
echo "configure:4991: checking whether ${CC-cc} needs -traditional" >&5
echo "configure:5020: checking whether ${CC-cc} needs -traditional" >&5
if eval "test \"`echo '$''{'ac_cv_prog_gcc_traditional'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
ac_pattern="Autoconf.*'x'"
cat > conftest.$ac_ext <<EOF
#line 4997 "configure"
#line 5026 "configure"
#include "confdefs.h"
#include <sgtty.h>
Autoconf TIOCGETP
@ -5011,7 +5040,7 @@ rm -f conftest*
if test $ac_cv_prog_gcc_traditional = no; then
cat > conftest.$ac_ext <<EOF
#line 5015 "configure"
#line 5044 "configure"
#include "confdefs.h"
#include <termio.h>
Autoconf TCGETA
@ -5035,12 +5064,12 @@ fi
for ac_func in lchown strerror
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
echo "configure:5039: checking for $ac_func" >&5
echo "configure:5068: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 5044 "configure"
#line 5073 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@ -5063,7 +5092,7 @@ $ac_func();
; return 0; }
EOF
if { (eval echo configure:5067: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:5096: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@ -5104,7 +5133,7 @@ hpux*)
if test -z "$GNU_CC"; then
echo $ac_n "checking for +Olit support""... $ac_c" 1>&6
echo "configure:5108: checking for +Olit support" >&5
echo "configure:5137: checking for +Olit support" >&5
if eval "test \"`echo '$''{'ac_cv_hpux_usable_olit_option'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -5143,7 +5172,7 @@ darwin*)
*)
echo $ac_n "checking for pthread_create in -lpthreads""... $ac_c" 1>&6
echo "configure:5147: checking for pthread_create in -lpthreads" >&5
echo "configure:5176: checking for pthread_create in -lpthreads" >&5
echo "
#include <pthread.h>
void *foo(void *v) { return v; }
@ -5165,7 +5194,7 @@ echo "
echo "$ac_t""no" 1>&6
echo $ac_n "checking for pthread_create in -lpthread""... $ac_c" 1>&6
echo "configure:5169: checking for pthread_create in -lpthread" >&5
echo "configure:5198: checking for pthread_create in -lpthread" >&5
echo "
#include <pthread.h>
void *foo(void *v) { return v; }
@ -5187,7 +5216,7 @@ echo "
echo "$ac_t""no" 1>&6
echo $ac_n "checking for pthread_create in -lc_r""... $ac_c" 1>&6
echo "configure:5191: checking for pthread_create in -lc_r" >&5
echo "configure:5220: checking for pthread_create in -lc_r" >&5
echo "
#include <pthread.h>
void *foo(void *v) { return v; }
@ -5209,7 +5238,7 @@ echo "
echo "$ac_t""no" 1>&6
echo $ac_n "checking for pthread_create in -lc""... $ac_c" 1>&6
echo "configure:5213: checking for pthread_create in -lc" >&5
echo "configure:5242: checking for pthread_create in -lc" >&5
echo "
#include <pthread.h>
void *foo(void *v) { return v; }
@ -5363,7 +5392,7 @@ if test -n "$USE_PTHREADS"; then
rm -f conftest*
ac_cv_have_dash_pthread=no
echo $ac_n "checking whether ${CC-cc} accepts -pthread""... $ac_c" 1>&6
echo "configure:5367: checking whether ${CC-cc} accepts -pthread" >&5
echo "configure:5396: checking whether ${CC-cc} accepts -pthread" >&5
echo 'int main() { return 0; }' | cat > conftest.c
${CC-cc} -pthread -o conftest conftest.c > conftest.out 2>&1
if test $? -eq 0; then
@ -5386,7 +5415,7 @@ echo "configure:5367: checking whether ${CC-cc} accepts -pthread" >&5
ac_cv_have_dash_pthreads=no
if test "$ac_cv_have_dash_pthread" = "no"; then
echo $ac_n "checking whether ${CC-cc} accepts -pthreads""... $ac_c" 1>&6
echo "configure:5390: checking whether ${CC-cc} accepts -pthreads" >&5
echo "configure:5419: checking whether ${CC-cc} accepts -pthreads" >&5
echo 'int main() { return 0; }' | cat > conftest.c
${CC-cc} -pthreads -o conftest conftest.c > conftest.out 2>&1
if test $? -eq 0; then

View File

@ -1492,11 +1492,25 @@ case "$target" in
mips)
AC_DEFINE(_MIPS_)
;;
x86_64)
AC_DEFINE(_AMD64_)
AC_DEFINE(_M_AMD64)
USE_64=1
;;
ia64)
AC_DEFINE(_IA64_)
AC_DEFINE(_M_IA64)
USE_64=1
;;
*)
AC_DEFINE(_CPU_ARCH_NOT_DEFINED)
;;
esac
if test "$USE_64"; then
AC_DEFINE(_WIN64)
fi
;;
*-ncr-sysv*)

View File

@ -144,6 +144,104 @@
#define PR_ALIGN_OF_DOUBLE 8
#define PR_ALIGN_OF_POINTER 4
#elif defined(_AMD64_)
#define IS_LITTLE_ENDIAN 1
#undef IS_BIG_ENDIAN
#define IS_64
#define PR_BYTES_PER_BYTE 1
#define PR_BYTES_PER_SHORT 2
#define PR_BYTES_PER_INT 4
#define PR_BYTES_PER_INT64 8
#define PR_BYTES_PER_LONG 4
#define PR_BYTES_PER_FLOAT 4
#define PR_BYTES_PER_WORD 8
#define PR_BYTES_PER_DWORD 8
#define PR_BYTES_PER_DOUBLE 8
#define PR_BITS_PER_BYTE 8
#define PR_BITS_PER_SHORT 16
#define PR_BITS_PER_INT 32
#define PR_BITS_PER_INT64 64
#define PR_BITS_PER_LONG 32
#define PR_BITS_PER_FLOAT 32
#define PR_BITS_PER_WORD 64
#define PR_BITS_PER_DWORD 64
#define PR_BITS_PER_DOUBLE 64
#define PR_BITS_PER_BYTE_LOG2 3
#define PR_BITS_PER_SHORT_LOG2 4
#define PR_BITS_PER_INT_LOG2 5
#define PR_BITS_PER_INT64_LOG2 6
#define PR_BITS_PER_LONG_LOG2 5
#define PR_BITS_PER_FLOAT_LOG2 5
#define PR_BITS_PER_WORD_LOG2 6
#define PR_BITS_PER_DWORD_LOG2 6
#define PR_BITS_PER_DOUBLE_LOG2 6
#define PR_ALIGN_OF_SHORT 2
#define PR_ALIGN_OF_INT 4
#define PR_ALIGN_OF_LONG 4
#define PR_ALIGN_OF_INT64 8
#define PR_ALIGN_OF_FLOAT 4
#define PR_ALIGN_OF_WORD 8
#define PR_ALIGN_OF_DWORD 8
#define PR_ALIGN_OF_DOUBLE 8
#define PR_ALIGN_OF_POINTER 8
#define PR_BYTES_PER_WORD_LOG2 3
#define PR_BYTES_PER_DWORD_LOG2 3
#elif defined(_IA64_)
#define IS_LITTLE_ENDIAN 1
#undef IS_BIG_ENDIAN
#define IS_64
#define PR_BYTES_PER_BYTE 1
#define PR_BYTES_PER_SHORT 2
#define PR_BYTES_PER_INT 4
#define PR_BYTES_PER_INT64 8
#define PR_BYTES_PER_LONG 4
#define PR_BYTES_PER_FLOAT 4
#define PR_BYTES_PER_WORD 8
#define PR_BYTES_PER_DWORD 8
#define PR_BYTES_PER_DOUBLE 8
#define PR_BITS_PER_BYTE 8
#define PR_BITS_PER_SHORT 16
#define PR_BITS_PER_INT 32
#define PR_BITS_PER_INT64 64
#define PR_BITS_PER_LONG 32
#define PR_BITS_PER_FLOAT 32
#define PR_BITS_PER_WORD 64
#define PR_BITS_PER_DWORD 64
#define PR_BITS_PER_DOUBLE 64
#define PR_BITS_PER_BYTE_LOG2 3
#define PR_BITS_PER_SHORT_LOG2 4
#define PR_BITS_PER_INT_LOG2 5
#define PR_BITS_PER_INT64_LOG2 6
#define PR_BITS_PER_LONG_LOG2 5
#define PR_BITS_PER_FLOAT_LOG2 5
#define PR_BITS_PER_WORD_LOG2 6
#define PR_BITS_PER_DWORD_LOG2 6
#define PR_BITS_PER_DOUBLE_LOG2 6
#define PR_ALIGN_OF_SHORT 2
#define PR_ALIGN_OF_INT 4
#define PR_ALIGN_OF_LONG 4
#define PR_ALIGN_OF_INT64 8
#define PR_ALIGN_OF_FLOAT 4
#define PR_ALIGN_OF_WORD 8
#define PR_ALIGN_OF_DWORD 8
#define PR_ALIGN_OF_DOUBLE 8
#define PR_ALIGN_OF_POINTER 8
#define PR_BYTES_PER_WORD_LOG2 3
#define PR_BYTES_PER_DWORD_LOG2 3
#else /* defined(_M_IX86) || defined(_X86_) */
#error unknown processor architecture

View File

@ -50,7 +50,15 @@
#define PR_LINKER_ARCH "win32"
#define _PR_SI_SYSNAME "WIN95"
#define _PR_SI_ARCHITECTURE "x86" /* XXXMB hardcode for now */
#if defined(_M_IX86) || defined(_X86_)
#define _PR_SI_ARCHITECTURE "x86"
#elif defined(_AMD64_)
#define _PR_SI_ARCHITECTURE "x86-64"
#elif defined(_IA64_)
#define _PR_SI_ARCHITECTURE "ia64"
#else
#error unknown processor architecture
#endif
#define HAVE_DLL
#undef HAVE_THREAD_AFFINITY
@ -208,7 +216,7 @@ struct _MDSemaphore {
};
struct _MDFileDesc {
PRInt32 osfd; /* The osfd can come from one of three spaces:
PROsfd osfd; /* The osfd can come from one of three spaces:
* - For stdin, stdout, and stderr, we are using
* the libc file handle (0, 1, 2), which is an int.
* - For files and pipes, we are using Win32 HANDLE,
@ -248,7 +256,7 @@ extern void _PR_NT_FreeSecurityDescriptorACL(
#define _MD_WRITEV _PR_MD_WRITEV
#define _MD_LSEEK _PR_MD_LSEEK
#define _MD_LSEEK64 _PR_MD_LSEEK64
extern PRInt32 _MD_CloseFile(PRInt32 osfd);
extern PRInt32 _MD_CloseFile(PROsfd osfd);
#define _MD_CLOSE_FILE _MD_CloseFile
#define _MD_GETFILEINFO _PR_MD_GETFILEINFO
#define _MD_GETFILEINFO64 _PR_MD_GETFILEINFO64
@ -305,7 +313,7 @@ extern void _MD_MakeNonblock(PRFileDesc *f);
#define _MD_QUERY_FD_INHERITABLE _PR_MD_QUERY_FD_INHERITABLE
#define _MD_SHUTDOWN _PR_MD_SHUTDOWN
#define _MD_LISTEN _PR_MD_LISTEN
extern PRInt32 _MD_CloseSocket(PRInt32 osfd);
extern PRInt32 _MD_CloseSocket(PROsfd osfd);
#define _MD_CLOSE_SOCKET _MD_CloseSocket
#define _MD_SENDTO _PR_MD_SENDTO
#define _MD_RECVFROM _PR_MD_RECVFROM
@ -341,7 +349,7 @@ extern PRInt32 _MD_SocketAvailable(PRFileDesc *fd);
#define _MD_SOCKETAVAILABLE _MD_SocketAvailable
#define _MD_PIPEAVAILABLE _PR_MD_PIPEAVAILABLE
#define _MD_CONNECT _PR_MD_CONNECT
extern PRInt32 _MD_Accept(PRFileDesc *fd, PRNetAddr *raddr, PRUint32 *rlen,
extern PROsfd _MD_Accept(PRFileDesc *fd, PRNetAddr *raddr, PRUint32 *rlen,
PRIntervalTime timeout);
#define _MD_ACCEPT _MD_Accept
#define _MD_BIND _PR_MD_BIND

View File

@ -144,6 +144,104 @@
#define PR_ALIGN_OF_DOUBLE 8
#define PR_ALIGN_OF_POINTER 4
#elif defined(_AMD64_)
#define IS_LITTLE_ENDIAN 1
#undef IS_BIG_ENDIAN
#define IS_64
#define PR_BYTES_PER_BYTE 1
#define PR_BYTES_PER_SHORT 2
#define PR_BYTES_PER_INT 4
#define PR_BYTES_PER_INT64 8
#define PR_BYTES_PER_LONG 4
#define PR_BYTES_PER_FLOAT 4
#define PR_BYTES_PER_WORD 8
#define PR_BYTES_PER_DWORD 8
#define PR_BYTES_PER_DOUBLE 8
#define PR_BITS_PER_BYTE 8
#define PR_BITS_PER_SHORT 16
#define PR_BITS_PER_INT 32
#define PR_BITS_PER_INT64 64
#define PR_BITS_PER_LONG 32
#define PR_BITS_PER_FLOAT 32
#define PR_BITS_PER_WORD 64
#define PR_BITS_PER_DWORD 64
#define PR_BITS_PER_DOUBLE 64
#define PR_BITS_PER_BYTE_LOG2 3
#define PR_BITS_PER_SHORT_LOG2 4
#define PR_BITS_PER_INT_LOG2 5
#define PR_BITS_PER_INT64_LOG2 6
#define PR_BITS_PER_LONG_LOG2 5
#define PR_BITS_PER_FLOAT_LOG2 5
#define PR_BITS_PER_WORD_LOG2 6
#define PR_BITS_PER_DWORD_LOG2 6
#define PR_BITS_PER_DOUBLE_LOG2 6
#define PR_ALIGN_OF_SHORT 2
#define PR_ALIGN_OF_INT 4
#define PR_ALIGN_OF_LONG 4
#define PR_ALIGN_OF_INT64 8
#define PR_ALIGN_OF_FLOAT 4
#define PR_ALIGN_OF_WORD 8
#define PR_ALIGN_OF_DWORD 8
#define PR_ALIGN_OF_DOUBLE 8
#define PR_ALIGN_OF_POINTER 8
#define PR_BYTES_PER_WORD_LOG2 3
#define PR_BYTES_PER_DWORD_LOG2 3
#elif defined(_IA64_)
#define IS_LITTLE_ENDIAN 1
#undef IS_BIG_ENDIAN
#define IS_64
#define PR_BYTES_PER_BYTE 1
#define PR_BYTES_PER_SHORT 2
#define PR_BYTES_PER_INT 4
#define PR_BYTES_PER_INT64 8
#define PR_BYTES_PER_LONG 4
#define PR_BYTES_PER_FLOAT 4
#define PR_BYTES_PER_WORD 8
#define PR_BYTES_PER_DWORD 8
#define PR_BYTES_PER_DOUBLE 8
#define PR_BITS_PER_BYTE 8
#define PR_BITS_PER_SHORT 16
#define PR_BITS_PER_INT 32
#define PR_BITS_PER_INT64 64
#define PR_BITS_PER_LONG 32
#define PR_BITS_PER_FLOAT 32
#define PR_BITS_PER_WORD 64
#define PR_BITS_PER_DWORD 64
#define PR_BITS_PER_DOUBLE 64
#define PR_BITS_PER_BYTE_LOG2 3
#define PR_BITS_PER_SHORT_LOG2 4
#define PR_BITS_PER_INT_LOG2 5
#define PR_BITS_PER_INT64_LOG2 6
#define PR_BITS_PER_LONG_LOG2 5
#define PR_BITS_PER_FLOAT_LOG2 5
#define PR_BITS_PER_WORD_LOG2 6
#define PR_BITS_PER_DWORD_LOG2 6
#define PR_BITS_PER_DOUBLE_LOG2 6
#define PR_ALIGN_OF_SHORT 2
#define PR_ALIGN_OF_INT 4
#define PR_ALIGN_OF_LONG 4
#define PR_ALIGN_OF_INT64 8
#define PR_ALIGN_OF_FLOAT 4
#define PR_ALIGN_OF_WORD 8
#define PR_ALIGN_OF_DWORD 8
#define PR_ALIGN_OF_DOUBLE 8
#define PR_ALIGN_OF_POINTER 8
#define PR_BYTES_PER_WORD_LOG2 3
#define PR_BYTES_PER_DWORD_LOG2 3
#else /* defined(_M_IX86) || defined(_X86_) */
#error unknown processor architecture

View File

@ -64,7 +64,15 @@
#define PR_LINKER_ARCH "win32"
#define _PR_SI_SYSNAME "WINNT"
#define _PR_SI_ARCHITECTURE "x86" /* XXXMB hardcode for now */
#if defined(_M_IX86) || defined(_X86_)
#define _PR_SI_ARCHITECTURE "x86"
#elif defined(_AMD64_)
#define _PR_SI_ARCHITECTURE "x86-64"
#elif defined(_IA64_)
#define _PR_SI_ARCHITECTURE "ia64"
#else
#error unknown processor architecture
#endif
#define HAVE_DLL
#define HAVE_CUSTOM_USER_THREADS
@ -106,7 +114,9 @@ struct _md_sockaddr_in6 {
#endif
#define _PR_HAVE_THREADSAFE_GETHOST
#define _PR_HAVE_ATOMIC_OPS
#if defined(_M_IX86) || defined(_X86_)
#define _PR_HAVE_ATOMIC_CAS
#endif
#define PR_HAVE_WIN32_NAMED_SHARED_MEMORY
#define _PR_HAVE_PEEK_BUFFER
#define _PR_PEEK_BUFFER_MAX (32 * 1024)
@ -231,7 +241,7 @@ struct _MDSemaphore {
};
struct _MDFileDesc {
PRInt32 osfd; /* The osfd can come from one of three spaces:
PROsfd osfd; /* The osfd can come from one of three spaces:
* - For stdin, stdout, and stderr, we are using
* the libc file handle (0, 1, 2), which is an int.
* - For files and pipes, we are using Win32 HANDLE,
@ -281,7 +291,7 @@ extern void _PR_NT_FreeSecurityDescriptorACL(
/* --- IO stuff --- */
extern PRInt32 _md_Associate(HANDLE);
extern PRInt32 _PR_MD_CLOSE(PRInt32 osfd, PRBool socket);
extern PRInt32 _PR_MD_CLOSE(PROsfd osfd, PRBool socket);
#define _MD_OPEN _PR_MD_OPEN
#define _MD_OPEN_FILE _PR_MD_OPEN_FILE

View File

@ -44,6 +44,7 @@
#define PROBSLET_H
#include "prio.h"
#include "private/pprio.h" /* for PROsfd */
PR_BEGIN_EXTERN_C
@ -70,7 +71,7 @@ typedef struct PR_fd_set {
PRUint32 hsize;
PRFileDesc *harray[PR_MAX_SELECT_DESC];
PRUint32 nsize;
PRInt32 narray[PR_MAX_SELECT_DESC];
PROsfd narray[PR_MAX_SELECT_DESC];
} PR_fd_set;
/*
@ -154,9 +155,9 @@ NSPR_API(void) PR_FD_ZERO(PR_fd_set *set);
NSPR_API(void) PR_FD_SET(PRFileDesc *fd, PR_fd_set *set);
NSPR_API(void) PR_FD_CLR(PRFileDesc *fd, PR_fd_set *set);
NSPR_API(PRInt32) PR_FD_ISSET(PRFileDesc *fd, PR_fd_set *set);
NSPR_API(void) PR_FD_NSET(PRInt32 osfd, PR_fd_set *set);
NSPR_API(void) PR_FD_NCLR(PRInt32 osfd, PR_fd_set *set);
NSPR_API(PRInt32) PR_FD_NISSET(PRInt32 osfd, PR_fd_set *set);
NSPR_API(void) PR_FD_NSET(PROsfd osfd, PR_fd_set *set);
NSPR_API(void) PR_FD_NCLR(PROsfd osfd, PR_fd_set *set);
NSPR_API(PRInt32) PR_FD_NISSET(PROsfd osfd, PR_fd_set *set);
#ifndef NO_NSPR_10_SUPPORT
#ifdef XP_MAC

View File

@ -52,6 +52,12 @@ PR_BEGIN_EXTERN_C
/************************************************************************/
/************************************************************************/
#ifdef _WIN64
typedef __int64 PROsfd;
#else
typedef PRInt32 PROsfd;
#endif
/* Return the method tables for files, tcp sockets and udp sockets */
NSPR_API(const PRIOMethods*) PR_GetFileMethods(void);
NSPR_API(const PRIOMethods*) PR_GetTCPMethods(void);
@ -62,18 +68,18 @@ NSPR_API(const PRIOMethods*) PR_GetPipeMethods(void);
** Convert a NSPR Socket Handle to a Native Socket handle.
** This function will be obsoleted with the next release; avoid using it.
*/
NSPR_API(PRInt32) PR_FileDesc2NativeHandle(PRFileDesc *);
NSPR_API(void) PR_ChangeFileDescNativeHandle(PRFileDesc *, PRInt32);
NSPR_API(PRFileDesc*) PR_AllocFileDesc(PRInt32 osfd,
NSPR_API(PROsfd) PR_FileDesc2NativeHandle(PRFileDesc *);
NSPR_API(void) PR_ChangeFileDescNativeHandle(PRFileDesc *, PROsfd);
NSPR_API(PRFileDesc*) PR_AllocFileDesc(PROsfd osfd,
const PRIOMethods *methods);
NSPR_API(void) PR_FreeFileDesc(PRFileDesc *fd);
/*
** Import an existing OS file to NSPR.
*/
NSPR_API(PRFileDesc*) PR_ImportFile(PRInt32 osfd);
NSPR_API(PRFileDesc*) PR_ImportPipe(PRInt32 osfd);
NSPR_API(PRFileDesc*) PR_ImportTCPSocket(PRInt32 osfd);
NSPR_API(PRFileDesc*) PR_ImportUDPSocket(PRInt32 osfd);
NSPR_API(PRFileDesc*) PR_ImportFile(PROsfd osfd);
NSPR_API(PRFileDesc*) PR_ImportPipe(PROsfd osfd);
NSPR_API(PRFileDesc*) PR_ImportTCPSocket(PROsfd osfd);
NSPR_API(PRFileDesc*) PR_ImportUDPSocket(PROsfd osfd);
/*
@ -94,7 +100,7 @@ NSPR_API(PRFileDesc*) PR_ImportUDPSocket(PRInt32 osfd);
**************************************************************************
*/
NSPR_API(PRFileDesc*) PR_CreateSocketPollFd(PRInt32 osfd);
NSPR_API(PRFileDesc*) PR_CreateSocketPollFd(PROsfd osfd);
/*
*************************************************************************

View File

@ -1098,13 +1098,13 @@ extern void _PR_MD_MAKE_NONBLOCK(PRFileDesc *fd);
#define _PR_MD_MAKE_NONBLOCK _MD_MAKE_NONBLOCK
/* File I/O related */
extern PRInt32 _PR_MD_OPEN(const char *name, PRIntn osflags, PRIntn mode);
extern PROsfd _PR_MD_OPEN(const char *name, PRIntn osflags, PRIntn mode);
#define _PR_MD_OPEN _MD_OPEN
extern PRInt32 _PR_MD_OPEN_FILE(const char *name, PRIntn osflags, PRIntn mode);
extern PROsfd _PR_MD_OPEN_FILE(const char *name, PRIntn osflags, PRIntn mode);
#define _PR_MD_OPEN_FILE _MD_OPEN_FILE
extern PRInt32 _PR_MD_CLOSE_FILE(PRInt32 osfd);
extern PRInt32 _PR_MD_CLOSE_FILE(PROsfd osfd);
#define _PR_MD_CLOSE_FILE _MD_CLOSE_FILE
extern PRInt32 _PR_MD_READ(PRFileDesc *fd, void *buf, PRInt32 amount);
@ -1147,7 +1147,7 @@ extern PRInt32 _PR_MD_RMDIR(const char *name);
extern PRStatus _PR_MD_OPEN_DIR_UTF16(_MDDirUTF16 *md, const PRUnichar *name);
#define _PR_MD_OPEN_DIR_UTF16 _MD_OPEN_DIR_UTF16
extern PRInt32 _PR_MD_OPEN_FILE_UTF16(const PRUnichar *name, PRIntn osflags, PRIntn mode);
extern PROsfd _PR_MD_OPEN_FILE_UTF16(const PRUnichar *name, PRIntn osflags, PRIntn mode);
#define _PR_MD_OPEN_FILE_UTF16 _MD_OPEN_FILE_UTF16
extern PRUnichar * _PR_MD_READ_DIR_UTF16(_MDDirUTF16 *md, PRIntn flags);
@ -1164,7 +1164,7 @@ extern PRInt32 _PR_MD_GETFILEINFO64_UTF16(const PRUnichar *fn, PRFileInfo64 *inf
extern void _PR_MD_INIT_IO(void);
#define _PR_MD_INIT_IO _MD_INIT_IO
extern PRInt32 _PR_MD_CLOSE_SOCKET(PRInt32 osfd);
extern PRInt32 _PR_MD_CLOSE_SOCKET(PROsfd osfd);
#define _PR_MD_CLOSE_SOCKET _MD_CLOSE_SOCKET
extern PRInt32 _PR_MD_CONNECT(
@ -1172,7 +1172,7 @@ extern PRInt32 _PR_MD_CONNECT(
PRUint32 addrlen, PRIntervalTime timeout);
#define _PR_MD_CONNECT _MD_CONNECT
extern PRInt32 _PR_MD_ACCEPT(
extern PROsfd _PR_MD_ACCEPT(
PRFileDesc *fd, PRNetAddr *addr,
PRUint32 *addrlen, PRIntervalTime timeout);
#define _PR_MD_ACCEPT _MD_ACCEPT
@ -1195,25 +1195,25 @@ extern PRInt32 _PR_MD_SEND(
PRIntervalTime timeout);
#define _PR_MD_SEND _MD_SEND
extern PRInt32 _PR_MD_ACCEPT_READ(PRFileDesc *sd, PRInt32 *newSock,
extern PRInt32 _PR_MD_ACCEPT_READ(PRFileDesc *sd, PROsfd *newSock,
PRNetAddr **raddr, void *buf, PRInt32 amount,
PRIntervalTime timeout);
#define _PR_MD_ACCEPT_READ _MD_ACCEPT_READ
#ifdef WIN32
extern PRInt32 _PR_MD_FAST_ACCEPT(PRFileDesc *fd, PRNetAddr *addr,
extern PROsfd _PR_MD_FAST_ACCEPT(PRFileDesc *fd, PRNetAddr *addr,
PRUint32 *addrlen, PRIntervalTime timeout,
PRBool fast,
_PR_AcceptTimeoutCallback callback,
void *callbackArg);
extern PRInt32 _PR_MD_FAST_ACCEPT_READ(PRFileDesc *sd, PRInt32 *newSock,
extern PRInt32 _PR_MD_FAST_ACCEPT_READ(PRFileDesc *sd, PROsfd *newSock,
PRNetAddr **raddr, void *buf, PRInt32 amount,
PRIntervalTime timeout, PRBool fast,
_PR_AcceptTimeoutCallback callback,
void *callbackArg);
extern void _PR_MD_UPDATE_ACCEPT_CONTEXT(PRInt32 s, PRInt32 ls);
extern void _PR_MD_UPDATE_ACCEPT_CONTEXT(PROsfd s, PROsfd ls);
#define _PR_MD_UPDATE_ACCEPT_CONTEXT _MD_UPDATE_ACCEPT_CONTEXT
#endif /* WIN32 */
@ -1255,10 +1255,10 @@ extern PRInt32 _PR_MD_SENDTO(
const PRNetAddr *addr, PRUint32 addrlen, PRIntervalTime timeout);
#define _PR_MD_SENDTO _MD_SENDTO
extern PRInt32 _PR_MD_SOCKETPAIR(int af, int type, int flags, PRInt32 *osfd);
extern PRInt32 _PR_MD_SOCKETPAIR(int af, int type, int flags, PROsfd *osfd);
#define _PR_MD_SOCKETPAIR _MD_SOCKETPAIR
extern PRInt32 _PR_MD_SOCKET(int af, int type, int flags);
extern PROsfd _PR_MD_SOCKET(int af, int type, int flags);
#define _PR_MD_SOCKET _MD_SOCKET
extern PRInt32 _PR_MD_SOCKETAVAILABLE(PRFileDesc *fd);
@ -1754,6 +1754,18 @@ struct PRFilePrivate {
#endif
};
#ifdef _WIN64
#define PR_PRIdOSFD "lld" /* for printing PROsfd */
#define PR_PRIxOSFD "llx"
#define PR_SCNdOSFD "lld" /* for scanning PROsfd */
#define PR_SCNxOSFD "llx"
#else
#define PR_PRIdOSFD "ld" /* for printing PROsfd */
#define PR_PRIxOSFD "lx"
#define PR_SCNdOSFD "ld" /* for scanning PROsfd */
#define PR_SCNxOSFD "lx"
#endif
struct PRDir {
PRDirEntry d;
_MDDir md;
@ -1964,13 +1976,13 @@ extern PRInt32 _PR_MD_GETTHREADAFFINITYMASK(PRThread *thread, PRUint32 *mask);
/* File locking */
extern PRStatus _PR_MD_LOCKFILE(PRInt32 osfd);
extern PRStatus _PR_MD_LOCKFILE(PROsfd osfd);
#define _PR_MD_LOCKFILE _MD_LOCKFILE
extern PRStatus _PR_MD_TLOCKFILE(PRInt32 osfd);
extern PRStatus _PR_MD_TLOCKFILE(PROsfd osfd);
#define _PR_MD_TLOCKFILE _MD_TLOCKFILE
extern PRStatus _PR_MD_UNLOCKFILE(PRInt32 osfd);
extern PRStatus _PR_MD_UNLOCKFILE(PROsfd osfd);
#define _PR_MD_UNLOCKFILE _MD_UNLOCKFILE
/* Memory-mapped files */

View File

@ -442,7 +442,11 @@ typedef ptrdiff_t PRPtrdiff;
** A type for pointer difference. Variables of this type are suitable
** for storing a pointer or pointer sutraction.
************************************************************************/
#ifdef _WIN64
typedef unsigned __int64 PRUptrdiff;
#else
typedef unsigned long PRUptrdiff;
#endif
/************************************************************************
** TYPES: PRBool
@ -495,8 +499,13 @@ typedef PRUint16 PRUnichar;
** Specification, Addison-Wesley, September 1996.
** http://java.sun.com/docs/books/vmspec/index.html.)
*/
#ifdef _WIN64
typedef __int64 PRWord;
typedef unsigned __int64 PRUword;
#else
typedef long PRWord;
typedef unsigned long PRUword;
#endif
#if defined(NO_NSPR_10_SUPPORT)
#else

View File

@ -316,11 +316,13 @@ OBJS += memory/$(OBJDIR)/prgcleak.$(OBJ_SUFFIX)
endif
ifeq ($(OS_ARCH), WINNT)
ifndef USE_64
ifdef NS_USE_GCC
DLLBASE=-Wl,--image-base -Wl,0x30000000
else
DLLBASE=-BASE:0x30000000
endif # GCC
endif # !USE_64
RES=$(OBJDIR)/nspr.res
RESNAME=nspr.rc
endif # WINNT

View File

@ -359,7 +359,7 @@ PR_IMPLEMENT(const PRIOMethods*) PR_GetPipeMethods(void)
PR_IMPLEMENT(PRFileDesc*) PR_Open(const char *name, PRIntn flags, PRIntn mode)
{
PRInt32 osfd;
PROsfd osfd;
PRFileDesc *fd = 0;
#if !defined(_PR_HAVE_O_APPEND)
PRBool appendMode = ( PR_APPEND & flags )? PR_TRUE : PR_FALSE;
@ -387,7 +387,7 @@ PR_IMPLEMENT(PRFileDesc*) PR_Open(const char *name, PRIntn flags, PRIntn mode)
PR_IMPLEMENT(PRFileDesc*) PR_OpenFile(
const char *name, PRIntn flags, PRIntn mode)
{
PRInt32 osfd;
PROsfd osfd;
PRFileDesc *fd = 0;
#if !defined(_PR_HAVE_O_APPEND)
PRBool appendMode = ( PR_APPEND & flags )? PR_TRUE : PR_FALSE;
@ -558,7 +558,7 @@ PRInt32 rv;
/*
** Import an existing OS file to NSPR
*/
PR_IMPLEMENT(PRFileDesc*) PR_ImportFile(PRInt32 osfd)
PR_IMPLEMENT(PRFileDesc*) PR_ImportFile(PROsfd osfd)
{
PRFileDesc *fd = NULL;
@ -577,7 +577,7 @@ PR_IMPLEMENT(PRFileDesc*) PR_ImportFile(PRInt32 osfd)
/*
** Import an existing OS pipe to NSPR
*/
PR_IMPLEMENT(PRFileDesc*) PR_ImportPipe(PRInt32 osfd)
PR_IMPLEMENT(PRFileDesc*) PR_ImportPipe(PROsfd osfd)
{
PRFileDesc *fd = NULL;
@ -733,13 +733,13 @@ PR_IMPLEMENT(PRStatus) PR_CreatePipe(
PR_SetError(PR_UNKNOWN_ERROR, GetLastError());
return PR_FAILURE;
}
*readPipe = PR_AllocFileDesc((PRInt32)readEnd, &_pr_pipeMethods);
*readPipe = PR_AllocFileDesc((PROsfd)readEnd, &_pr_pipeMethods);
if (NULL == *readPipe) {
CloseHandle(readEnd);
CloseHandle(writeEnd);
return PR_FAILURE;
}
*writePipe = PR_AllocFileDesc((PRInt32)writeEnd, &_pr_pipeMethods);
*writePipe = PR_AllocFileDesc((PROsfd)writeEnd, &_pr_pipeMethods);
if (NULL == *writePipe) {
PR_Close(*readPipe);
CloseHandle(writeEnd);
@ -802,7 +802,7 @@ PR_IMPLEMENT(PRStatus) PR_CreatePipe(
PR_IMPLEMENT(PRFileDesc*) PR_OpenFileUTF16(
const PRUnichar *name, PRIntn flags, PRIntn mode)
{
PRInt32 osfd;
PROsfd osfd;
PRFileDesc *fd = 0;
#if !defined(_PR_HAVE_O_APPEND)
PRBool appendMode = ( PR_APPEND & flags )? PR_TRUE : PR_FALSE;

View File

@ -55,11 +55,11 @@ void _PR_InitIO(void)
_pr_flock_cv = PR_NewCondVar(_pr_flock_lock);
#ifdef WIN32
_pr_stdin = PR_AllocFileDesc((PRInt32)GetStdHandle(STD_INPUT_HANDLE),
_pr_stdin = PR_AllocFileDesc((PROsfd)GetStdHandle(STD_INPUT_HANDLE),
methods);
_pr_stdout = PR_AllocFileDesc((PRInt32)GetStdHandle(STD_OUTPUT_HANDLE),
_pr_stdout = PR_AllocFileDesc((PROsfd)GetStdHandle(STD_OUTPUT_HANDLE),
methods);
_pr_stderr = PR_AllocFileDesc((PRInt32)GetStdHandle(STD_ERROR_HANDLE),
_pr_stderr = PR_AllocFileDesc((PROsfd)GetStdHandle(STD_ERROR_HANDLE),
methods);
#ifdef WINNT
_pr_stdin->secret->md.sync_file_io = PR_TRUE;
@ -118,7 +118,7 @@ PR_IMPLEMENT(PRFileDesc*) PR_GetSpecialFD(PRSpecialFD osfd)
}
PR_IMPLEMENT(PRFileDesc*) PR_AllocFileDesc(
PRInt32 osfd, const PRIOMethods *methods)
PROsfd osfd, const PRIOMethods *methods)
{
PRFileDesc *fd;

View File

@ -190,7 +190,7 @@ PRInt32 iov_size, PRIntervalTime timeout)
/************************************************************************/
PR_IMPLEMENT(PRFileDesc *) PR_ImportTCPSocket(PRInt32 osfd)
PR_IMPLEMENT(PRFileDesc *) PR_ImportTCPSocket(PROsfd osfd)
{
PRFileDesc *fd;
@ -204,7 +204,7 @@ PRFileDesc *fd;
return(fd);
}
PR_IMPLEMENT(PRFileDesc *) PR_ImportUDPSocket(PRInt32 osfd)
PR_IMPLEMENT(PRFileDesc *) PR_ImportUDPSocket(PROsfd osfd)
{
PRFileDesc *fd;
@ -221,7 +221,7 @@ PRFileDesc *fd;
static const PRIOMethods* PR_GetSocketPollFdMethods(void);
PR_IMPLEMENT(PRFileDesc*) PR_CreateSocketPollFd(PRInt32 osfd)
PR_IMPLEMENT(PRFileDesc*) PR_CreateSocketPollFd(PROsfd osfd)
{
PRFileDesc *fd;
@ -287,7 +287,7 @@ static PRStatus PR_CALLBACK SocketConnect(
static PRStatus PR_CALLBACK SocketConnectContinue(
PRFileDesc *fd, PRInt16 out_flags)
{
PRInt32 osfd;
PROsfd osfd;
int err;
if (out_flags & PR_POLL_NVAL) {
@ -397,7 +397,7 @@ PR_IMPLEMENT(PRStatus) PR_GetConnectStatus(const PRPollDesc *pd)
static PRFileDesc* PR_CALLBACK SocketAccept(PRFileDesc *fd, PRNetAddr *addr,
PRIntervalTime timeout)
{
PRInt32 osfd;
PROsfd osfd;
PRFileDesc *fd2;
PRUint32 al;
PRThread *me = _PR_MD_CURRENT_THREAD();
@ -476,7 +476,7 @@ PRIntervalTime timeout)
PR_IMPLEMENT(PRFileDesc*) PR_NTFast_Accept(PRFileDesc *fd, PRNetAddr *addr,
PRIntervalTime timeout)
{
PRInt32 osfd;
PROsfd osfd;
PRFileDesc *fd2;
PRIntn al;
PRThread *me = _PR_MD_CURRENT_THREAD();
@ -596,8 +596,9 @@ PRIntervalTime timeout)
return -1;
}
PR_LOG(_pr_io_lm, PR_LOG_MAX, ("recv: fd=%p osfd=%d buf=%p amount=%d flags=%d",
fd, fd->secret->md.osfd, buf, amount, flags));
PR_LOG(_pr_io_lm, PR_LOG_MAX,
("recv: fd=%p osfd=%" PR_PRIdOSFD " buf=%p amount=%d flags=%d",
fd, fd->secret->md.osfd, buf, amount, flags));
#ifdef _PR_HAVE_PEEK_BUFFER
if (fd->secret->peekBytes != 0) {
@ -678,7 +679,7 @@ PRIntn flags, PRIntervalTime timeout)
count = 0;
while (amount > 0) {
PR_LOG(_pr_io_lm, PR_LOG_MAX,
("send: fd=%p osfd=%d buf=%p amount=%d",
("send: fd=%p osfd=%" PR_PRIdOSFD " buf=%p amount=%d",
fd, fd->secret->md.osfd, buf, amount));
temp = _PR_MD_SEND(fd, buf, amount, flags, timeout);
if (temp < 0) {
@ -865,7 +866,7 @@ PRIntervalTime timeout)
#if defined(WINNT)
{
PRInt32 newSock;
PROsfd newSock;
PRNetAddr *raddrCopy;
if (raddr == NULL) {
@ -905,7 +906,7 @@ PRNetAddr **raddr, void *buf, PRInt32 amount,
PRIntervalTime timeout)
{
PRInt32 rv;
PRInt32 newSock;
PROsfd newSock;
PRThread *me = _PR_MD_CURRENT_THREAD();
PRNetAddr *raddrCopy;
@ -956,7 +957,7 @@ _PR_AcceptTimeoutCallback callback,
void *callbackArg)
{
PRInt32 rv;
PRInt32 newSock;
PROsfd newSock;
PRThread *me = _PR_MD_CURRENT_THREAD();
PRNetAddr *raddrCopy;
@ -1254,7 +1255,7 @@ PR_EXTERN(PRBool) _pr_ipv6_is_present;
PR_IMPLEMENT(PRBool) _pr_test_ipv6_socket()
{
PRInt32 osfd;
PROsfd osfd;
osfd = _PR_MD_SOCKET(AF_INET6, SOCK_STREAM, 0);
if (osfd != -1) {
@ -1269,7 +1270,7 @@ PRInt32 osfd;
PR_IMPLEMENT(PRFileDesc*) PR_Socket(PRInt32 domain, PRInt32 type, PRInt32 proto)
{
PRInt32 osfd;
PROsfd osfd;
PRFileDesc *fd;
PRInt32 tmp_domain = domain;
@ -1579,7 +1580,7 @@ failed:
#endif
}
PR_IMPLEMENT(PRInt32)
PR_IMPLEMENT(PROsfd)
PR_FileDesc2NativeHandle(PRFileDesc *fd)
{
if (fd) {
@ -1593,7 +1594,7 @@ PR_FileDesc2NativeHandle(PRFileDesc *fd)
}
PR_IMPLEMENT(void)
PR_ChangeFileDescNativeHandle(PRFileDesc *fd, PRInt32 handle)
PR_ChangeFileDescNativeHandle(PRFileDesc *fd, PROsfd handle)
{
if (fd)
fd->secret->md.osfd = handle;
@ -1640,14 +1641,14 @@ PR_IMPLEMENT(PRInt32) PR_FD_ISSET(PRFileDesc *fh, PR_fd_set *set)
return 0;
}
PR_IMPLEMENT(void) PR_FD_NSET(PRInt32 fd, PR_fd_set *set)
PR_IMPLEMENT(void) PR_FD_NSET(PROsfd fd, PR_fd_set *set)
{
PR_ASSERT( set->nsize < PR_MAX_SELECT_DESC );
set->narray[set->nsize++] = fd;
}
PR_IMPLEMENT(void) PR_FD_NCLR(PRInt32 fd, PR_fd_set *set)
PR_IMPLEMENT(void) PR_FD_NCLR(PROsfd fd, PR_fd_set *set)
{
PRUint32 index, index2;
@ -1661,7 +1662,7 @@ PR_IMPLEMENT(void) PR_FD_NCLR(PRInt32 fd, PR_fd_set *set)
}
}
PR_IMPLEMENT(PRInt32) PR_FD_NISSET(PRInt32 fd, PR_fd_set *set)
PR_IMPLEMENT(PRInt32) PR_FD_NISSET(PROsfd fd, PR_fd_set *set)
{
PRUint32 index;
for (index = 0; index<set->nsize; index++)

View File

@ -96,7 +96,9 @@ PRWord *_MD_HomeGCRegisters(PRThread *t, int isCurrent, int *np)
#endif
}
return (PRWord *)&t->md.gcContext;
#elif defined(_ALPHA_)
#else
PR_NOT_REACHED("not implemented");
return NULL;
#endif /* defined(_X86_) */
}
@ -121,6 +123,8 @@ GetMyFiberID()
}
return fiberData;
#elif defined(_ALPHA_)
#else
PR_NOT_REACHED("not implemented");
return NULL;
#endif /* defined(_X86_) */
}

View File

@ -118,7 +118,7 @@ PRInt32 IsFileLocal(HANDLE hFile);
static PRInt32 _md_MakeNonblock(HANDLE);
static PRInt32 _nt_nonblock_accept(PRFileDesc *fd, struct sockaddr *addr, int *addrlen, PRIntervalTime);
static PROsfd _nt_nonblock_accept(PRFileDesc *fd, struct sockaddr *addr, int *addrlen, PRIntervalTime);
static PRInt32 _nt_nonblock_connect(PRFileDesc *fd, struct sockaddr *addr, int addrlen, PRIntervalTime);
static PRInt32 _nt_nonblock_recv(PRFileDesc *fd, char *buf, int len, int flags, PRIntervalTime);
static PRInt32 _nt_nonblock_send(PRFileDesc *fd, char *buf, int len, PRIntervalTime);
@ -1045,7 +1045,7 @@ static int missing_completions = 0;
static int max_wait_loops = 0;
static PRInt32
_NT_IO_ABORT(PRInt32 sock)
_NT_IO_ABORT(PROsfd sock)
{
PRThread *me = _PR_MD_CURRENT_THREAD();
PRBool fWait;
@ -1136,7 +1136,7 @@ _NT_IO_ABORT(PRInt32 sock)
}
PRInt32
PROsfd
_PR_MD_SOCKET(int af, int type, int flags)
{
SOCKET sock;
@ -1147,13 +1147,13 @@ _PR_MD_SOCKET(int af, int type, int flags)
_PR_MD_MAP_SOCKET_ERROR(WSAGetLastError());
}
return (PRInt32)sock;
return (PROsfd)sock;
}
struct connect_data_s {
PRInt32 status;
PRInt32 error;
PRInt32 osfd;
PROsfd osfd;
struct sockaddr *addr;
PRUint32 addrlen;
PRIntervalTime timeout;
@ -1177,7 +1177,7 @@ PRInt32
_PR_MD_CONNECT(PRFileDesc *fd, const PRNetAddr *addr, PRUint32 addrlen,
PRIntervalTime timeout)
{
PRInt32 osfd = fd->secret->md.osfd;
PROsfd osfd = fd->secret->md.osfd;
PRInt32 rv, err;
u_long nbio;
PRInt32 rc;
@ -1245,7 +1245,7 @@ _PR_MD_BIND(PRFileDesc *fd, const PRNetAddr *addr, PRUint32 addrlen)
return 0;
}
void _PR_MD_UPDATE_ACCEPT_CONTEXT(PRInt32 accept_sock, PRInt32 listen_sock)
void _PR_MD_UPDATE_ACCEPT_CONTEXT(PROsfd accept_sock, PROsfd listen_sock)
{
/* Sockets accept()'d with AcceptEx need to call this setsockopt before
* calling anything other than ReadFile(), WriteFile(), send(), recv(),
@ -1268,12 +1268,12 @@ void _PR_MD_UPDATE_ACCEPT_CONTEXT(PRInt32 accept_sock, PRInt32 listen_sock)
}
#define INET_ADDR_PADDED (sizeof(PRNetAddr) + 16)
PRInt32
PROsfd
_PR_MD_FAST_ACCEPT(PRFileDesc *fd, PRNetAddr *raddr, PRUint32 *rlen,
PRIntervalTime timeout, PRBool fast,
_PR_AcceptTimeoutCallback callback, void *callbackArg)
{
PRInt32 osfd = fd->secret->md.osfd;
PROsfd osfd = fd->secret->md.osfd;
PRThread *me = _PR_MD_CURRENT_THREAD();
SOCKET accept_sock;
int bytes;
@ -1420,12 +1420,12 @@ _PR_MD_FAST_ACCEPT(PRFileDesc *fd, PRNetAddr *raddr, PRUint32 *rlen,
}
PRInt32
_PR_MD_FAST_ACCEPT_READ(PRFileDesc *sd, PRInt32 *newSock, PRNetAddr **raddr,
_PR_MD_FAST_ACCEPT_READ(PRFileDesc *sd, PROsfd *newSock, PRNetAddr **raddr,
void *buf, PRInt32 amount, PRIntervalTime timeout,
PRBool fast, _PR_AcceptTimeoutCallback callback,
void *callbackArg)
{
PRInt32 sock = sd->secret->md.osfd;
PROsfd sock = sd->secret->md.osfd;
PRThread *me = _PR_MD_CURRENT_THREAD();
int bytes;
PRNetAddr *Laddr;
@ -1707,7 +1707,7 @@ PRInt32
_PR_MD_RECV(PRFileDesc *fd, void *buf, PRInt32 amount, PRIntn flags,
PRIntervalTime timeout)
{
PRInt32 osfd = fd->secret->md.osfd;
PROsfd osfd = fd->secret->md.osfd;
PRThread *me = _PR_MD_CURRENT_THREAD();
int bytes;
int rv, err;
@ -1806,7 +1806,7 @@ PRInt32
_PR_MD_SEND(PRFileDesc *fd, const void *buf, PRInt32 amount, PRIntn flags,
PRIntervalTime timeout)
{
PRInt32 osfd = fd->secret->md.osfd;
PROsfd osfd = fd->secret->md.osfd;
PRThread *me = _PR_MD_CURRENT_THREAD();
int bytes;
int rv, err;
@ -1901,7 +1901,7 @@ PRInt32
_PR_MD_SENDTO(PRFileDesc *fd, const void *buf, PRInt32 amount, PRIntn flags,
const PRNetAddr *addr, PRUint32 addrlen, PRIntervalTime timeout)
{
PRInt32 osfd = fd->secret->md.osfd;
PROsfd osfd = fd->secret->md.osfd;
PRInt32 rv;
if (!fd->secret->md.io_model_committed) {
@ -1919,7 +1919,7 @@ PRInt32
_PR_MD_RECVFROM(PRFileDesc *fd, void *buf, PRInt32 amount, PRIntn flags,
PRNetAddr *addr, PRUint32 *addrlen, PRIntervalTime timeout)
{
PRInt32 osfd = fd->secret->md.osfd;
PROsfd osfd = fd->secret->md.osfd;
PRInt32 rv;
if (!fd->secret->md.io_model_committed) {
@ -1937,7 +1937,7 @@ _PR_MD_RECVFROM(PRFileDesc *fd, void *buf, PRInt32 amount, PRIntn flags,
PRInt32
_PR_MD_WRITEV(PRFileDesc *fd, const PRIOVec *iov, PRInt32 iov_size, PRIntervalTime timeout)
{
PRInt32 osfd = fd->secret->md.osfd;
PROsfd osfd = fd->secret->md.osfd;
int index;
int sent = 0;
int rv;
@ -2082,7 +2082,7 @@ _PR_MD_SETSOCKOPT(PRFileDesc *fd, PRInt32 level, PRInt32 optname, const char* op
/* --- FILE IO ----------------------------------------------------------- */
PRInt32
PROsfd
_PR_MD_OPEN(const char *name, PRIntn osflags, PRIntn mode)
{
HANDLE file;
@ -2125,10 +2125,10 @@ _PR_MD_OPEN(const char *name, PRIntn osflags, PRIntn mode)
}
}
return (PRInt32)file;
return (PROsfd)file;
}
PRInt32
PROsfd
_PR_MD_OPEN_FILE(const char *name, PRIntn osflags, PRIntn mode)
{
HANDLE file;
@ -2187,13 +2187,13 @@ _PR_MD_OPEN_FILE(const char *name, PRIntn osflags, PRIntn mode)
}
}
return (PRInt32)file;
return (PROsfd)file;
}
PRInt32
_PR_MD_READ(PRFileDesc *fd, void *buf, PRInt32 len)
{
PRInt32 f = fd->secret->md.osfd;
PROsfd f = fd->secret->md.osfd;
PRUint32 bytes;
int rv, err;
LONG hiOffset = 0;
@ -2344,7 +2344,7 @@ _PR_MD_READ(PRFileDesc *fd, void *buf, PRInt32 len)
PRInt32
_PR_MD_WRITE(PRFileDesc *fd, const void *buf, PRInt32 len)
{
PRInt32 f = fd->secret->md.osfd;
PROsfd f = fd->secret->md.osfd;
PRInt32 bytes;
int rv, err;
LONG hiOffset = 0;
@ -2613,7 +2613,7 @@ _PR_MD_FSYNC(PRFileDesc *fd)
}
PRInt32
_PR_MD_CLOSE(PRInt32 osfd, PRBool socket)
_PR_MD_CLOSE(PROsfd osfd, PRBool socket)
{
PRInt32 rv;
PRThread *me = _PR_MD_CURRENT_THREAD();
@ -3268,7 +3268,7 @@ _PR_MD_RMDIR(const char *name)
}
PRStatus
_PR_MD_LOCKFILE(PRInt32 f)
_PR_MD_LOCKFILE(PROsfd f)
{
PRInt32 rv, err;
PRThread *me = _PR_MD_CURRENT_THREAD();
@ -3387,7 +3387,7 @@ _PR_MD_LOCKFILE(PRInt32 f)
}
PRStatus
_PR_MD_TLOCKFILE(PRInt32 f)
_PR_MD_TLOCKFILE(PROsfd f)
{
PRInt32 rv, err;
PRThread *me = _PR_MD_CURRENT_THREAD();
@ -3500,7 +3500,7 @@ _PR_MD_TLOCKFILE(PRInt32 f)
PRStatus
_PR_MD_UNLOCKFILE(PRInt32 f)
_PR_MD_UNLOCKFILE(PROsfd f)
{
PRInt32 rv;
PRThread *me = _PR_MD_CURRENT_THREAD();
@ -3792,9 +3792,10 @@ PR_IMPLEMENT(PRStatus) PR_NT_CancelIo(PRFileDesc *fd)
return PR_SUCCESS;
}
static PRInt32 _nt_nonblock_accept(PRFileDesc *fd, struct sockaddr *addr, int *addrlen, PRIntervalTime timeout)
static PROsfd _nt_nonblock_accept(PRFileDesc *fd, struct sockaddr *addr, int *addrlen, PRIntervalTime timeout)
{
PRInt32 osfd = fd->secret->md.osfd;
PROsfd osfd = fd->secret->md.osfd;
SOCKET sock;
PRInt32 rv, err;
fd_set rd;
struct timeval tv, *tvp;
@ -3802,10 +3803,10 @@ static PRInt32 _nt_nonblock_accept(PRFileDesc *fd, struct sockaddr *addr, int *a
FD_ZERO(&rd);
FD_SET((SOCKET)osfd, &rd);
if (timeout == PR_INTERVAL_NO_TIMEOUT) {
while ((rv = accept(osfd, addr, addrlen)) == -1) {
while ((sock = accept(osfd, addr, addrlen)) == -1) {
if (((err = WSAGetLastError()) == WSAEWOULDBLOCK)
&& (!fd->secret->nonblocking)) {
if ((rv = _PR_NTFiberSafeSelect(osfd + 1, &rd, NULL, NULL,
if ((rv = _PR_NTFiberSafeSelect(0, &rd, NULL, NULL,
NULL)) == -1) {
_PR_MD_MAP_SELECT_ERROR(WSAGetLastError());
break;
@ -3816,7 +3817,7 @@ static PRInt32 _nt_nonblock_accept(PRFileDesc *fd, struct sockaddr *addr, int *a
}
}
} else if (timeout == PR_INTERVAL_NO_WAIT) {
if ((rv = accept(osfd, addr, addrlen)) == -1) {
if ((sock = accept(osfd, addr, addrlen)) == -1) {
if (((err = WSAGetLastError()) == WSAEWOULDBLOCK)
&& (!fd->secret->nonblocking)) {
PR_SetError(PR_IO_TIMEOUT_ERROR, 0);
@ -3826,7 +3827,7 @@ static PRInt32 _nt_nonblock_accept(PRFileDesc *fd, struct sockaddr *addr, int *a
}
} else {
retry:
if ((rv = accept(osfd, addr, addrlen)) == -1) {
if ((sock = accept(osfd, addr, addrlen)) == -1) {
if (((err = WSAGetLastError()) == WSAEWOULDBLOCK)
&& (!fd->secret->nonblocking)) {
tv.tv_sec = PR_IntervalToSeconds(timeout);
@ -3834,12 +3835,11 @@ retry:
timeout - PR_SecondsToInterval(tv.tv_sec));
tvp = &tv;
rv = _PR_NTFiberSafeSelect(osfd + 1, &rd, NULL, NULL, tvp);
rv = _PR_NTFiberSafeSelect(0, &rd, NULL, NULL, tvp);
if (rv > 0) {
goto retry;
} else if (rv == 0) {
PR_SetError(PR_IO_TIMEOUT_ERROR, 0);
rv = -1;
} else {
_PR_MD_MAP_SELECT_ERROR(WSAGetLastError());
}
@ -3848,12 +3848,12 @@ retry:
}
}
}
return(rv);
return (PROsfd)sock;
}
static PRInt32 _nt_nonblock_connect(PRFileDesc *fd, struct sockaddr *addr, int addrlen, PRIntervalTime timeout)
{
PRInt32 osfd = fd->secret->md.osfd;
PROsfd osfd = fd->secret->md.osfd;
PRInt32 rv;
int err;
fd_set wr, ex;
@ -3874,7 +3874,7 @@ static PRInt32 _nt_nonblock_connect(PRFileDesc *fd, struct sockaddr *addr, int a
FD_ZERO(&ex);
FD_SET((SOCKET)osfd, &wr);
FD_SET((SOCKET)osfd, &ex);
if ((rv = _PR_NTFiberSafeSelect(osfd + 1, NULL, &wr, &ex,
if ((rv = _PR_NTFiberSafeSelect(0, NULL, &wr, &ex,
tvp)) == -1) {
_PR_MD_MAP_SELECT_ERROR(WSAGetLastError());
return rv;
@ -3906,7 +3906,7 @@ static PRInt32 _nt_nonblock_connect(PRFileDesc *fd, struct sockaddr *addr, int a
static PRInt32 _nt_nonblock_recv(PRFileDesc *fd, char *buf, int len, int flags, PRIntervalTime timeout)
{
PRInt32 osfd = fd->secret->md.osfd;
PROsfd osfd = fd->secret->md.osfd;
PRInt32 rv, err;
struct timeval tv, *tvp;
fd_set rd;
@ -3931,7 +3931,7 @@ static PRInt32 _nt_nonblock_recv(PRFileDesc *fd, char *buf, int len, int flags,
timeout - PR_SecondsToInterval(tv.tv_sec));
tvp = &tv;
}
if ((rv = _PR_NTFiberSafeSelect(osfd + 1, &rd, NULL, NULL,
if ((rv = _PR_NTFiberSafeSelect(0, &rd, NULL, NULL,
tvp)) == -1) {
_PR_MD_MAP_SELECT_ERROR(WSAGetLastError());
break;
@ -3950,7 +3950,7 @@ static PRInt32 _nt_nonblock_recv(PRFileDesc *fd, char *buf, int len, int flags,
static PRInt32 _nt_nonblock_send(PRFileDesc *fd, char *buf, int len, PRIntervalTime timeout)
{
PRInt32 osfd = fd->secret->md.osfd;
PROsfd osfd = fd->secret->md.osfd;
PRInt32 rv, err;
struct timeval tv, *tvp;
fd_set wd;
@ -3970,7 +3970,7 @@ static PRInt32 _nt_nonblock_send(PRFileDesc *fd, char *buf, int len, PRIntervalT
}
FD_ZERO(&wd);
FD_SET((SOCKET)osfd, &wd);
if ((rv = _PR_NTFiberSafeSelect(osfd + 1, NULL, &wd, NULL,
if ((rv = _PR_NTFiberSafeSelect(0, NULL, &wd, NULL,
tvp)) == -1) {
_PR_MD_MAP_SELECT_ERROR(WSAGetLastError());
return -1;
@ -3999,7 +3999,7 @@ static PRInt32 _nt_nonblock_send(PRFileDesc *fd, char *buf, int len, PRIntervalT
}
FD_ZERO(&wd);
FD_SET((SOCKET)osfd, &wd);
if ((rv = _PR_NTFiberSafeSelect(osfd + 1, NULL, &wd, NULL,
if ((rv = _PR_NTFiberSafeSelect(0, NULL, &wd, NULL,
tvp)) == -1) {
_PR_MD_MAP_SELECT_ERROR(WSAGetLastError());
return -1;
@ -4046,7 +4046,7 @@ static PRInt32 _nt_nonblock_sendto(
PRFileDesc *fd, const char *buf, int len,
const struct sockaddr *addr, int addrlen, PRIntervalTime timeout)
{
PRInt32 osfd = fd->secret->md.osfd;
PROsfd osfd = fd->secret->md.osfd;
PRInt32 rv, err;
struct timeval tv, *tvp;
fd_set wd;
@ -4066,7 +4066,7 @@ static PRInt32 _nt_nonblock_sendto(
}
FD_ZERO(&wd);
FD_SET((SOCKET)osfd, &wd);
if ((rv = _PR_NTFiberSafeSelect(osfd + 1, NULL, &wd, NULL,
if ((rv = _PR_NTFiberSafeSelect(0, NULL, &wd, NULL,
tvp)) == -1) {
_PR_MD_MAP_SELECT_ERROR(WSAGetLastError());
return -1;
@ -4095,7 +4095,7 @@ static PRInt32 _nt_nonblock_sendto(
}
FD_ZERO(&wd);
FD_SET((SOCKET)osfd, &wd);
if ((rv = _PR_NTFiberSafeSelect(osfd + 1, NULL, &wd, NULL,
if ((rv = _PR_NTFiberSafeSelect(0, NULL, &wd, NULL,
tvp)) == -1) {
_PR_MD_MAP_SELECT_ERROR(WSAGetLastError());
return -1;
@ -4111,7 +4111,7 @@ static PRInt32 _nt_nonblock_sendto(
static PRInt32 _nt_nonblock_recvfrom(PRFileDesc *fd, char *buf, int len, struct sockaddr *addr, int *addrlen, PRIntervalTime timeout)
{
PRInt32 osfd = fd->secret->md.osfd;
PROsfd osfd = fd->secret->md.osfd;
PRInt32 rv, err;
struct timeval tv, *tvp;
fd_set rd;
@ -4129,7 +4129,7 @@ static PRInt32 _nt_nonblock_recvfrom(PRFileDesc *fd, char *buf, int len, struct
}
FD_ZERO(&rd);
FD_SET((SOCKET)osfd, &rd);
if ((rv = _PR_NTFiberSafeSelect(osfd + 1, &rd, NULL, NULL,
if ((rv = _PR_NTFiberSafeSelect(0, &rd, NULL, NULL,
tvp)) == -1) {
_PR_MD_MAP_SELECT_ERROR(WSAGetLastError());
break;

View File

@ -112,7 +112,7 @@ static int assembleCmdLine(char *const *argv, char **cmdLine)
{
char *const *arg;
char *p, *q;
int cmdLineSize;
size_t cmdLineSize;
int numBackslashes;
int i;
int argNeedQuotes;
@ -133,7 +133,7 @@ static int assembleCmdLine(char *const *argv, char **cmdLine)
+ 2 /* we quote every argument */
+ 1; /* space in between, or final null */
}
p = *cmdLine = PR_MALLOC(cmdLineSize);
p = *cmdLine = PR_MALLOC((PRUint32) cmdLineSize);
if (p == NULL) {
return -1;
}
@ -226,7 +226,7 @@ static int assembleEnvBlock(char **envp, char **envBlock)
char **env;
char *curEnv;
char *cwdStart, *cwdEnd;
int envBlockSize;
size_t envBlockSize;
if (envp == NULL) {
*envBlock = NULL;
@ -261,7 +261,7 @@ static int assembleEnvBlock(char **envp, char **envBlock)
}
envBlockSize++;
p = *envBlock = PR_MALLOC(envBlockSize);
p = *envBlock = PR_MALLOC((PRUint32) envBlockSize);
if (p == NULL) {
FreeEnvironmentStrings(curEnv);
return -1;
@ -583,7 +583,7 @@ PRStatus _MD_CreateFileMap(PRFileMap *fmap, PRInt64 size)
{
DWORD dwHi, dwLo;
DWORD flProtect;
PRUint32 osfd;
PROsfd osfd;
osfd = ( fmap->fd == (PRFileDesc*)-1 )? -1 : fmap->fd->secret->md.osfd;

View File

@ -59,8 +59,8 @@ CurrentClockTickTime(LPDWORD lpdwHigh, LPDWORD lpdwLow)
extern PRSize _PR_MD_GetRandomNoise( void *buf, PRSize size )
{
DWORD dwHigh, dwLow, dwVal;
int n = 0;
int nBytes;
size_t n = 0;
size_t nBytes;
time_t sTime;
if (size <= 0)

View File

@ -92,7 +92,7 @@ extern PRSharedMemory * _MD_OpenSharedMemory(
return(NULL);
}
shm->ipcname = PR_MALLOC( strlen( ipcname ) + 1 );
shm->ipcname = PR_MALLOC( (PRUint32) (strlen( ipcname ) + 1) );
if ( NULL == shm->ipcname )
{
PR_SetError(PR_OUT_OF_MEMORY_ERROR, 0 );
@ -109,9 +109,8 @@ extern PRSharedMemory * _MD_OpenSharedMemory(
shm->ident = _PR_SHM_IDENT;
if (flags & PR_SHM_CREATE ) {
/* XXX: Not 64bit safe. Fix when WinNT goes 64bit. */
dwHi = 0;
dwLo = shm->size;
dwHi = (DWORD) (((PRUint64) shm->size >> 32) & 0xffffffff);
dwLo = (DWORD) (shm->size & 0xffffffff);
if (_PR_NT_MakeSecurityDescriptorACL(mode, filemapAccessTable,
&pSD, &pACL) == PR_SUCCESS) {
@ -305,9 +304,8 @@ extern PRStatus _md_ExportFileMapAsString(
{
PRIntn written;
written = PR_snprintf( buf, bufSize, "%d:%ld:%ld",
(PRIntn)fm->prot, (PRInt32)fm->md.hFileMap, (PRInt32)fm->md.dwAccess );
/* Watch out on the above snprintf(). Windows HANDLE assumes 32bits; windows calls it void* */
written = PR_snprintf( buf, (PRUint32) bufSize, "%d:%" PR_PRIdOSFD ":%ld",
(PRIntn)fm->prot, (PROsfd)fm->md.hFileMap, (PRInt32)fm->md.dwAccess );
PR_LOG( _pr_shma_lm, PR_LOG_DEBUG,
("_md_ExportFileMapAsString(): prot: %x, hFileMap: %x, dwAccess: %x",
@ -326,11 +324,12 @@ extern PRFileMap * _md_ImportFileMapFromString(
)
{
PRIntn prot;
PRInt32 hFileMap;
PROsfd hFileMap;
PRInt32 dwAccess;
PRFileMap *fm = NULL;
PR_sscanf( fmstring, "%d:%ld:%ld", &prot, &hFileMap, &dwAccess );
PR_sscanf( fmstring, "%d:%" PR_SCNdOSFD ":%ld",
&prot, &hFileMap, &dwAccess );
fm = PR_NEWZAP(PRFileMap);
if ( NULL == fm ) {
@ -340,7 +339,7 @@ extern PRFileMap * _md_ImportFileMapFromString(
}
fm->prot = (PRFileMapProtect)prot;
fm->md.hFileMap = (HANDLE)hFileMap; /* Assumes HANDLE is 32bit */
fm->md.hFileMap = (HANDLE)hFileMap;
fm->md.dwAccess = (DWORD)dwAccess;
fm->fd = (PRFileDesc*)-1;

View File

@ -189,7 +189,7 @@ _PR_MD_WAKEUP_WAITER(PRThread *thread)
* as in 0666, in the case of opening the logFile.
*
*/
PRInt32
PROsfd
_PR_MD_OPEN(const char *name, PRIntn osflags, int mode)
{
HANDLE file;
@ -230,10 +230,10 @@ _PR_MD_OPEN(const char *name, PRIntn osflags, int mode)
return -1;
}
return (PRInt32)file;
return (PROsfd)file;
}
PRInt32
PROsfd
_PR_MD_OPEN_FILE(const char *name, PRIntn osflags, int mode)
{
HANDLE file;
@ -291,7 +291,7 @@ _PR_MD_OPEN_FILE(const char *name, PRIntn osflags, int mode)
return -1;
}
return (PRInt32)file;
return (PROsfd)file;
}
PRInt32
@ -324,7 +324,7 @@ _PR_MD_READ(PRFileDesc *fd, void *buf, PRInt32 len)
PRInt32
_PR_MD_WRITE(PRFileDesc *fd, const void *buf, PRInt32 len)
{
PRInt32 f = fd->secret->md.osfd;
PROsfd f = fd->secret->md.osfd;
PRInt32 bytes;
int rv;
PRThread *me = _PR_MD_CURRENT_THREAD();
@ -448,7 +448,7 @@ _PR_MD_FSYNC(PRFileDesc *fd)
}
PRInt32
_MD_CloseFile(PRInt32 osfd)
_MD_CloseFile(PROsfd osfd)
{
PRInt32 rv;
@ -463,9 +463,9 @@ _MD_CloseFile(PRInt32 osfd)
#define GetFileFromDIR(d) (d)->d_entry.cFileName
#define FileIsHidden(d) ((d)->d_entry.dwFileAttributes & FILE_ATTRIBUTE_HIDDEN)
void FlipSlashes(char *cp, int len)
void FlipSlashes(char *cp, size_t len)
{
while (--len >= 0) {
while (len-- > 0) {
if (cp[0] == '/') {
cp[0] = PR_DIRECTORY_SEPARATOR;
}
@ -502,7 +502,7 @@ PRStatus
_PR_MD_OPEN_DIR(_MDDir *d, const char *name)
{
char filename[ MAX_PATH ];
int len;
size_t len;
len = strlen(name);
/* Need 5 bytes for \*.* and the trailing null byte. */
@ -652,7 +652,7 @@ _PR_MD_STAT(const char *fn, struct stat *info)
* try again.
*/
int len = strlen(fn);
size_t len = strlen(fn);
if (len > 0 && len <= _MAX_PATH
&& (fn[len - 1] == '\\' || fn[len - 1] == '/')) {
char newfn[_MAX_PATH + 1];
@ -1047,7 +1047,7 @@ _PR_MD_RMDIR(const char *name)
}
PRStatus
_PR_MD_LOCKFILE(PRInt32 f)
_PR_MD_LOCKFILE(PROsfd f)
{
PRStatus rc = PR_SUCCESS;
DWORD rv;
@ -1066,7 +1066,7 @@ _PR_MD_LOCKFILE(PRInt32 f)
} /* end _PR_MD_LOCKFILE() */
PRStatus
_PR_MD_TLOCKFILE(PRInt32 f)
_PR_MD_TLOCKFILE(PROsfd f)
{
PR_SetError( PR_NOT_IMPLEMENTED_ERROR, 0 );
return PR_FAILURE;
@ -1074,7 +1074,7 @@ _PR_MD_TLOCKFILE(PRInt32 f)
PRStatus
_PR_MD_UNLOCKFILE(PRInt32 f)
_PR_MD_UNLOCKFILE(PROsfd f)
{
PRInt32 rv;
@ -1139,9 +1139,9 @@ static void InitUnicodeSupport(void)
}
/* ================ UTF16 Interfaces ================================ */
void FlipSlashesW(PRUnichar *cp, int len)
void FlipSlashesW(PRUnichar *cp, size_t len)
{
while (--len >= 0) {
while (len-- > 0) {
if (cp[0] == L'/') {
cp[0] = L'\\';
}
@ -1149,7 +1149,7 @@ void FlipSlashesW(PRUnichar *cp, int len)
}
} /* end FlipSlashesW() */
PRInt32
PROsfd
_PR_MD_OPEN_FILE_UTF16(const PRUnichar *name, PRIntn osflags, int mode)
{
HANDLE file;
@ -1212,7 +1212,7 @@ _PR_MD_OPEN_FILE_UTF16(const PRUnichar *name, PRIntn osflags, int mode)
return -1;
}
return (PRInt32)file;
return (PROsfd)file;
}
PRStatus

View File

@ -46,7 +46,7 @@
#define CONNECT_FD 3
static PRInt32 socket_io_wait(
PRInt32 osfd,
PROsfd osfd,
PRInt32 fd_type,
PRIntervalTime timeout);
@ -54,7 +54,7 @@ static PRInt32 socket_io_wait(
/* --- SOCKET IO --------------------------------------------------------- */
PRInt32
PROsfd
_PR_MD_SOCKET(int af, int type, int flags)
{
SOCKET sock;
@ -65,7 +65,7 @@ _PR_MD_SOCKET(int af, int type, int flags)
if (sock == INVALID_SOCKET )
{
_PR_MD_MAP_SOCKET_ERROR(WSAGetLastError());
return (PRInt32)sock;
return (PROsfd)sock;
}
/*
@ -78,7 +78,7 @@ _PR_MD_SOCKET(int af, int type, int flags)
return -1;
}
return (PRInt32)sock;
return (PROsfd)sock;
}
/*
@ -86,7 +86,7 @@ _PR_MD_SOCKET(int af, int type, int flags)
**
*/
PRInt32
_MD_CloseSocket(PRInt32 osfd)
_MD_CloseSocket(PROsfd osfd)
{
PRInt32 rv;
@ -109,23 +109,24 @@ _MD_SocketAvailable(PRFileDesc *fd)
return result;
}
PRInt32 _MD_Accept(
PROsfd _MD_Accept(
PRFileDesc *fd,
PRNetAddr *raddr,
PRUint32 *rlen,
PRIntervalTime timeout )
{
PRInt32 osfd = fd->secret->md.osfd;
PROsfd osfd = fd->secret->md.osfd;
SOCKET sock;
PRInt32 rv, err;
while ((rv = accept(osfd, (struct sockaddr *) raddr, rlen)) == -1)
while ((sock = accept(osfd, (struct sockaddr *) raddr, rlen)) == -1)
{
err = WSAGetLastError();
if ((err == WSAEWOULDBLOCK) && (!fd->secret->nonblocking))
{
if ((rv = socket_io_wait(osfd, READ_FD, timeout)) < 0)
{
return(-1);
break;
}
}
else
@ -134,14 +135,14 @@ PRInt32 _MD_Accept(
break;
}
}
return(rv);
return(sock);
} /* end _MD_accept() */
PRInt32
_PR_MD_CONNECT(PRFileDesc *fd, const PRNetAddr *addr, PRUint32 addrlen,
PRIntervalTime timeout)
{
PRInt32 osfd = fd->secret->md.osfd;
PROsfd osfd = fd->secret->md.osfd;
PRInt32 rv;
int err;
@ -201,7 +202,7 @@ PRInt32
_PR_MD_RECV(PRFileDesc *fd, void *buf, PRInt32 amount, PRIntn flags,
PRIntervalTime timeout)
{
PRInt32 osfd = fd->secret->md.osfd;
PROsfd osfd = fd->secret->md.osfd;
PRInt32 rv, err;
int osflags;
@ -235,7 +236,7 @@ PRInt32
_PR_MD_SEND(PRFileDesc *fd, const void *buf, PRInt32 amount, PRIntn flags,
PRIntervalTime timeout)
{
PRInt32 osfd = fd->secret->md.osfd;
PROsfd osfd = fd->secret->md.osfd;
PRInt32 rv, err;
PRInt32 bytesSent = 0;
@ -279,7 +280,7 @@ PRInt32
_PR_MD_SENDTO(PRFileDesc *fd, const void *buf, PRInt32 amount, PRIntn flags,
const PRNetAddr *addr, PRUint32 addrlen, PRIntervalTime timeout)
{
PRInt32 osfd = fd->secret->md.osfd;
PROsfd osfd = fd->secret->md.osfd;
PRInt32 rv, err;
PRInt32 bytesSent = 0;
@ -324,7 +325,7 @@ PRInt32
_PR_MD_RECVFROM(PRFileDesc *fd, void *buf, PRInt32 amount, PRIntn flags,
PRNetAddr *addr, PRUint32 *addrlen, PRIntervalTime timeout)
{
PRInt32 osfd = fd->secret->md.osfd;
PROsfd osfd = fd->secret->md.osfd;
PRInt32 rv, err;
while ((rv = recvfrom( osfd, buf, amount, 0, (struct sockaddr *) addr,
@ -469,7 +470,7 @@ _MD_MakeNonblock(PRFileDesc *f)
#define _PR_INTERRUPT_CHECK_INTERVAL_SECS 5
static PRInt32 socket_io_wait(
PRInt32 osfd,
PROsfd osfd,
PRInt32 fd_type,
PRIntervalTime timeout)
{
@ -500,13 +501,13 @@ static PRInt32 socket_io_wait(
switch( fd_type )
{
case READ_FD:
rv = _MD_SELECT(osfd + 1, &rd_wr, NULL, NULL, &tv);
rv = _MD_SELECT(0, &rd_wr, NULL, NULL, &tv);
break;
case WRITE_FD:
rv = _MD_SELECT(osfd + 1, NULL, &rd_wr, NULL, &tv);
rv = _MD_SELECT(0, NULL, &rd_wr, NULL, &tv);
break;
case CONNECT_FD:
rv = _MD_SELECT(osfd + 1, NULL, &rd_wr, &ex, &tv);
rv = _MD_SELECT(0, NULL, &rd_wr, &ex, &tv);
break;
default:
PR_ASSERT(0);
@ -580,13 +581,13 @@ static PRInt32 socket_io_wait(
switch( fd_type )
{
case READ_FD:
rv = _MD_SELECT(osfd + 1, &rd_wr, NULL, NULL, &tv);
rv = _MD_SELECT(0, &rd_wr, NULL, NULL, &tv);
break;
case WRITE_FD:
rv = _MD_SELECT(osfd + 1, NULL, &rd_wr, NULL, &tv);
rv = _MD_SELECT(0, NULL, &rd_wr, NULL, &tv);
break;
case CONNECT_FD:
rv = _MD_SELECT(osfd + 1, NULL, &rd_wr, &ex, &tv);
rv = _MD_SELECT(0, NULL, &rd_wr, &ex, &tv);
break;
default:
PR_ASSERT(0);

View File

@ -38,6 +38,14 @@
#include "primpl.h"
#include <process.h> /* for _beginthreadex() */
#if _MSC_VER <= 1200
/*
* VC++ 6.0 doesn't have DWORD_PTR.
*/
typedef DWORD DWORD_PTR;
#endif /* _MSC_VER <= 1200 */
/* --- globals ------------------------------------------------ */
#ifdef _PR_USE_STATIC_TLS
__declspec(thread) struct PRThread *_pr_thread_last_run;
@ -224,7 +232,7 @@ _PR_MD_EXIT(PRIntn status)
PRInt32 _PR_MD_SETTHREADAFFINITYMASK(PRThread *thread, PRUint32 mask )
{
int rv;
DWORD_PTR rv;
rv = SetThreadAffinityMask(thread->md.handle, mask);
@ -233,10 +241,15 @@ PRInt32 _PR_MD_SETTHREADAFFINITYMASK(PRThread *thread, PRUint32 mask )
PRInt32 _PR_MD_GETTHREADAFFINITYMASK(PRThread *thread, PRUint32 *mask)
{
PRInt32 rv, system_mask;
BOOL rv;
DWORD_PTR process_mask;
DWORD_PTR system_mask;
rv = GetProcessAffinityMask(GetCurrentProcess(),
&process_mask, &system_mask);
if (rv)
*mask = (PRUint32)process_mask;
rv = GetProcessAffinityMask(GetCurrentProcess(), mask, &system_mask);
return rv?0:-1;
}

View File

@ -587,8 +587,12 @@ PR_ProcessAttrSetInheritableFD(
#define FD_INHERIT_BUFFER_INCR 128
/* The length of "NSPR_INHERIT_FDS=" */
#define NSPR_INHERIT_FDS_STRLEN 17
/* The length of osfd (PRInt32) printed in hexadecimal with 0x prefix */
/* The length of osfd (PROsfd) printed in hexadecimal with 0x prefix */
#ifdef _WIN64
#define OSFD_STRLEN 18
#else
#define OSFD_STRLEN 10
#endif
/* The length of fd type (PRDescType) printed in decimal */
#define FD_TYPE_STRLEN 1
PRSize newSize;
@ -645,10 +649,10 @@ PR_ProcessAttrSetInheritableFD(
freeSize = attr->fdInheritBufferSize - attr->fdInheritBufferUsed;
if (0 == attr->fdInheritBufferUsed) {
nwritten = PR_snprintf(cur, freeSize,
"NSPR_INHERIT_FDS=%s:%d:0x%lx",
"NSPR_INHERIT_FDS=%s:%d:0x%" PR_PRIxOSFD,
name, (PRIntn)fd->methods->file_type, fd->secret->md.osfd);
} else {
nwritten = PR_snprintf(cur, freeSize, ":%s:%d:0x%lx",
nwritten = PR_snprintf(cur, freeSize, ":%s:%d:0x%" PR_PRIxOSFD,
name, (PRIntn)fd->methods->file_type, fd->secret->md.osfd);
}
attr->fdInheritBufferUsed += nwritten;
@ -662,7 +666,7 @@ PR_IMPLEMENT(PRFileDesc *) PR_GetInheritedFD(
const char *envVar;
const char *ptr;
int len = strlen(name);
PRInt32 osfd;
PROsfd osfd;
int nColons;
PRIntn fileType;
@ -676,7 +680,7 @@ PR_IMPLEMENT(PRFileDesc *) PR_GetInheritedFD(
while (1) {
if ((ptr[len] == ':') && (strncmp(ptr, name, len) == 0)) {
ptr += len + 1;
PR_sscanf(ptr, "%d:0x%lx", &fileType, &osfd);
PR_sscanf(ptr, "%d:0x%" PR_SCNxOSFD, &fileType, &osfd);
switch ((PRDescType)fileType) {
case PR_DESC_FILE:
fd = PR_ImportFile(osfd);

View File

@ -100,8 +100,9 @@ int main(int argc, char **argv)
PRPollDesc pds0[10], pds1[10], *pds, *other_pds;
PRIntn npds;
PRInt32 retVal;
PRInt32 sd, rv;
struct sockaddr_in saddr;
PRInt32 rv;
PROsfd sd;
struct sockaddr_in saddr;
PRIntn saddr_len;
PRUint16 listenPort3;
PRFileDesc *socket_poll_fd;
@ -286,7 +287,7 @@ int main(int argc, char **argv)
nEvents++;
if (j == 2) {
int newsd;
PROsfd newsd;
newsd = accept(PR_FileDesc2NativeHandle(pds[j].fd), NULL, 0);
if (newsd == -1) {
fprintf(stderr, "accept() failed\n");