1997-05-22 04:09  Ulrich Drepper  <drepper@cygnus.com>

	* sunrpc/clnt_perr.c (clnt_sperrno): Change type of variable i
	to size_t to prevent warning.
	* sunrpc/rpcinfo.c (get_inet_address): Use UNADDR_NONE and INADDR_ANY
	instead of numeric values.
	Various cleanups.
	* sunrpc/xdr_mem.c: Use `const char *' instead of `const caddr_t'
	for xdrmem_putbytes.
	* sunrpc/xdr_rec.c: Likewise.
	* sunrpc/xdr_stdio.c: Likewise.
	* sunrpc/rpc/xdr.h: Likewise.

	* sysdeps/unix/sysv/linux/arm/syscall.s: Pretty printing.
	* sysdeps/unix/sysv/linux/arm/sysdep.h: Likewise.
	* sysdeps/unix/sysv/linux/i386/sysdep.h: Likewise.

1997-05-21 22:22  Philip Blundell  <pjb27@cam.ac.uk>

	* inet/Makefile (headers): Add netinet/ip6.h, netinet/icmp6.h.
	* sysdeps/generic/netinet/ip6.h: New file (for IPv6 Advanced API).
	* sysdeps/generic/netinet/icmp6.h: Likewise.
	* sysdeps/unix/sysv/linux/netinet/in.h: Fix typo.
	* sysdeps/stub/direntry.h (struct dirent): Add d_fileno (needed by
	glob.c).
	* sysdeps/standalone/arm/errnos.h: Add EPROTOTYPE, ESRCH.
	* sysdeps/unix/arm/sysdep.h: Avoid warning about nested comments.
	* sysdeps/stub/accept.c (accept): Make args match prototype.
	* sysdeps/stub/bind.c (bind): Likewise.
	* sysdeps/stub/connect.c (connect): Likewise.
	* sysdeps/stub/getpeername.c (getpeername): Likewise.
	* sysdeps/stub/getsockname.c (getsockname): Likewise.
	* sysdeps/stub/recvfrom.c (recvfrom): Likewise.
	* sysdeps/stub/send.c (send): Likewise.
	* sysdeps/stub/ttyname_r.c (ttyname_r): Likewise.
	* sysdeps/stub/readv.c (readv): Likewise.
	* sysdeps/stub/writev.c (writev): Likewise.
	* sysdeps/stub/sendto.c (sendto): Likewise.
	* sysdeps/unix/sysv/linux/arm/profil-counter.h: New file.

1997-05-18 12:46  Philip Blundell  <pjb27@cam.ac.uk>

	* sysdeps/unix/sysv/linux/socketbits.h: Add new macros CMSG_SPACE,
	CMSG_LEN, CMSG_ALIGN (for IPv6 Advanced API).

1997-05-21 13:51  Andreas Jaeger  <aj@arthur.rhein-neckar.de>

	* sysdeps/unix/sysv/linux/shmat.c (shmat): Add cast to prevent warning.

	* sunrpc/rpcsvc/rusers.x: Provide prototypes for implemented
	functions, include <rpc/xdr.h>.

	* string/strverscmp.c: Correct typos in comment.

	* sunrpc/rpc/xdr.h: Add more `const'.
	* sunrpc/xdr_stdio.c: Likewise.
	* sunrpc/xdr_rec.c: Likewise.
This commit is contained in:
Ulrich Drepper 1997-05-22 02:19:00 +00:00
parent 9498096c93
commit bfbc57545a
34 changed files with 455 additions and 117 deletions

4
BUGS
View file

@ -1,7 +1,7 @@
List of known bugs (certainly very incomplete)
----------------------------------------------
Time-stamp: <1997-05-12T02:39:19+0200 drepper>
Time-stamp: <1997-05-21T21:25:40+0200 drepper>
This following list contains those bugs which I'm aware of. Please
make sure that bugs you report are not listed here. If you can fix one
@ -10,7 +10,7 @@ of these bugs/limitations I'll certainly be glad to receive a patch.
Another source of information about bugs is the problem data base of the
GNU project. There is an easy to use WWW interface is available at
http://pogo.gnu.ai.mit.edu:8080/cgi-bin/wwwgnats.pl
http://www-gnats.gnu.ai.mit.edu:8080/cgi-bin/wwwgnats.pl
I would appreciate it very much if you could verify the problem was not
reported before by looking though the database. To make the information

View file

@ -1,3 +1,61 @@
1997-05-22 04:09 Ulrich Drepper <drepper@cygnus.com>
* sunrpc/clnt_perr.c (clnt_sperrno): Change type of variable i
to size_t to prevent warning.
* sunrpc/rpcinfo.c (get_inet_address): Use UNADDR_NONE and INADDR_ANY
instead of numeric values.
Various cleanups.
* sunrpc/xdr_mem.c: Use `const char *' instead of `const caddr_t'
for xdrmem_putbytes.
* sunrpc/xdr_rec.c: Likewise.
* sunrpc/xdr_stdio.c: Likewise.
* sunrpc/rpc/xdr.h: Likewise.
* sysdeps/unix/sysv/linux/arm/syscall.s: Pretty printing.
* sysdeps/unix/sysv/linux/arm/sysdep.h: Likewise.
* sysdeps/unix/sysv/linux/i386/sysdep.h: Likewise.
1997-05-21 22:22 Philip Blundell <pjb27@cam.ac.uk>
* inet/Makefile (headers): Add netinet/ip6.h, netinet/icmp6.h.
* sysdeps/generic/netinet/ip6.h: New file (for IPv6 Advanced API).
* sysdeps/generic/netinet/icmp6.h: Likewise.
* sysdeps/unix/sysv/linux/netinet/in.h: Fix typo.
* sysdeps/stub/direntry.h (struct dirent): Add d_fileno (needed by
glob.c).
* sysdeps/standalone/arm/errnos.h: Add EPROTOTYPE, ESRCH.
* sysdeps/unix/arm/sysdep.h: Avoid warning about nested comments.
* sysdeps/stub/accept.c (accept): Make args match prototype.
* sysdeps/stub/bind.c (bind): Likewise.
* sysdeps/stub/connect.c (connect): Likewise.
* sysdeps/stub/getpeername.c (getpeername): Likewise.
* sysdeps/stub/getsockname.c (getsockname): Likewise.
* sysdeps/stub/recvfrom.c (recvfrom): Likewise.
* sysdeps/stub/send.c (send): Likewise.
* sysdeps/stub/ttyname_r.c (ttyname_r): Likewise.
* sysdeps/stub/readv.c (readv): Likewise.
* sysdeps/stub/writev.c (writev): Likewise.
* sysdeps/stub/sendto.c (sendto): Likewise.
* sysdeps/unix/sysv/linux/arm/profil-counter.h: New file.
1997-05-18 12:46 Philip Blundell <pjb27@cam.ac.uk>
* sysdeps/unix/sysv/linux/socketbits.h: Add new macros CMSG_SPACE,
CMSG_LEN, CMSG_ALIGN (for IPv6 Advanced API).
1997-05-21 13:51 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* sysdeps/unix/sysv/linux/shmat.c (shmat): Add cast to prevent warning.
* sunrpc/rpcsvc/rusers.x: Provide prototypes for implemented
functions, include <rpc/xdr.h>.
* string/strverscmp.c: Correct typos in comment.
* sunrpc/rpc/xdr.h: Add more `const'.
* sunrpc/xdr_stdio.c: Likewise.
* sunrpc/xdr_rec.c: Likewise.
1997-05-21 17:50 Ulrich Drepper <drepper@cygnus.com>
* elf/Makefile (dl-routines): Add dl-sysdepio.

View file

@ -23,7 +23,7 @@ subdir := inet
headers := netinet/ether.h netinet/in.h netinet/if_ether.h \
netinet/tcp.h netinet/ip.h $(wildcard arpa/*.h protocols/*.h) \
aliases.h
aliases.h netinet/ip6.h netinet/icmp6.h
distribute := netgroup.h

View file

@ -22,7 +22,7 @@
#include <ctype.h>
/* states: S_N: normal, S_I: comparing integral part, S_F: comparing
Fractionnal parts, S_Z: idem but with leading Zeroes only */
fractionnal parts, S_Z: idem but with leading Zeroes only */
#define S_N 0x0
#define S_I 0x4
#define S_F 0x8

View file

@ -197,7 +197,7 @@ static const struct rpc_errtab rpc_errlist[] =
char *
clnt_sperrno (enum clnt_stat stat)
{
int i;
size_t i;
for (i = 0; i < sizeof (rpc_errlist) / sizeof (struct rpc_errtab); i++)
{

View file

@ -123,16 +123,16 @@ struct XDR
/* put a long to " */
bool_t (*x_getbytes) __P ((XDR * __xdrs, caddr_t __addr, u_int __len));
/* get some bytes from " */
bool_t (*x_putbytes) __P ((XDR * __xdrs, __const caddr_t __addr,
bool_t (*x_putbytes) __P ((XDR * __xdrs, __const char *__addr,
u_int __len));
/* put some bytes to " */
u_int (*x_getpostn) __P ((XDR * __xdrs));
u_int (*x_getpostn) __P ((__const XDR * __xdrs));
/* returns bytes off from beginning */
bool_t (*x_setpostn) __P ((XDR * __xdrs, u_int pos));
/* lets you reposition the stream */
long *(*x_inline) __P ((XDR * __xdrs, int len));
/* buf quick ptr to buffered data */
void (*x_destroy) __P ((XDR * __xdrs));
void (*x_destroy) __P ((__const XDR * __xdrs));
/* free privates of this xdr_stream */
}
*x_ops;

View file

@ -151,7 +151,7 @@ main (int argc, char **argv)
if (errflg || function == NONE)
{
usage ();
return (1);
return 1;
}
switch (function)
@ -161,7 +161,7 @@ main (int argc, char **argv)
if (portnum != 0)
{
usage ();
return (1);
return 1;
}
pmapdump (argc - optind, argv + optind);
break;
@ -178,7 +178,7 @@ main (int argc, char **argv)
if (portnum != 0)
{
usage ();
return (1);
return 1;
}
brdcst (argc - optind, argv + optind);
break;
@ -188,7 +188,7 @@ main (int argc, char **argv)
break;
}
return (0);
return 0;
}
static void
@ -234,8 +234,7 @@ udpping (portnum, argc, argv)
to, &sock)) == NULL)
{
clnt_pcreateerror ("rpcinfo");
printf (_ ("program %lu is not available\n"),
prognum);
printf (_("program %lu is not available\n"), prognum);
exit (1);
}
to.tv_sec = 10;
@ -262,7 +261,7 @@ udpping (portnum, argc, argv)
to, &sock)) == NULL)
{
clnt_pcreateerror ("rpcinfo");
printf (_ ("program %lu version %lu is not available\n"),
printf (_("program %lu version %lu is not available\n"),
prognum, MAX_VERS);
exit (1);
}
@ -308,7 +307,7 @@ udpping (portnum, argc, argv)
to, &sock)) == NULL)
{
clnt_pcreateerror ("rpcinfo");
printf (_ ("program %lu version %lu is not available\n"),
printf (_("program %lu version %lu is not available\n"),
prognum, vers);
exit (1);
}
@ -331,7 +330,7 @@ udpping (portnum, argc, argv)
to, &sock)) == NULL)
{
clnt_pcreateerror ("rpcinfo");
printf ("program %lu version %lu is not available\n",
printf (_("program %lu version %lu is not available\n"),
prognum, vers);
exit (1);
}
@ -381,8 +380,7 @@ tcpping (portnum, argc, argv)
&sock, 0, 0)) == NULL)
{
clnt_pcreateerror ("rpcinfo");
printf (_ ("program %lu is not available\n"),
prognum);
printf (_("program %lu is not available\n"), prognum);
exit (1);
}
to.tv_sec = 10;
@ -406,7 +404,7 @@ tcpping (portnum, argc, argv)
&sock, 0, 0)) == NULL)
{
clnt_pcreateerror ("rpcinfo");
printf (_ ("program %lu version %lu is not available\n"),
printf (_("program %lu version %lu is not available\n"),
prognum, MAX_VERS);
exit (1);
}
@ -452,7 +450,7 @@ tcpping (portnum, argc, argv)
&sock, 0, 0)) == NULL)
{
clnt_pcreateerror ("rpcinfo");
printf (_ ("program %lu version %lu is not available\n"),
printf (_("program %lu version %lu is not available\n"),
prognum, vers);
exit (1);
}
@ -475,7 +473,7 @@ tcpping (portnum, argc, argv)
0, 0)) == NULL)
{
clnt_pcreateerror ("rpcinfo");
printf (_ ("program %lu version %lu is not available\n"),
printf (_("program %lu version %lu is not available\n"),
prognum, vers);
exit (1);
}
@ -509,15 +507,13 @@ pstatus (client, prognum, vers)
if (rpcerr.re_status != RPC_SUCCESS)
{
clnt_perror (client, "rpcinfo");
printf (_ ("program %lu version %lu is not available\n"),
prognum, vers);
return (-1);
printf (_("program %lu version %lu is not available\n"), prognum, vers);
return -1;
}
else
{
printf (_ ("program %lu version %lu ready and waiting\n"),
prognum, vers);
return (0);
printf (_("program %lu version %lu ready and waiting\n"), prognum, vers);
return 0;
}
}
@ -557,24 +553,24 @@ pmapdump (argc, argv)
if ((client = clnttcp_create (&server_addr, PMAPPROG,
PMAPVERS, &socket, 50, 500)) == NULL)
{
clnt_pcreateerror (_ ("rpcinfo: can't contact portmapper"));
clnt_pcreateerror (_("rpcinfo: can't contact portmapper"));
exit (1);
}
if (clnt_call (client, PMAPPROC_DUMP, (xdrproc_t) xdr_void, NULL,
(xdrproc_t) xdr_pmaplist, (caddr_t) &head,
minutetimeout) != RPC_SUCCESS)
{
fprintf (stderr, _ ("rpcinfo: can't contact portmapper: "));
fputs (_("rpcinfo: can't contact portmapper: "), stderr);
clnt_perror (client, "rpcinfo");
exit (1);
}
if (head == NULL)
{
printf (_ ("No remote programs registered.\n"));
fputs (_("No remote programs registered.\n"), stdout);
}
else
{
printf (_ (" program vers proto port\n"));
fputs (_(" program vers proto port\n"), stdout);
for (; head != NULL; head = head->pml_next)
{
printf ("%10ld%5ld",
@ -613,8 +609,8 @@ reply_proc (res, who)
hp = gethostbyaddr ((char *) &who->sin_addr, sizeof who->sin_addr,
AF_INET);
printf ("%s %s\n", inet_ntoa (who->sin_addr),
(hp == NULL) ? _ ("(unknown)") : hp->h_name);
return (FALSE);
(hp == NULL) ? _("(unknown)") : hp->h_name);
return FALSE;
}
static void
@ -637,7 +633,7 @@ brdcst (argc, argv)
(resultproc_t) reply_proc);
if ((rpc_stat != RPC_SUCCESS) && (rpc_stat != RPC_TIMEDOUT))
{
fprintf (stderr, _ ("rpcinfo: broadcast failed: %s\n"),
fprintf (stderr, _("rpcinfo: broadcast failed: %s\n"),
clnt_sperrno (rpc_stat));
exit (1);
}
@ -658,14 +654,14 @@ deletereg (argc, argv)
}
if (getuid ())
{ /* This command allowed only to root */
fprintf (stderr, "Sorry. You are not root\n");
fputs (_("Sorry. You are not root\n"), stderr);
exit (1);
}
prog_num = getprognum (argv[0]);
version_num = getvers (argv[1]);
if ((pmap_unset (prog_num, version_num)) == 0)
{
fprintf (stderr, _ ("rpcinfo: Could not delete registration for prog %s version %s\n"),
fprintf (stderr, _("rpcinfo: Could not delete registration for prog %s version %s\n"),
argv[0], argv[1]);
exit (1);
}
@ -674,11 +670,13 @@ deletereg (argc, argv)
static void
usage ()
{
fprintf (stderr, _ ("Usage: rpcinfo [ -n portnum ] -u host prognum [ versnum ]\n"));
fprintf (stderr, _ (" rpcinfo [ -n portnum ] -t host prognum [ versnum ]\n"));
fprintf (stderr, _ (" rpcinfo -p [ host ]\n"));
fprintf (stderr, _ (" rpcinfo -b prognum versnum\n"));
fprintf (stderr, _ (" rpcinfo -d prognum versnum\n"));
fputs (_("Usage: rpcinfo [ -n portnum ] -u host prognum [ versnum ]\n"),
stderr);
fputs (_(" rpcinfo [ -n portnum ] -t host prognum [ versnum ]\n"),
stderr);
fputs (_(" rpcinfo -p [ host ]\n"), stderr);
fputs (_(" rpcinfo -b prognum versnum\n"), stderr);
fputs (_(" rpcinfo -d prognum versnum\n"), stderr);
}
static u_long
@ -693,8 +691,7 @@ getprognum (arg)
rpc = getrpcbyname (arg);
if (rpc == NULL)
{
fprintf (stderr, _ ("rpcinfo: %s is unknown service\n"),
arg);
fprintf (stderr, _("rpcinfo: %s is unknown service\n"), arg);
exit (1);
}
prognum = rpc->r_number;
@ -704,7 +701,7 @@ getprognum (arg)
prognum = (u_long) atoi (arg);
}
return (prognum);
return prognum;
}
static u_long
@ -714,7 +711,7 @@ getvers (arg)
register u_long vers;
vers = (int) atoi (arg);
return (vers);
return vers;
}
static void
@ -726,11 +723,12 @@ get_inet_address (addr, host)
bzero ((char *) addr, sizeof *addr);
addr->sin_addr.s_addr = (u_long) inet_addr (host);
if (addr->sin_addr.s_addr == -1 || addr->sin_addr.s_addr == 0)
if (addr->sin_addr.s_addr == INADDR_NONE
|| addr->sin_addr.s_addr == INADDR_ANY)
{
if ((hp = gethostbyname (host)) == NULL)
{
fprintf (stderr, _ ("rpcinfo: %s is unknown host\n"),
fprintf (stderr, _("rpcinfo: %s is unknown host\n"),
host);
exit (1);
}

View file

@ -85,6 +85,8 @@ program RUSERSPROG {
%extern "C" {
%#endif
%
%#include <rpc/xdr.h>
%
%/*
% * The following structures are used by version 2 of the rusersd protocol.
% * They were not developed with rpcgen, so they do not appear as RPCL.
@ -110,7 +112,7 @@ program RUSERSPROG {
% int uta_cnt;
%};
%typedef struct utmparr utmparr;
%int xdr_utmparr();
%int xdr_utmparr(XDR *xdrs, struct utmparr *objp);
%
%struct utmpidle {
% struct ru_utmp ui_utmp;
@ -122,7 +124,7 @@ program RUSERSPROG {
% int uia_cnt;
%};
%
%int xdr_utmpidlearr();
%int xdr_utmpidlearr(XDR *xdrs, struct utmpidlearr *objp);
%
%#ifdef __cplusplus
%}

View file

@ -49,7 +49,7 @@ static char sccsid[] = "@(#)xdr_mem.c 1.19 87/08/11 Copyr 1984 Sun Micro";
static bool_t xdrmem_getlong (XDR *, long *);
static bool_t xdrmem_putlong (XDR *, const long *);
static bool_t xdrmem_getbytes (XDR *, caddr_t, u_int);
static bool_t xdrmem_putbytes (XDR *, const caddr_t, u_int);
static bool_t xdrmem_putbytes (XDR *, const char *, u_int);
static u_int xdrmem_getpos (const XDR *);
static bool_t xdrmem_setpos (XDR *, u_int);
static long *xdrmem_inline (XDR *, int);
@ -158,7 +158,7 @@ xdrmem_getbytes (xdrs, addr, len)
static bool_t
xdrmem_putbytes (xdrs, addr, len)
XDR *xdrs;
const caddr_t addr;
const char *addr;
u_int len;
{

View file

@ -56,11 +56,11 @@ static char sccsid[] = "@(#)xdr_rec.c 1.21 87/08/11 Copyr 1984 Sun Micro";
static bool_t xdrrec_getlong (XDR *, long *);
static bool_t xdrrec_putlong (XDR *, const long *);
static bool_t xdrrec_getbytes (XDR *, caddr_t, u_int);
static bool_t xdrrec_putbytes (XDR *, const caddr_t, u_int);
static u_int xdrrec_getpos (XDR *);
static bool_t xdrrec_putbytes (XDR *, const char *, u_int);
static u_int xdrrec_getpos (const XDR *);
static bool_t xdrrec_setpos (XDR *, u_int);
static long *xdrrec_inline (XDR *, int);
static void xdrrec_destroy (XDR *);
static void xdrrec_destroy (const XDR *);
static const struct xdr_ops xdrrec_ops =
{
@ -276,7 +276,7 @@ xdrrec_getbytes (xdrs, addr, len)
static bool_t
xdrrec_putbytes (xdrs, addr, len)
XDR *xdrs;
const caddr_t addr;
const char *addr;
u_int len;
{
RECSTREAM *rstrm = (RECSTREAM *) xdrs->x_private;
@ -301,7 +301,7 @@ xdrrec_putbytes (xdrs, addr, len)
}
static u_int
xdrrec_getpos (XDR *xdrs)
xdrrec_getpos (const XDR *xdrs)
{
RECSTREAM *rstrm = (RECSTREAM *) xdrs->x_private;
long pos;
@ -403,7 +403,7 @@ xdrrec_inline (XDR *xdrs, int len)
static void
xdrrec_destroy (xdrs)
XDR *xdrs;
const XDR *xdrs;
{
RECSTREAM *rstrm = (RECSTREAM *) xdrs->x_private;

View file

@ -48,11 +48,11 @@ static char sccsid[] = "@(#)xdr_stdio.c 1.16 87/08/11 Copyr 1984 Sun Micro";
static bool_t xdrstdio_getlong (XDR *, long *);
static bool_t xdrstdio_putlong (XDR *, const long *);
static bool_t xdrstdio_getbytes (XDR *, caddr_t, u_int);
static bool_t xdrstdio_putbytes (XDR *, const caddr_t, u_int);
static u_int xdrstdio_getpos (XDR *);
static bool_t xdrstdio_putbytes (XDR *, const char *, u_int);
static u_int xdrstdio_getpos (const XDR *);
static bool_t xdrstdio_setpos (XDR *, u_int);
static long *xdrstdio_inline (XDR *, int);
static void xdrstdio_destroy (XDR *);
static void xdrstdio_destroy (const XDR *);
/*
* Ops vector for stdio type XDR
@ -94,7 +94,7 @@ xdrstdio_create (xdrs, file, op)
*/
static void
xdrstdio_destroy (xdrs)
XDR *xdrs;
const XDR *xdrs;
{
(void) fflush ((FILE *) xdrs->x_private);
/* xx should we close the file ?? */
@ -137,7 +137,7 @@ xdrstdio_getbytes (xdrs, addr, len)
}
static bool_t
xdrstdio_putbytes (XDR *xdrs, const caddr_t addr, u_int len)
xdrstdio_putbytes (XDR *xdrs, const char *addr, u_int len)
{
if ((len != 0) && (fwrite (addr, (int) len, 1, (FILE *) xdrs->x_private) != 1))
return FALSE;
@ -145,7 +145,7 @@ xdrstdio_putbytes (XDR *xdrs, const caddr_t addr, u_int len)
}
static u_int
xdrstdio_getpos (XDR *xdrs)
xdrstdio_getpos (const XDR *xdrs)
{
return (u_int) ftell ((FILE *) xdrs->x_private);
}

View file

@ -0,0 +1,203 @@
/* Copyright (C) 1991, 92, 93, 94, 95, 96, 97 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#ifndef _NETINET_ICMP6_H
#define _NETINET_ICMP6_H 1
#include <sys/types.h>
#define ICMPV6_FILTER 1
#define ICMPV6_FILTER_BLOCK 1
#define ICMPV6_FILTER_PASS 2
#define ICMPV6_FILTER_BLOCKOTHERS 3
#define ICMPV6_FILTER_PASSONLY 4
struct icmpv6_filter
{
u_int32_t data[8];
};
struct icmpv6hdr
{
u_int8_t icmpv6_type; /* type field */
u_int8_t icmpv6_code; /* code field */
u_int16_t icmpv6_cksum; /* checksum field */
union
{
u_int32_t un_data32[1]; /* type-specific field */
u_int16_t un_data16[2]; /* type-specific field */
u_int8_t un_data8[4]; /* type-specific field */
} icmpv6_dataun;
};
#define icmpv6_data32 icmpv6_dataun.un_data32
#define icmpv6_data16 icmpv6_dataun.un_data16
#define icmpv6_data8 icmpv6_dataun.un_data8
#define icmpv6_pptr icmpv6_data32[0] /* parameter prob */
#define icmpv6_mtu icmpv6_data32[0] /* packet too big */
#define icmpv6_id icmpv6_data16[0] /* echo request/reply */
#define icmpv6_seq icmpv6_data16[1] /* echo request/reply */
#define icmpv6_maxdelay icmpv6_data16[0] /* mcast group membership */
#define ICMPV6_DEST_UNREACH 1
#define ICMPV6_PACKET_TOOBIG 2
#define ICMPV6_TIME_EXCEEDED 3
#define ICMPV6_PARAMETER_PROBLEM 4
#define ICMPV6_INFOMSG_MASK 128 /* message is info if bit set */
#define ICMPV6_ECHOREQUEST 128
#define ICMPV6_ECHOREPLY 129
#define ICMPV6_MGM_QUERY 130
#define ICMPV6_MGM_REPORT 131
#define ICMPV6_MGM_REDUCTION 132
#define ICMPV6_DEST_UNREACH_NOROUTE 0
#define ICMPV6_DEST_UNREACH_ADMIN 1 /* administratively prohibited */
#define ICMPV6_DEST_UNREACH_NOTNEIGHBOR 2 /* not a neighbor (and must be) */
#define ICMPV6_DEST_UNREACH_ADDR 3
#define ICMPV6_DEST_UNREACH_NOPORT 4
#define ICMPV6_TIME_EXCEED_HOPS 0 /* Hop Limit == 0 in transit */
#define ICMPV6_TIME_EXCEED_REASSEMBLY 1 /* Reassembly time out */
#define ICMPV6_PARAMPROB_HEADER 0 /* erroneous header field */
#define ICMPV6_PARAMPROB_NEXTHEADER 1 /* unrecognized Next Header */
#define ICMPV6_PARAMPROB_OPTION 2 /* unrecognized option */
#if defined(__OPTIMIZE__)
#include <asm/bitops.h>
#define ICMPV6_FILTER_WILLPASS(type, filterp) \
(test_bit(type, filterp) == 0)
#define ICMPV6_FILTER_WILLBLOCK(type, filterp) \
test_bit(type, filterp)
#define ICMPV6_FILTER_SETPASS(type, filterp) \
clear_bit(type & 0x1f, &((filterp)->data[type >> 5]))
#define ICMPV6_FILTER_SETBLOCK(type, filterp) \
set_bit(type & 0x1f, &((filterp)->data[type >> 5]))
#else
#define ICMPV6_FILTER_WILLPASS(type, filterp) \
((((filterp)->data[(type) >> 5]) & (1 << ((type) & 31))) == 0)
#define ICMPV6_FILTER_WILLBLOCK(type, filterp) \
((((filterp)->data[(type) >> 5]) & (1 << ((type) & 31))) != 0)
#define ICMPV6_FILTER_SETPASS(type, filterp) \
((((filterp)->data[(type) >> 5]) &= ~(1 << ((type) & 31))))
#define ICMPV6_FILTER_SETBLOCK(type, filterp) \
((((filterp)->data[(type) >> 5]) |= (1 << ((type) & 31))))
#endif
#define ICMPV6_FILTER_SETPASSALL(filterp) \
memset(filterp, 0, sizeof(struct icmpv6_filter));
#define ICMPV6_FILTER_SETBLOCKALL(filterp) \
memset(filterp, 0xFF, sizeof(struct icmpv6_filter));
#define ND6_ROUTER_SOLICITATION 133
#define ND6_ROUTER_ADVERTISEMENT 134
#define ND6_NEIGHBOR_SOLICITATION 135
#define ND6_NEIGHBOR_ADVERTISEMENT 136
#define ND6_REDIRECT 137
enum nd6_option
{
ND6_OPT_SOURCE_LINKADDR=1,
ND6_OPT_TARGET_LINKADDR=2,
ND6_OPT_PREFIX_INFORMATION=3,
ND6_OPT_REDIRECTED_HEADER=4,
ND6_OPT_MTU=5,
ND6_OPT_ENDOFLIST=256
};
struct nd6_router_solicit /* router solicitation */
{
struct icmpv6hdr rsol_hdr;
};
#define rsol_type rsol_hdr.icmpv6_type
#define rsol_code rsol_hdr.icmpv6_code
#define rsol_cksum rsol_hdr.icmpv6_cksum
#define rsol_reserved rsol_hdr.icmpv6_data32[0]
struct nd6_router_advert
{
struct icmpv6hdr radv_hdr;
u_int32_t radv_reachable; /* reachable time */
u_int32_t radv_retransmit; /* reachable retransmit time */
};
#define radv_type radv_hdr.icmpv6_type
#define radv_code radv_hdr.icmpv6_code
#define radv_cksum radv_hdr.icmpv6_cksum
#define radv_maxhoplimit radv_hdr.icmpv6_data8[0]
#define radv_m_o_res radv_hdr.icmpv6_data8[1]
#define ND6_RADV_M_BIT 0x80
#define ND6_RADV_O_BIT 0x40
#define radv_router_lifetime radv_hdr.icmpv6_data16[1]
struct nd6_nsolicitation /* neighbor solicitation */
{
struct icmpv6hdr nsol6_hdr;
struct in6_addr nsol6_target;
};
struct nd6_nadvertisement /* neighbor advertisement */
{
struct icmpv6hdr nadv6_hdr;
struct in6_addr nadv6_target;
};
#define nadv6_flags nadv6_hdr.icmpv6_data32[0]
#define ND6_NADVERFLAG_ISROUTER 0x80
#define ND6_NADVERFLAG_SOLICITED 0x40
#define ND6_NADVERFLAG_OVERRIDE 0x20
struct nd6_redirect /* redirect */
{
struct icmpv6hdr redirect_hdr;
struct in6_addr redirect_target;
struct in6_addr redirect_destination;
};
struct nd6_opt_prefix_info /* prefix information */
{
u_int8_t opt_type;
u_int8_t opt_length;
u_int8_t opt_prefix_length;
u_int8_t opt_l_a_res;
u_int32_t opt_valid_life;
u_int32_t opt_preferred_life;
u_int32_t opt_reserved2;
struct in6_addr opt_prefix;
};
#define ND6_OPT_PI_L_BIT 0x80
#define ND6_OPT_PI_A_BIT 0x40
struct nd6_opt_mtu /* MTU option */
{
u_int8_t opt_type;
u_int8_t opt_length;
u_int16_t opt_reserved;
u_int32_t opt_mtu;
};
#endif /* _NETINET6_ICMPV6_H */

View file

@ -0,0 +1,44 @@
/* Copyright (C) 1991, 92, 93, 94, 95, 96, 97 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#ifndef _NETINET_IP6_H
#define _NETINET_IP6_H 1
#include <netinet/in.h>
#include <endian.h>
struct ipv6hdr {
#if (__BYTE_ORDER == __LITTLE_ENDIAN)
u_int8_t ipv6_version:4;
u_int8_t ipv6_priority:4; /* going away? */
u_int32_t ipv6_flowid:24;
#elif (__BYTE_ORDER == __BIG_ENDIAN)
u_int32_t ipv6_flowid:24;
u_int8_t ipv6_priority:4; /* going away? */
u_int8_t ipv6_version:4;
#else
#error Unknown endianness
#endif
u_int16_t ipv6_len;
u_int8_t ipv6_nextheader;
u_int8_t ipv6_hoplimit;
struct in6_addr ipv6_src;
struct in6_addr ipv6_dst;
};
#endif /* _NETINET_IP6_H */

View file

@ -44,6 +44,8 @@ Cambridge, MA 02139, USA. */
#define EILSEQ 16
#define ENOEXEC 17
#define ENOENT 18
#define EPROTOTYPE 19
#define ESRCH 20
#endif
#define __set_errno(val) errno = (val)

View file

@ -27,7 +27,7 @@ Cambridge, MA 02139, USA. */
int
accept (fd, addr, addr_len)
int fd;
struct sockaddr *addr;
__SOCKADDR_ARG addr;
size_t *addr_len;
{
__set_errno (ENOSYS);

View file

@ -23,7 +23,7 @@ Cambridge, MA 02139, USA. */
int
bind (fd, addr, len)
int fd;
const struct sockaddr *addr;
__CONST_SOCKADDR_ARG addr;
size_t len;
{
__set_errno (ENOSYS);

View file

@ -26,7 +26,7 @@ Cambridge, MA 02139, USA. */
int
connect (fd, addr, len)
int fd;
const struct sockaddr *addr;
__CONST_SOCKADDR_ARG addr;
size_t len;
{
__set_errno (ENOSYS);

View file

@ -20,4 +20,5 @@
struct dirent
{
char d_name[1]; /* Variable length. */
int d_fileno;
};

View file

@ -24,7 +24,7 @@ Cambridge, MA 02139, USA. */
int
getpeername (fd, addr, len)
int fd;
struct sockaddr *addr;
__SOCKADDR_ARG addr;
size_t *len;
{
__set_errno (ENOSYS);

View file

@ -23,7 +23,7 @@ Cambridge, MA 02139, USA. */
int
getsockname (fd, addr, len)
int fd;
struct sockaddr *addr;
__SOCKADDR_ARG addr;
size_t *len;
{
__set_errno (ENOSYS);

View file

@ -29,7 +29,7 @@ int
__readv (fd, vector, count)
int fd;
const struct iovec *vector;
size_t count;
int count;
{
__set_errno (ENOSYS);
return -1;

View file

@ -28,7 +28,7 @@ recvfrom (fd, buf, n, flags, addr, addr_len)
void *buf;
size_t n;
int flags;
struct sockaddr *addr;
__SOCKADDR_ARG addr;
size_t *addr_len;
{
__set_errno (ENOSYS);

View file

@ -23,7 +23,7 @@ Cambridge, MA 02139, USA. */
int
send (fd, buf, n, flags)
int fd;
void *buf;
__const __ptr_t buf;
size_t n;
int flags;
{

View file

@ -24,10 +24,10 @@ Cambridge, MA 02139, USA. */
int
sendto (fd, buf, n, flags, addr, addr_len)
int fd;
void *buf;
__const __ptr_t buf;
size_t n;
int flags;
const struct sockaddr *addr;
__CONST_SOCKADDR_ARG addr;
size_t addr_len;
{
__set_errno (ENOSYS);

View file

@ -26,7 +26,7 @@ int
ttyname_r (fd, buf, buflen)
int fd;
char *buf;
int buflen;
size_t buflen;
{
__set_errno (ENOSYS);
return -1;

View file

@ -29,7 +29,7 @@ int
__writev (fd, vector, count)
int fd;
const struct iovec *vector;
size_t count;
int count;
{
__set_errno (ENOSYS);
return -1;

View file

@ -19,7 +19,7 @@ Cambridge, MA 02139, USA. */
#include <sysdeps/unix/sysdep.h>
#include <sysdeps/arm/sysdep.h>
/* Some definitions to allow the assembler in sysdeps/unix/*.S to build
/* Some definitions to allow the assembler in sysdeps/unix/ to build
without needing ARM-specific versions of all the files. */
#define ret RETINSTR(mov, pc, r14)

View file

@ -0,0 +1,26 @@
/* Low-level statistical profiling support function. Linux/ARM version.
Copyright (C) 1996, 1997 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <sigcontext.h>
void
profil_counter (int signo, struct sigcontext sc)
{
profil_count ((void *) sc.eip);
}

View file

@ -1,4 +1,4 @@
/* Copyright (C) 1995, 1996 Free Software Foundation, Inc.
/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -26,10 +26,10 @@ ENTRY (syscall)
/* Normally encoding the system call number in the instruction is
good. But we pay the price here. */
sub sp, sp, $0xc @ get 3 words on the stack
orr r0, r0, $0xef000000 @ make up a SWI instruction
orr r0, r0, $SWI_BASE
orr r0, r0, $SWI_BASE
str r0, [sp]
ldr r0, _reti
str r0, [sp, $4]
@ -43,5 +43,5 @@ _ret: add sp, sp, $0xc
RETINSTR(mov, pc, r14)
_reti: .word 0xe51ff004 @ ldr pc, [pc, $4]
PSEUDO_END (syscall)

View file

@ -1,22 +1,22 @@
/* Copyright (C) 1992, 93, 95, 96, 97 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper, <drepper@gnu.ai.mit.edu>, August 1995.
ARM changes by Philip Blundell, <pjb27@cam.ac.uk>, May 1997.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper, <drepper@gnu.ai.mit.edu>, August 1995.
ARM changes by Philip Blundell, <pjb27@cam.ac.uk>, May 1997.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If
not, write to the Free Software Foundation, Inc., 675 Mass Ave,
Cambridge, MA 02139, USA. */
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#ifndef _LINUX_ARM_SYSDEP_H
#define _LINUX_ARM_SYSDEP_H 1
@ -61,12 +61,12 @@ Cambridge, MA 02139, USA. */
#ifndef PIC
#define SYSCALL_ERROR_HANDLER /* Nothing here; code in sysdep.S is used. */
#else
#error Aiee
#error Aiee
#endif /* PIC */
#undef DO_CALL
#define DO_CALL(args, syscall_name) \
swi SYS_ify (syscall_name);
swi SYS_ify (syscall_name);
#endif /* ASSEMBLER */

View file

@ -1,21 +1,21 @@
/* Copyright (C) 1992, 93, 95, 96 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper, <drepper@gnu.ai.mit.edu>, August 1995.
/* Copyright (C) 1992, 93, 95, 96, 97 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper, <drepper@gnu.ai.mit.edu>, August 1995.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If
not, write to the Free Software Foundation, Inc., 675 Mass Ave,
Cambridge, MA 02139, USA. */
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#ifndef _LINUX_I386_SYSDEP_H
#define _LINUX_I386_SYSDEP_H 1

View file

@ -301,7 +301,7 @@ extern u_int16_t htons __P ((u_int16_t __hostshort));
(((u_int32_t *)(a))[2] == 0) && (ntohl(((u_int32_t *)(a))[3]) > 1))
/* Bind socket to a priviledged IP port. */
/* Bind socket to a privileged IP port. */
extern int bindresvport __P ((int __sockfd, struct sockaddr_in *__sin));

View file

@ -32,7 +32,7 @@ shmat (shmid, shmaddr, shmflg)
int retval;
unsigned long raddr;
retval = __ipc (IPCOP_shmat, shmid, shmflg, (int) &raddr, shmaddr);
retval = __ipc (IPCOP_shmat, shmid, shmflg, (int) &raddr, (void *) shmaddr);
return ((unsigned long int) retval > -(unsigned long int) SHMLBA
? (void *) retval : (void *) raddr);
}

View file

@ -158,9 +158,13 @@ struct cmsghdr
#endif
#define CMSG_NXTHDR(mhdr, cmsg) __cmsg_nxthdr (mhdr, cmsg)
#define CMSG_FIRSTHDR(mhdr) \
((size_t) (mhdr)->msg_controllen >= sizeof (struct cmsghdr) \
((size_t) (mhdr)->msg_controllen >= sizeof (struct cmsghdr) \
? (struct cmsghdr *) (mhdr)->msg_control : (struct cmsghdr *) NULL)
#define CMSG_ALIGN(len) (((len) + sizeof (size_t) - 1) \
& ~(sizeof (size_t) - 1))
#define CMSG_SPACE(len) (CMSG_ALIGN (len) \
+ CMSG_ALIGN (sizeof (struct cmsghdr)))
#define CMSG_LEN(len) (CMSG_ALIGN (sizeof (struct cmsghdr)) + (len))
#ifndef _EXTERN_INLINE
# define _EXTERN_INLINE extern __inline