aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog27
-rw-r--r--config.h.in22
-rw-r--r--config.make.in1
-rwxr-xr-xconfigure147
-rw-r--r--configure.in73
-rw-r--r--inet/arpa/inet.h11
-rw-r--r--inet/inet_lnaof.c4
-rw-r--r--inet/inet_mkadr.c4
-rw-r--r--inet/inet_net.c6
-rw-r--r--inet/inet_netof.c4
-rw-r--r--inet/netinet/in.h18
-rw-r--r--inet/netinet/tcp.h2
-rw-r--r--inet/protocols/rwhod.h4
-rw-r--r--inet/protocols/talkd.h8
-rw-r--r--inet/rcmd.c20
-rw-r--r--libc-symbols.h52
-rw-r--r--resolv/inet_addr.c4
-rw-r--r--sunrpc/rpc/auth.h8
-rw-r--r--sunrpc/svc_authux.c2
-rw-r--r--sunrpc/xdr_rec.c174
20 files changed, 385 insertions, 206 deletions
diff --git a/ChangeLog b/ChangeLog
index 305dff7..7c9aa2d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,9 +1,30 @@
Tue Mar 19 14:18:42 1996 Roland McGrath <roland@charlie-brown.gnu.ai.mit.edu>
+ * config.make.in (weak-symbols): Variable removed.
+ * configure.in (--with-weak-symbols): Option removed.
+ (NO_UNDERSCORES, HAVE_ASM_WEAK_DIRECTIVE, HAVE_ASM_WEAKEXT_DIRECTIVE):
+ New tests.
+ * config.h.in (HAVE_WEAK_SYMBOLS): #undef removed.
+ (NO_UNDERSCORES, HAVE_ASM_WEAK_DIRECTIVE, HAVE_ASM_WEAKEXT_DIRECTIVE):
+ New #undefs.
+ * libc-symbols.h: Use them instead of HAVE_WEAK_SYMBOLS.
+
* sysdeps/unix/bsd/pause.c: Moved to sysdeps/unix/common/pause.c.
Mon Mar 4 20:17:28 1996 David Mosberger-Tang <davidm@azstarnet.com>
+ * inet/inet_lnaof.c: Use u_int32_t instead of u_long.
+ * inet/inet_mkadr.c: Likewise.
+ * inet/inet_net.c: Likewise.
+ * inet/inet_netof.c: Likewise.
+ * inet/rcmd.c: Likewise.
+ * inet/arpa/inet.h: Likewise.
+ * inet/netinet/in.h: Likewise.
+ * inet/netinet/tcp.h: Likewise.
+ * inet/protocols/rwhod.h: Likewise.
+ * inet/protocols/talkd.h: Likewise.
+ * resolv/inet_addr.c: Likewise.
+
* sysdeps/unix/sysv/linux/adjtime.c: Use INT_MAX instead of LONG_MAX.
* sysdeps/unix/sysv/Makefile (sysdep_routines): Don't add s_getdents.
@@ -190,13 +211,13 @@ Wed Feb 14 00:21:17 1996 David Mosberger-Tang <davidm@azstarnet.com>
* sunrpc/svc.c (maskp): changed from u_long* to u_int32*.
+ * sunrpc/rpc/xdr.h (IXDR_GET_LONG, IXDR_PUT_LONG): change casts to
+ u_int32_t (instead of u_long).
+
* sunrpc/rpc_cmsg.c (xdr_callmsg), sunrpc/svc_authux.c: increment
"buf" pointer by casting it to a char* first since a long* may be 8
bytes or more and oa->oa_length may be any multiple of 4.
- * sunrpc/rpc/xdr.h (IXDR_GET_LONG, IXDR_PUT_LONG): change casts to
- u_int32_t (instead of u_long).
-
* sunrpc/clnt_udp.c (clntudp_call): replaced sizeof(u_long) by 4
since it really is testing for 32 bits. Fixed casts to use
u_int32 instead of u_long.
diff --git a/config.h.in b/config.h.in
index 52332be..35d865b 100644
--- a/config.h.in
+++ b/config.h.in
@@ -4,12 +4,19 @@
#undef HAVE_GNU_LD
/* Define if using ELF, which supports weak symbols.
- This implies HAVE_WEAK_SYMBOLS; set by --with-elf. */
+ This implies HAVE_ASM_WEAK_DIRECTIVE and NO_UNDERSCORES; set by
+ --with-elf. */
#undef HAVE_ELF
-/* Define if weak symbols are available in the assembler and
- linker being used. Set by --with-weak-symbols. */
-#undef HAVE_WEAK_SYMBOLS
+/* Define if C symbols are asm symbols. Don't define if C symbols
+ have a `_' prepended to make the asm symbol. */
+#undef NO_UNDERSCORES
+
+/* Define if weak symbols are available via the `.weak' directive. */
+#undef HAVE_ASM_WEAK_DIRECTIVE
+
+/* Define if weak symbols are available via the `.weakext' directive. */
+#undef HAVE_ASM_WEAKEXT_DIRECTIVE
/* Define if not using ELF, but `.init' and `.fini' sections are available. */
#undef HAVE_INITFINI
@@ -24,13 +31,6 @@
declaring a symbol global (default `.globl'). */
#undef ASM_GLOBAL_DIRECTIVE
-/* ELF has weak symbols, and with GNU ld a.out does too. */
-#ifndef HAVE_WEAK_SYMBOLS
-#if defined (HAVE_ELF) || defined (HAVE_GNU_LD)
-#define HAVE_WEAK_SYMBOLS
-#endif
-#endif
-
/* Define to use GNU libio instead of GNU stdio.
This is defined by configure under --enable-libio. */
#undef USE_IN_LIBIO
diff --git a/config.make.in b/config.make.in
index 2af925d..5057174 100644
--- a/config.make.in
+++ b/config.make.in
@@ -15,7 +15,6 @@ config-sysdirs = @sysnames@
config-defines = @DEFS@
elf = @elf@
-weak-symbols = @weak@
have-initfini = @libc_cv_have_initfini@
# Configuration options.
diff --git a/configure b/configure
index ce9930e..dc70be0 100755
--- a/configure
+++ b/configure
@@ -2,8 +2,8 @@
# From configure.in CVSid
# Guess values for system-dependent variables and create Makefiles.
-# Generated automatically using autoconf version 2.7
-# Copyright (C) 1992, 1993, 1994 Free Software Foundation, Inc.
+# Generated automatically using autoconf version 2.9
+# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc.
#
# This configure script is free software; the Free Software Foundation
# gives unlimited permission to copy, distribute and modify it.
@@ -27,8 +27,6 @@ ac_help="$ac_help
ac_help="$ac_help
--with-elf if using the ELF object format"
ac_help="$ac_help
- --with-weak-symbols if weak symbols are available in as and ld"
-ac_help="$ac_help
--enable-libio build in GNU libio instead of GNU stdio"
ac_help="$ac_help
--enable-shared build shared library [default=yes if GNU ld & ELF]"
@@ -355,7 +353,7 @@ EOF
verbose=yes ;;
-version | --version | --versio | --versi | --vers)
- echo "configure generated by autoconf version 2.7"
+ echo "configure generated by autoconf version 2.9"
exit 0 ;;
-with-* | --with-*)
@@ -620,14 +618,6 @@ else
elf=no
fi
-# Check whether --with-weak-symbols or --without-weak-symbols was given.
-if test "${with_weak_symbols+set}" = set; then
- withval="$with_weak_symbols"
- weak=$withval
-else
- weak=no
-fi
-
# Check whether --enable-libio or --disable-libio was given.
if test "${enable_libio+set}" = set; then
@@ -1147,13 +1137,13 @@ else
# On the NeXT, cc -E runs the code through the compiler's parser,
# not just through cpp.
cat > conftest.$ac_ext <<EOF
-#line 1151 "configure"
+#line 1141 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax Error
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1157: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1147: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out`
if test -z "$ac_err"; then
:
@@ -1162,13 +1152,13 @@ else
rm -rf conftest*
CPP="${CC-cc} -E -traditional-cpp"
cat > conftest.$ac_ext <<EOF
-#line 1166 "configure"
+#line 1156 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax Error
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1172: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1162: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out`
if test -z "$ac_err"; then
:
@@ -1217,7 +1207,7 @@ if eval "test \"`echo '$''{'libc_cv_friendly_stddef'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&4
else
cat > conftest.$ac_ext <<EOF
-#line 1221 "configure"
+#line 1211 "configure"
#include "confdefs.h"
#define __need_size_t
#define __need_wchar_t
@@ -1233,7 +1223,7 @@ size_t size; wchar_t wchar;
if (&size == NULL || &wchar == NULL) abort ();
; return 0; }
EOF
-if { (eval echo configure:1237: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1227: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
libc_cv_friendly_stddef=yes
else
@@ -1340,7 +1330,7 @@ if eval "test \"`echo '$''{'libc_cv_have_initfini'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&4
else
cat > conftest.$ac_ext <<EOF
-#line 1344 "configure"
+#line 1334 "configure"
#include "confdefs.h"
int main() { return 0; }
@@ -1349,7 +1339,7 @@ asm (".section .init");
asm (".section .fini");
; return 0; }
EOF
-if { (eval echo configure:1353: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1343: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
libc_cv_have_initfini=yes
else
@@ -1369,6 +1359,108 @@ EOF
fi
fi
+if test $elf = yes; then
+ libc_cv_asm_underscores=no
+else
+ echo $ac_n "checking for _ prefix on C symbol names""... $ac_c" 1>&4
+if eval "test \"`echo '$''{'libc_cv_asm_underscores'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&4
+else
+ cat > conftest.$ac_ext <<EOF
+#line 1371 "configure"
+#include "confdefs.h"
+asm ("_glibc_foobar:");
+int main() { return 0; }
+int t() {
+glibc_foobar ();
+; return 0; }
+EOF
+if { (eval echo configure:1379: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ rm -rf conftest*
+ libc_cv_asm_underscores=yes
+else
+ rm -rf conftest*
+ libc_cv_asm_underscores=no
+fi
+rm -f conftest*
+
+fi
+
+echo "$ac_t""$libc_cv_asm_underscores" 1>&4
+fi
+if test $libc_cv_asm_underscores = no; then
+ cat >> confdefs.h <<\EOF
+#define NO_UNDERSCORES 1
+EOF
+
+fi
+
+if test $elf = yes; then
+ libc_cv_weak_symbols=yes
+ libc_cv_asm_weak_directive=yes
+ libc_cv_asm_weakext_directive=no
+else
+ echo $ac_n "checking for assembler .weak directive""... $ac_c" 1>&4
+if eval "test \"`echo '$''{'libc_cv_asm_weak_directive'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&4
+else
+ cat > conftest.s <<EOF
+.text
+${libc_cv_asm_global_directive} foo
+foo: .long 0
+.weak foo
+.weak bar; bar = foo
+EOF
+ if ${CC-cc} $CFLAGS -c conftest.s 2>/dev/null; then
+ libc_cv_asm_weak_directive=yes
+ else
+ libc_cv_asm_weak_directive=no
+ fi
+ rm -f conftest*
+fi
+
+echo "$ac_t""$libc_cv_asm_weak_directive" 1>&4
+
+if $libc_cv_asm_weak_directive = no; then
+ echo $ac_n "checking for assembler .weakext directive""... $ac_c" 1>&4
+if eval "test \"`echo '$''{'libc_cv_asm_weakext_directive'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&4
+else
+ cat > conftest.s <<EOF
+.text
+${libc_cv_asm_global_directive} foo
+foo: .long 0
+.weakext foo
+.weak bar, foo
+EOF
+ if ${CC-cc} $CFLAGS -c conftest.s 2>/dev/null; then
+ libc_cv_asm_weakext_directive=yes
+ else
+ libc_cv_asm_weakext_directive=no
+ fi
+ rm -f conftest*
+fi
+
+echo "$ac_t""$libc_cv_asm_weakext_directive" 1>&4
+
+ fi # no .weak
+fi # not ELF
+
+if test $libc_cv_asm_weak_directive; then
+ cat >> confdefs.h <<\EOF
+#define HAVE_ASM_WEAK_DIRECTIVE 1
+EOF
+
+elif test $libc_cv_asm_weakext_directive; then
+ cat >> confdefs.h <<\EOF
+#define HAVE_ASM_WEAKEXT_DIRECTIVE 1
+EOF
+
+fi
+
+### End of automated tests.
+### Now run sysdeps configure fragments.
+
# sysdeps configure fragments may set these with files to be linked below.
libc_link_dests=
libc_link_sources=
@@ -1456,7 +1548,7 @@ default) stdio=stdio ;;
esac
echo "$ac_t""$stdio" 1>&4
-
+
if test $gnu_ld = yes; then
cat >> confdefs.h <<\EOF
#define HAVE_GNU_LD 1
@@ -1475,12 +1567,6 @@ if test $elf = yes; then
EOF
fi
-if test $weak = yes; then
- cat >> confdefs.h <<\EOF
-#define HAVE_WEAK_SYMBOLS 1
-EOF
-
-fi
if test $shared = default; then
@@ -1573,7 +1659,7 @@ do
echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion"
exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;;
-version | --version | --versio | --versi | --vers | --ver | --ve | --v)
- echo "$CONFIG_STATUS generated by autoconf version 2.7"
+ echo "$CONFIG_STATUS generated by autoconf version 2.9"
exit 0 ;;
-help | --help | --hel | --he | --h)
echo "\$ac_cs_usage"; exit 0 ;;
@@ -1639,7 +1725,6 @@ s%@stdio@%$stdio%g
s%@gnu_ld@%$gnu_ld%g
s%@gnu_as@%$gnu_as%g
s%@elf@%$elf%g
-s%@weak@%$weak%g
s%@shared@%$shared%g
s%@profile@%$profile%g
s%@omitfp@%$omitfp%g
@@ -1747,7 +1832,7 @@ rm -f conftest.vals
cat > conftest.hdr <<\EOF
s/[\\&%]/\\&/g
s%[\\$`]%\\&%g
-s%#define \([A-Za-z_][A-Za-z0-9_]*\) \(.*\)%${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD}%gp
+s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD}%gp
s%ac_d%ac_u%gp
s%ac_u%ac_e%gp
EOF
diff --git a/configure.in b/configure.in
index 4c9d881..d124e49 100644
--- a/configure.in
+++ b/configure.in
@@ -1,6 +1,6 @@
Dnl Process this file with autoconf to produce a configure script.
AC_REVISION([$CVSid$])
-AC_PREREQ(2.4.2)dnl dnl Minimum Autoconf version required.
+AC_PREREQ(2.9)dnl dnl Minimum Autoconf version required.
AC_INIT(features.h)
AC_CONFIG_HEADER(config.h)
@@ -49,9 +49,6 @@ test $gnu_binutils = yes && gnu_as=yes gnu_ld=yes
AC_ARG_WITH(elf, dnl
--with-elf if using the ELF object format,
elf=$withval, elf=no)
-AC_ARG_WITH(weak-symbols, dnl
- --with-weak-symbols if weak symbols are available in as and ld,
- weak=$withval, weak=no)
AC_ARG_ENABLE(libio, dnl
[ --enable-libio build in GNU libio instead of GNU stdio],
@@ -406,6 +403,69 @@ if test $elf != yes; then
fi
fi
+if test $elf = yes; then
+ libc_cv_asm_underscores=no
+else
+ AC_CACHE_CHECK(for _ prefix on C symbol names, libc_cv_asm_underscores,
+ [AC_TRY_COMPILE([asm ("_glibc_foobar:");], [glibc_foobar ();],
+ libc_cv_asm_underscores=yes,
+ libc_cv_asm_underscores=no)])
+fi
+if test $libc_cv_asm_underscores = no; then
+ AC_DEFINE(NO_UNDERSCORES)
+fi
+
+if test $elf = yes; then
+ libc_cv_weak_symbols=yes
+ libc_cv_asm_weak_directive=yes
+ libc_cv_asm_weakext_directive=no
+else
+ AC_CACHE_CHECK(for assembler .weak directive, libc_cv_asm_weak_directive,
+ [dnl
+cat > conftest.s <<EOF
+.text
+${libc_cv_asm_global_directive} foo
+foo: .long 0
+.weak foo
+.weak bar; bar = foo
+EOF
+ if ${CC-cc} $CFLAGS -c conftest.s 2>/dev/null; then
+ libc_cv_asm_weak_directive=yes
+ else
+ libc_cv_asm_weak_directive=no
+ fi
+ rm -f conftest*])
+
+if $libc_cv_asm_weak_directive = no; then
+ AC_CACHE_CHECK(for assembler .weakext directive,
+ libc_cv_asm_weakext_directive,
+ [dnl
+cat > conftest.s <<EOF
+.text
+${libc_cv_asm_global_directive} foo
+foo: .long 0
+.weakext foo
+.weak bar, foo
+EOF
+ if ${CC-cc} $CFLAGS -c conftest.s 2>/dev/null; then
+ libc_cv_asm_weakext_directive=yes
+ else
+ libc_cv_asm_weakext_directive=no
+ fi
+ rm -f conftest*])
+
+ fi # no .weak
+fi # not ELF
+
+if test $libc_cv_asm_weak_directive; then
+ AC_DEFINE(HAVE_ASM_WEAK_DIRECTIVE)
+elif test $libc_cv_asm_weakext_directive; then
+ AC_DEFINE(HAVE_ASM_WEAKEXT_DIRECTIVE)
+fi
+
+### End of automated tests.
+### Now run sysdeps configure fragments.
+
# sysdeps configure fragments may set these with files to be linked below.
libc_link_dests=
libc_link_sources=
@@ -498,7 +558,7 @@ default) stdio=stdio ;;
esac
AC_MSG_RESULT($stdio)
-AC_SUBST(gnu_ld) AC_SUBST(gnu_as) AC_SUBST(elf) AC_SUBST(weak)
+AC_SUBST(gnu_ld) AC_SUBST(gnu_as) AC_SUBST(elf)
if test $gnu_ld = yes; then
AC_DEFINE(HAVE_GNU_LD)
fi
@@ -508,9 +568,6 @@ fi
if test $elf = yes; then
AC_DEFINE(HAVE_ELF)
fi
-if test $weak = yes; then
- AC_DEFINE(HAVE_WEAK_SYMBOLS)
-fi
AC_SUBST(shared)
if test $shared = default; then
diff --git a/inet/arpa/inet.h b/inet/arpa/inet.h
index a231484..2413dcf 100644
--- a/inet/arpa/inet.h
+++ b/inet/arpa/inet.h
@@ -39,14 +39,15 @@
/* External definitions for functions in inet(3) */
#include <sys/cdefs.h>
+#include <sys/types.h>
__BEGIN_DECLS
-unsigned long inet_addr __P((const char *));
+u_int32_t inet_addr __P((const char *));
int inet_aton __P((const char *, struct in_addr *));
-unsigned long inet_lnaof __P((struct in_addr));
-struct in_addr inet_makeaddr __P((u_long , u_long));
-unsigned long inet_netof __P((struct in_addr));
-unsigned long inet_network __P((const char *));
+u_int32_t inet_lnaof __P((struct in_addr));
+struct in_addr inet_makeaddr __P((u_int32_t , u_int32_t));
+u_int32_t inet_netof __P((struct in_addr));
+u_int32_t inet_network __P((const char *));
char *inet_ntoa __P((struct in_addr));
__END_DECLS
diff --git a/inet/inet_lnaof.c b/inet/inet_lnaof.c
index 406be30..cd5ef29 100644
--- a/inet/inet_lnaof.c
+++ b/inet/inet_lnaof.c
@@ -44,11 +44,11 @@ static char sccsid[] = "@(#)inet_lnaof.c 8.1 (Berkeley) 6/4/93";
* internet address; handles class a/b/c network
* number formats.
*/
-u_long
+u_int32_t
inet_lnaof(in)
struct in_addr in;
{
- register u_long i = ntohl(in.s_addr);
+ register u_int32_t i = ntohl(in.s_addr);
if (IN_CLASSA(i))
return ((i)&IN_CLASSA_HOST);
diff --git a/inet/inet_mkadr.c b/inet/inet_mkadr.c
index 7976188..7f26074 100644
--- a/inet/inet_mkadr.c
+++ b/inet/inet_mkadr.c
@@ -45,9 +45,9 @@ static char sccsid[] = "@(#)inet_makeaddr.c 8.1 (Berkeley) 6/4/93";
*/
struct in_addr
inet_makeaddr(net, host)
- u_long net, host;
+ u_int32_t net, host;
{
- u_long addr;
+ u_int32_t addr;
if (net < 128)
addr = (net << IN_CLASSA_NSHIFT) | (host & IN_CLASSA_HOST);
diff --git a/inet/inet_net.c b/inet/inet_net.c
index fda53b6..cfaadd7 100644
--- a/inet/inet_net.c
+++ b/inet/inet_net.c
@@ -45,13 +45,13 @@ static char sccsid[] = "@(#)inet_network.c 8.1 (Berkeley) 6/4/93";
* The library routines call this routine to interpret
* network numbers.
*/
-u_long
+u_int32_t
inet_network(cp)
register const char *cp;
{
- register u_long val, base, n;
+ register u_int32_t val, base, n;
register char c;
- u_long parts[4], *pp = parts;
+ u_int32_t parts[4], *pp = parts;
register int i;
again:
diff --git a/inet/inet_netof.c b/inet/inet_netof.c
index d6de694..40cbc0e 100644
--- a/inet/inet_netof.c
+++ b/inet/inet_netof.c
@@ -43,11 +43,11 @@ static char sccsid[] = "@(#)inet_netof.c 8.1 (Berkeley) 6/4/93";
* Return the network number from an internet
* address; handles class a/b/c network #'s.
*/
-u_long
+u_int32_t
inet_netof(in)
struct in_addr in;
{
- register u_long i = ntohl(in.s_addr);
+ register u_int32_t i = ntohl(in.s_addr);
if (IN_CLASSA(i))
return (((i)&IN_CLASSA_NET) >> IN_CLASSA_NSHIFT);
diff --git a/inet/netinet/in.h b/inet/netinet/in.h
index 609edf8..a135cf2 100644
--- a/inet/netinet/in.h
+++ b/inet/netinet/in.h
@@ -89,7 +89,7 @@ enum
/* Internet address. */
struct in_addr
{
- unsigned long int s_addr;
+ unsigned int s_addr;
};
@@ -98,33 +98,33 @@ struct in_addr
On subnets, host and network parts are found according to
the subnet mask, not these masks. */
-#define IN_CLASSA(a) ((((long int) (a)) & 0x80000000) == 0)
+#define IN_CLASSA(a) ((((unsigned) (a)) & 0x80000000) == 0)
#define IN_CLASSA_NET 0xff000000
#define IN_CLASSA_NSHIFT 24
#define IN_CLASSA_HOST (0xffffffff & ~IN_CLASSA_NET)
#define IN_CLASSA_MAX 128
-#define IN_CLASSB(a) ((((long int) (a)) & 0xc0000000) == 0x80000000)
+#define IN_CLASSB(a) ((((unsigned) (a)) & 0xc0000000) == 0x80000000)
#define IN_CLASSB_NET 0xffff0000
#define IN_CLASSB_NSHIFT 16
#define IN_CLASSB_HOST (0xffffffff & ~IN_CLASSB_NET)
#define IN_CLASSB_MAX 65536
-#define IN_CLASSC(a) ((((long int) (a)) & 0xc0000000) == 0xc0000000)
+#define IN_CLASSC(a) ((((unsigned) (a)) & 0xc0000000) == 0xc0000000)
#define IN_CLASSC_NET 0xffffff00
#define IN_CLASSC_NSHIFT 8
#define IN_CLASSC_HOST (0xffffffff & ~IN_CLASSC_NET)
-#define IN_CLASSD(a) ((((long int) (a)) & 0xf0000000) == 0xe0000000)
+#define IN_CLASSD(a) ((((unsigned) (a)) & 0xf0000000) == 0xe0000000)
#define IN_MULTICAST(a) IN_CLASSD(a)
-#define IN_EXPERIMENTAL(a) ((((long int) (a)) & 0xe0000000) == 0xe0000000)
-#define IN_BADCLASS(a) ((((long int) (a)) & 0xf0000000) == 0xf0000000)
+#define IN_EXPERIMENTAL(a) ((((unsigned) (a)) & 0xe0000000) == 0xe0000000)
+#define IN_BADCLASS(a) ((((unsigned) (a)) & 0xf0000000) == 0xf0000000)
/* Address to accept any incoming messages. */
-#define INADDR_ANY ((unsigned long int) 0x00000000)
+#define INADDR_ANY ((unsigned) 0x00000000)
/* Address to send to all hosts. */
-#define INADDR_BROADCAST ((unsigned long int) 0xffffffff)
+#define INADDR_BROADCAST ((unsigned) 0xffffffff)
/* Address indicating an error return. */
#define INADDR_NONE 0xffffffff
diff --git a/inet/netinet/tcp.h b/inet/netinet/tcp.h
index 6b77ff6..bc821e1 100644
--- a/inet/netinet/tcp.h
+++ b/inet/netinet/tcp.h
@@ -33,7 +33,7 @@
* @(#)tcp.h 8.1 (Berkeley) 6/10/93
*/
-typedef u_long tcp_seq;
+typedef unsigned int tcp_seq;
/*
* TCP header.
* Per RFC 793, September, 1981.
diff --git a/inet/protocols/rwhod.h b/inet/protocols/rwhod.h
index 93008a4..4ce4490 100644
--- a/inet/protocols/rwhod.h
+++ b/inet/protocols/rwhod.h
@@ -36,13 +36,15 @@
#ifndef _RWHOD_H_
#define _RWHOD_H_
+#include <sys/types.h>
+
/*
* rwho protocol packet format.
*/
struct outmp {
char out_line[8]; /* tty name */
char out_name[8]; /* user id */
- long out_time; /* time on */
+ int32_t out_time; /* time on */
};
struct whod {
diff --git a/inet/protocols/talkd.h b/inet/protocols/talkd.h
index 0d30d5b..c523bf5 100644
--- a/inet/protocols/talkd.h
+++ b/inet/protocols/talkd.h
@@ -54,6 +54,8 @@
* stream connection through which the conversation takes place.
*/
+#include <sys/types.h>
+
/*
* Client->server request message format.
*/
@@ -62,10 +64,10 @@ typedef struct {
u_char type; /* request type, see below */
u_char answer; /* not used */
u_char pad;
- u_long id_num; /* message id */
+ u_int32_t id_num; /* message id */
struct osockaddr addr; /* old (4.3) style */
struct osockaddr ctl_addr; /* old (4.3) style */
- long pid; /* caller's process id */
+ int32_t pid; /* caller's process id */
#define NAME_SIZE 12
char l_name[NAME_SIZE];/* caller's name */
char r_name[NAME_SIZE];/* callee's name */
@@ -81,7 +83,7 @@ typedef struct {
u_char type; /* type of request message, see below */
u_char answer; /* respose to request message, see below */
u_char pad;
- u_long id_num; /* message id */
+ u_int32_t id_num; /* message id */
struct osockaddr addr; /* address for establishing conversation */
} CTL_RESPONSE;
diff --git a/inet/rcmd.c b/inet/rcmd.c
index ae6e0b6..7a29db2 100644
--- a/inet/rcmd.c
+++ b/inet/rcmd.c
@@ -52,8 +52,8 @@ static char sccsid[] = "@(#)rcmd.c 8.3 (Berkeley) 3/26/94";
#include <ctype.h>
#include <string.h>
-int __ivaliduser __P((FILE *, u_long, const char *, const char *));
-static int __icheckhost __P((u_long, char *));
+int __ivaliduser __P((FILE *, u_int32_t, const char *, const char *));
+static int __icheckhost __P((u_int32_t, char *));
int
rcmd(ahost, rport, locuser, remuser, cmd, fd2p)
@@ -65,7 +65,7 @@ rcmd(ahost, rport, locuser, remuser, cmd, fd2p)
struct hostent *hp;
struct sockaddr_in sin, from;
fd_set reads;
- long oldmask;
+ int32_t oldmask;
pid_t pid;
int s, lport, timo;
char c;
@@ -242,7 +242,7 @@ ruserok(rhost, superuser, ruser, luser)
int superuser;
{
struct hostent *hp;
- u_long addr;
+ u_int32_t addr;
char **ap;
if ((hp = gethostbyname(rhost)) == NULL)
@@ -266,7 +266,7 @@ ruserok(rhost, superuser, ruser, luser)
*/
int
iruserok(raddr, superuser, ruser, luser)
- u_long raddr;
+ u_int32_t raddr;
int superuser;
const char *ruser, *luser;
{
@@ -347,7 +347,7 @@ again:
int
__ivaliduser(hostf, raddr, luser, ruser)
FILE *hostf;
- u_long raddr;
+ u_int32_t raddr;
const char *luser, *ruser;
{
register char *user, *p;
@@ -389,15 +389,15 @@ __ivaliduser(hostf, raddr, luser, ruser)
*/
static int
__icheckhost(raddr, lhost)
- u_long raddr;
+ u_int32_t raddr;
register char *lhost;
{
register struct hostent *hp;
- register u_long laddr;
+ register u_int32_t laddr;
register char **pp;
/* Try for raw ip address first. */
- if (isdigit(*lhost) && (long)(laddr = inet_addr(lhost)) != -1)
+ if (isdigit(*lhost) && (int32_t)(laddr = inet_addr(lhost)) != -1)
return (raddr == laddr);
/* Better be a hostname. */
@@ -406,7 +406,7 @@ __icheckhost(raddr, lhost)
/* Spin through ip addresses. */
for (pp = hp->h_addr_list; *pp; ++pp)
- if (!bcmp(&raddr, *pp, sizeof(u_long)))
+ if (!bcmp(&raddr, *pp, sizeof(u_int32_t)))
return (1);
/* No match. */
diff --git a/libc-symbols.h b/libc-symbols.h
index bb5f54e..f7231f9 100644
--- a/libc-symbols.h
+++ b/libc-symbols.h
@@ -27,14 +27,13 @@ Cambridge, MA 02139, USA. */
We include config.h which is generated by configure.
It should define for us the following symbols:
+ * HAVE_ASM_SET_DIRECTIVE if we have `.set B, A' instead of `A = B'.
+ * ASM_GLOBAL_DIRECTIVE with `.globl' or `.global'.
* HAVE_GNU_LD if using GNU ld, with support for weak symbols in a.out,
and for symbol set and warning messages extensions in a.out and ELF.
- This implies HAVE_WEAK_SYMBOLS; set by --with-gnu-ld.
- * HAVE_ELF if using ELF, which supports weak symbols.
- This implies HAVE_WEAK_SYMBOLS; set by --with-elf.
-
- * HAVE_WEAK_SYMBOLS if weak symbols are available in the assembler and
- linker being used. Set by --with-weak-symbols.
+ * HAVE_ELF if using ELF, which supports weak symbols using `.weak'.
+ * HAVE_ASM_WEAK_DIRECTIVE if we have weak symbols using `.weak'.
+ * HAVE_ASM_WEAKEXT_DIRECTIVE if we have weak symbols using `.weakext'.
*/
@@ -79,23 +78,14 @@ extern const char _libc_intl_domainname[];
/*
*/
-/* The symbols in all the user (non-_) macros are C symbols. Predefined
- should be HAVE_WEAK_SYMBOLS and/or HAVE_ELF and/or HAVE_GNU_LD.
- HAVE_WEAK_SYMBOLS is implied by the other two. HAVE_GNU_LD without
- HAVE_ELF implies a.out. */
+/* The symbols in all the user (non-_) macros are C symbols.
+ HAVE_GNU_LD without HAVE_ELF implies a.out. */
-#ifndef HAVE_WEAK_SYMBOLS
-#if defined (HAVE_ELF) || defined (HAVE_GNU_LD)
+#if defined (HAVE_ASM_WEAK_DIRECTIVE) || defined (HAVE_ASM_WEAKEXT_DIRECTIVE)
#define HAVE_WEAK_SYMBOLS
#endif
-#endif
#ifndef __SYMBOL_PREFIX
-#ifdef HAVE_ELF
-#define NO_UNDERSCORES
-#else
-#include <sysdep.h> /* Should define NO_UNDERSCORES. */
-#endif
#ifdef NO_UNDERSCORES
#define __SYMBOL_PREFIX
#else
@@ -143,8 +133,21 @@ extern const char _libc_intl_domainname[];
#ifdef HAVE_WEAK_SYMBOLS
+
#ifdef ASSEMBLER
+#ifdef HAVE_ASM_WEAKEXT_DIRECTIVE
+
+/* Define ALIAS as a weak alias for ORIGINAL.
+ If weak aliases are not available, this defines a strong alias. */
+#define weak_alias(original, alias) \
+ .weakext C_SYMBOL_NAME (alias), C_SYMBOL_NAME (original)
+
+/* Declare SYMBOL to be weak. */
+#define weak_symbol(symbol) .weakext C_SYMBOL_NAME (symbol)
+
+#else /* ! HAVE_ASM_WEAKEXT_DIRECTIVE */
+
/* Define ALIAS as a weak alias for ORIGINAL.
If weak aliases are not available, this defines a strong alias. */
#define weak_alias(original, alias) \
@@ -154,12 +157,21 @@ extern const char _libc_intl_domainname[];
/* Declare SYMBOL to be weak. */
#define weak_symbol(symbol) .weak C_SYMBOL_NAME (symbol)
-#else
+#endif /* ! HAVE_ASM_WEAKEXT_DIRECTIVE */
+
+#else /* ! ASSEMBLER */
+
+#ifdef HAVE_ASM_WEAKEXT_DIRECTIVE
+#define weak_symbol(symbol) asm (".weakext " __SYMBOL_PREFIX #symbol);
+#define weak_alias(original, alias) \
+ asm (".weakext " __SYMBOL_PREFIX #alias ", " __SYMBOL_PREFIX #original);
+#else /* ! HAVE_ASM_WEAKEXT_DIRECTIVE */
#define weak_symbol(symbol) asm (".weak " __SYMBOL_PREFIX #symbol);
#define weak_alias(original, alias) \
asm (".weak " __SYMBOL_PREFIX #alias "\n" \
__SYMBOL_PREFIX #alias " = " __SYMBOL_PREFIX #original);
-#endif
+#endif /* ! HAVE_ASM_WEAKEXT_DIRECTIVE */
+#endif /* ! ASSEMBLER */
#else
#define weak_alias(original, alias) strong_alias(original, alias)
#define weak_symbol(symbol) /* Do nothing. */
diff --git a/resolv/inet_addr.c b/resolv/inet_addr.c
index 01a38e6..bcf7f0d 100644
--- a/resolv/inet_addr.c
+++ b/resolv/inet_addr.c
@@ -70,7 +70,7 @@ static char rcsid[] = "$Id$";
* Ascii internet address interpretation routine.
* The value returned is in network order.
*/
-u_long
+u_int32_t
inet_addr(cp)
register const char *cp;
{
@@ -93,7 +93,7 @@ inet_aton(cp, addr)
register const char *cp;
struct in_addr *addr;
{
- register u_long val;
+ register u_int32_t val;
register int base, n;
register char c;
u_int parts[4];
diff --git a/sunrpc/rpc/auth.h b/sunrpc/rpc/auth.h
index cb19555..5f7c7f8 100644
--- a/sunrpc/rpc/auth.h
+++ b/sunrpc/rpc/auth.h
@@ -62,14 +62,10 @@ enum auth_stat {
AUTH_FAILED=7 /* some unknown reason */
};
-#if 1 /* (mc68000 || sparc || vax || i386) --roland@gnu */
-typedef u_long u_int32; /* 32-bit unsigned integers */
-#endif
-
union des_block {
struct {
- u_int32 high;
- u_int32 low;
+ u_int32_t high;
+ u_int32_t low;
} key;
char c[8];
};
diff --git a/sunrpc/svc_authux.c b/sunrpc/svc_authux.c
index ea00b78..1b766d4 100644
--- a/sunrpc/svc_authux.c
+++ b/sunrpc/svc_authux.c
@@ -83,7 +83,7 @@ _svcauth_unix(rqst, msg)
bcopy((caddr_t)buf, aup->aup_machname, (u_int)str_len);
aup->aup_machname[str_len] = 0;
str_len = RNDUP(str_len);
- buf += str_len / sizeof (long);
+ buf = (u_long *) ((char *) buf + str_len);
aup->aup_uid = IXDR_GET_LONG(buf);
aup->aup_gid = IXDR_GET_LONG(buf);
gid_len = IXDR_GET_U_LONG(buf);
diff --git a/sunrpc/xdr_rec.c b/sunrpc/xdr_rec.c
index 4d0d4ec..4543595 100644
--- a/sunrpc/xdr_rec.c
+++ b/sunrpc/xdr_rec.c
@@ -42,7 +42,7 @@ static char sccsid[] = "@(#)xdr_rec.c 1.21 87/08/11 Copyr 1984 Sun Micro";
* and the tcp transport level. A record is composed on one or more
* record fragments. A record fragment is a thirty-two bit header followed
* by n bytes of data, where n is contained in the header. The header
- * is represented as a htonl(u_long). Thegh order bit encodes
+ * is represented as a htonl(u_long). The high order bit encodes
* whether or not the fragment is the last fragment of the record
* (1 => fragment is last, 0 => more fragments to follow.
* The other 31 bits encode the byte length of the fragment.
@@ -90,7 +90,7 @@ static struct xdr_ops xdrrec_ops = {
* meet the needs of xdr and rpc based on tcp.
*/
-#define LAST_FRAG ((u_long)(1 << 31))
+#define LAST_FRAG (1UL << 31)
typedef struct rec_strm {
caddr_t tcp_handle;
@@ -102,7 +102,7 @@ typedef struct rec_strm {
caddr_t out_base; /* output buffer (points to frag header) */
caddr_t out_finger; /* next output position */
caddr_t out_boundry; /* data cannot up to this address */
- u_long *frag_header; /* beginning of curren fragment */
+ u_int32_t *frag_header; /* beginning of curren fragment */
bool_t frag_sent; /* true if buffer sent in middle of record */
/*
* in-coming bits
@@ -171,8 +171,8 @@ xdrrec_create(xdrs, sendsize, recvsize, tcp_handle, readit, writeit)
rstrm->readit = readit;
rstrm->writeit = writeit;
rstrm->out_finger = rstrm->out_boundry = rstrm->out_base;
- rstrm->frag_header = (u_long *)rstrm->out_base;
- rstrm->out_finger += sizeof(u_long);
+ rstrm->frag_header = (u_int32_t *)rstrm->out_base;
+ rstrm->out_finger += 4;
rstrm->out_boundry += sendsize;
rstrm->frag_sent = FALSE;
rstrm->in_size = recvsize;
@@ -193,22 +193,24 @@ xdrrec_getlong(xdrs, lp)
XDR *xdrs;
long *lp;
{
- register RECSTREAM *rstrm = (RECSTREAM *)(xdrs->x_private);
- register long *buflp = (long *)(rstrm->in_finger);
- long mylong;
+ register RECSTREAM *rstrm = (RECSTREAM *) xdrs->x_private;
+ register int32_t *buflp = (int32_t *) rstrm->in_finger;
+ int32_t mylong;
/* first try the inline, fast case */
- if ((rstrm->fbtbc >= sizeof(long)) &&
- (((int)rstrm->in_boundry - (int)buflp) >= sizeof(long))) {
- *lp = (long)ntohl((u_long)(*buflp));
- rstrm->fbtbc -= sizeof(long);
- rstrm->in_finger += sizeof(long);
+ if (rstrm->fbtbc >= BYTES_PER_XDR_UNIT &&
+ rstrm->in_boundry - (char *) buflp >= BYTES_PER_XDR_UNIT)
+ {
+ *lp = ntohl(*buflp);
+ rstrm->fbtbc -= BYTES_PER_XDR_UNIT;
+ rstrm->in_finger += BYTES_PER_XDR_UNIT;
} else {
- if (! xdrrec_getbytes(xdrs, (caddr_t)&mylong, sizeof(long)))
- return (FALSE);
- *lp = (long)ntohl((u_long)mylong);
+ if (! xdrrec_getbytes(xdrs, (caddr_t) &mylong,
+ BYTES_PER_XDR_UNIT))
+ return FALSE;
+ *lp = ntohl(mylong);
}
- return (TRUE);
+ return TRUE;
}
static bool_t
@@ -216,23 +218,23 @@ xdrrec_putlong(xdrs, lp)
XDR *xdrs;
long *lp;
{
- register RECSTREAM *rstrm = (RECSTREAM *)(xdrs->x_private);
- register long *dest_lp = ((long *)(rstrm->out_finger));
+ register RECSTREAM *rstrm = (RECSTREAM *) xdrs->x_private;
+ register int32_t *dest_lp = (int32_t *) rstrm->out_finger;
- if ((rstrm->out_finger += sizeof(long)) > rstrm->out_boundry) {
+ if ((rstrm->out_finger += BYTES_PER_XDR_UNIT) > rstrm->out_boundry) {
/*
* this case should almost never happen so the code is
* inefficient
*/
- rstrm->out_finger -= sizeof(long);
+ rstrm->out_finger -= BYTES_PER_XDR_UNIT;
rstrm->frag_sent = TRUE;
if (! flush_out(rstrm, FALSE))
- return (FALSE);
- dest_lp = ((long *)(rstrm->out_finger));
- rstrm->out_finger += sizeof(long);
+ return FALSE;
+ dest_lp = (int32_t *) rstrm->out_finger;
+ rstrm->out_finger += BYTES_PER_XDR_UNIT;
}
- *dest_lp = (long)htonl((u_long)(*lp));
- return (TRUE);
+ *dest_lp = htonl(*lp);
+ return TRUE;
}
static bool_t /* must manage buffers, fragments, and records */
@@ -241,26 +243,26 @@ xdrrec_getbytes(xdrs, addr, len)
register caddr_t addr;
register u_int len;
{
- register RECSTREAM *rstrm = (RECSTREAM *)(xdrs->x_private);
+ register RECSTREAM *rstrm = (RECSTREAM *) xdrs->x_private;
register int current;
while (len > 0) {
current = rstrm->fbtbc;
if (current == 0) {
if (rstrm->last_frag)
- return (FALSE);
+ return FALSE;
if (! set_input_fragment(rstrm))
- return (FALSE);
+ return FALSE;
continue;
}
current = (len < current) ? len : current;
if (! get_input_bytes(rstrm, addr, current))
- return (FALSE);
+ return FALSE;
addr += current;
rstrm->fbtbc -= current;
len -= current;
}
- return (TRUE);
+ return TRUE;
}
static bool_t
@@ -269,11 +271,11 @@ xdrrec_putbytes(xdrs, addr, len)
register caddr_t addr;
register u_int len;
{
- register RECSTREAM *rstrm = (RECSTREAM *)(xdrs->x_private);
+ register RECSTREAM *rstrm = (RECSTREAM *) xdrs->x_private;
register int current;
while (len > 0) {
- current = (u_int)rstrm->out_boundry - (u_int)rstrm->out_finger;
+ current = rstrm->out_boundry - rstrm->out_finger;
current = (len < current) ? len : current;
bcopy(addr, rstrm->out_finger, current);
rstrm->out_finger += current;
@@ -282,10 +284,10 @@ xdrrec_putbytes(xdrs, addr, len)
if (rstrm->out_finger == rstrm->out_boundry) {
rstrm->frag_sent = TRUE;
if (! flush_out(rstrm, FALSE))
- return (FALSE);
+ return FALSE;
}
}
- return (TRUE);
+ return TRUE;
}
static u_int
@@ -319,7 +321,7 @@ xdrrec_setpos(xdrs, pos)
register XDR *xdrs;
u_int pos;
{
- register RECSTREAM *rstrm = (RECSTREAM *)xdrs->x_private;
+ register RECSTREAM *rstrm = (RECSTREAM *) xdrs->x_private;
u_int currpos = xdrrec_getpos(xdrs);
int delta = currpos - pos;
caddr_t newpos;
@@ -329,10 +331,11 @@ xdrrec_setpos(xdrs, pos)
case XDR_ENCODE:
newpos = rstrm->out_finger - delta;
- if ((newpos > (caddr_t)(rstrm->frag_header)) &&
- (newpos < rstrm->out_boundry)) {
+ if (newpos > (caddr_t) rstrm->frag_header &&
+ newpos < rstrm->out_boundry)
+ {
rstrm->out_finger = newpos;
- return (TRUE);
+ return TRUE;
}
break;
@@ -343,11 +346,11 @@ xdrrec_setpos(xdrs, pos)
(newpos >= rstrm->in_base)) {
rstrm->in_finger = newpos;
rstrm->fbtbc -= delta;
- return (TRUE);
+ return TRUE;
}
break;
}
- return (FALSE);
+ return FALSE;
}
static long *
@@ -355,7 +358,7 @@ xdrrec_inline(xdrs, len)
register XDR *xdrs;
int len;
{
- register RECSTREAM *rstrm = (RECSTREAM *)xdrs->x_private;
+ register RECSTREAM *rstrm = (RECSTREAM *) xdrs->x_private;
long * buf = NULL;
switch (xdrs->x_op) {
@@ -376,7 +379,7 @@ xdrrec_inline(xdrs, len)
}
break;
}
- return (buf);
+ return buf;
}
static void
@@ -403,17 +406,17 @@ bool_t
xdrrec_skiprecord(xdrs)
XDR *xdrs;
{
- register RECSTREAM *rstrm = (RECSTREAM *)(xdrs->x_private);
+ register RECSTREAM *rstrm = (RECSTREAM *) xdrs->x_private;
while (rstrm->fbtbc > 0 || (! rstrm->last_frag)) {
if (! skip_input_bytes(rstrm, rstrm->fbtbc))
- return (FALSE);
+ return FALSE;
rstrm->fbtbc = 0;
if ((! rstrm->last_frag) && (! set_input_fragment(rstrm)))
- return (FALSE);
+ return FALSE;
}
rstrm->last_frag = FALSE;
- return (TRUE);
+ return TRUE;
}
/*
@@ -425,18 +428,18 @@ bool_t
xdrrec_eof(xdrs)
XDR *xdrs;
{
- register RECSTREAM *rstrm = (RECSTREAM *)(xdrs->x_private);
+ register RECSTREAM *rstrm = (RECSTREAM *) xdrs->x_private;
while (rstrm->fbtbc > 0 || (! rstrm->last_frag)) {
if (! skip_input_bytes(rstrm, rstrm->fbtbc))
- return (TRUE);
+ return TRUE;
rstrm->fbtbc = 0;
if ((! rstrm->last_frag) && (! set_input_fragment(rstrm)))
- return (TRUE);
+ return TRUE;
}
if (rstrm->in_finger == rstrm->in_boundry)
- return (TRUE);
- return (FALSE);
+ return TRUE;
+ return FALSE;
}
/*
@@ -450,21 +453,21 @@ xdrrec_endofrecord(xdrs, sendnow)
XDR *xdrs;
bool_t sendnow;
{
- register RECSTREAM *rstrm = (RECSTREAM *)(xdrs->x_private);
+ register RECSTREAM *rstrm = (RECSTREAM *) xdrs->x_private;
register u_long len; /* fragment length */
- if (sendnow || rstrm->frag_sent ||
- ((u_long)rstrm->out_finger + sizeof(u_long) >=
- (u_long)rstrm->out_boundry)) {
+ if (sendnow || rstrm->frag_sent
+ || rstrm->out_finger + BYTES_PER_XDR_UNIT >= rstrm->out_boundry)
+ {
rstrm->frag_sent = FALSE;
- return (flush_out(rstrm, TRUE));
+ return flush_out(rstrm, TRUE);
}
- len = (u_long)(rstrm->out_finger) - (u_long)(rstrm->frag_header) -
- sizeof(u_long);
- *(rstrm->frag_header) = htonl((u_long)len | LAST_FRAG);
- rstrm->frag_header = (u_long *)rstrm->out_finger;
- rstrm->out_finger += sizeof(u_long);
- return (TRUE);
+ len = (rstrm->out_finger - (char *) rstrm->frag_header
+ - BYTES_PER_XDR_UNIT);
+ *rstrm->frag_header = htonl((u_long)len | LAST_FRAG);
+ rstrm->frag_header = (u_int32_t *) rstrm->out_finger;
+ rstrm->out_finger += BYTES_PER_XDR_UNIT;
+ return TRUE;
}
@@ -477,17 +480,18 @@ flush_out(rstrm, eor)
bool_t eor;
{
register u_long eormask = (eor == TRUE) ? LAST_FRAG : 0;
- register u_long len = (u_long)(rstrm->out_finger) -
- (u_long)(rstrm->frag_header) - sizeof(u_long);
+ register u_long len = (rstrm->out_finger
+ - (char *) rstrm->frag_header
+ - BYTES_PER_XDR_UNIT);
- *(rstrm->frag_header) = htonl(len | eormask);
- len = (u_long)(rstrm->out_finger) - (u_long)(rstrm->out_base);
+ *rstrm->frag_header = htonl(len | eormask);
+ len = rstrm->out_finger - rstrm->out_base;
if ((*(rstrm->writeit))(rstrm->tcp_handle, rstrm->out_base, (int)len)
!= (int)len)
- return (FALSE);
- rstrm->frag_header = (u_long *)rstrm->out_base;
- rstrm->out_finger = (caddr_t)rstrm->out_base + sizeof(u_long);
- return (TRUE);
+ return FALSE;
+ rstrm->frag_header = (u_int32_t *) rstrm->out_base;
+ rstrm->out_finger = (caddr_t) rstrm->out_base + BYTES_PER_XDR_UNIT;
+ return TRUE;
}
static bool_t /* knows nothing about records! Only about input buffers */
@@ -503,11 +507,11 @@ fill_input_buf(rstrm)
where += i;
len = rstrm->in_size - i;
if ((len = (*(rstrm->readit))(rstrm->tcp_handle, where, len)) == -1)
- return (FALSE);
+ return FALSE;
rstrm->in_finger = where;
where += len;
rstrm->in_boundry = where;
- return (TRUE);
+ return TRUE;
}
static bool_t /* knows nothing about records! Only about input buffers */
@@ -519,10 +523,10 @@ get_input_bytes(rstrm, addr, len)
register int current;
while (len > 0) {
- current = (int)rstrm->in_boundry - (int)rstrm->in_finger;
+ current = rstrm->in_boundry - rstrm->in_finger;
if (current == 0) {
if (! fill_input_buf(rstrm))
- return (FALSE);
+ return FALSE;
continue;
}
current = (len < current) ? len : current;
@@ -531,7 +535,7 @@ get_input_bytes(rstrm, addr, len)
addr += current;
len -= current;
}
- return (TRUE);
+ return TRUE;
}
static bool_t /* next two bytes of the input stream are treated as a header */
@@ -540,12 +544,12 @@ set_input_fragment(rstrm)
{
u_long header;
- if (! get_input_bytes(rstrm, (caddr_t)&header, sizeof(header)))
- return (FALSE);
- header = (long)ntohl(header);
+ if (! get_input_bytes(rstrm, (caddr_t)&header, BYTES_PER_XDR_UNIT))
+ return FALSE;
+ header = ntohl(header);
rstrm->last_frag = ((header & LAST_FRAG) == 0) ? FALSE : TRUE;
- rstrm->fbtbc = header & (~LAST_FRAG);
- return (TRUE);
+ rstrm->fbtbc = header & ~LAST_FRAG;
+ return TRUE;
}
static bool_t /* consumes input bytes; knows nothing about records! */
@@ -556,17 +560,17 @@ skip_input_bytes(rstrm, cnt)
register int current;
while (cnt > 0) {
- current = (int)rstrm->in_boundry - (int)rstrm->in_finger;
+ current = rstrm->in_boundry - rstrm->in_finger;
if (current == 0) {
if (! fill_input_buf(rstrm))
- return (FALSE);
+ return FALSE;
continue;
}
current = (cnt < current) ? cnt : current;
rstrm->in_finger += current;
cnt -= current;
}
- return (TRUE);
+ return TRUE;
}
static u_int
@@ -576,5 +580,5 @@ fix_buf_size(s)
if (s < 100)
s = 4000;
- return (RNDUP(s));
+ return RNDUP(s);
}