Update.
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:
parent
9498096c93
commit
bfbc57545a
4
BUGS
4
BUGS
@ -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
|
||||
|
58
ChangeLog
58
ChangeLog
@ -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.
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
@ -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++)
|
||||
{
|
||||
|
@ -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;
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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
|
||||
%}
|
||||
|
@ -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;
|
||||
{
|
||||
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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);
|
||||
}
|
||||
|
203
sysdeps/generic/netinet/icmp6.h
Normal file
203
sysdeps/generic/netinet/icmp6.h
Normal 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 */
|
44
sysdeps/generic/netinet/ip6.h
Normal file
44
sysdeps/generic/netinet/ip6.h
Normal 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 */
|
@ -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)
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
|
@ -20,4 +20,5 @@
|
||||
struct dirent
|
||||
{
|
||||
char d_name[1]; /* Variable length. */
|
||||
int d_fileno;
|
||||
};
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
|
@ -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;
|
||||
|
@ -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);
|
||||
|
@ -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;
|
||||
{
|
||||
|
@ -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);
|
||||
|
@ -26,7 +26,7 @@ int
|
||||
ttyname_r (fd, buf, buflen)
|
||||
int fd;
|
||||
char *buf;
|
||||
int buflen;
|
||||
size_t buflen;
|
||||
{
|
||||
__set_errno (ENOSYS);
|
||||
return -1;
|
||||
|
@ -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;
|
||||
|
@ -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)
|
||||
|
26
sysdeps/unix/sysv/linux/arm/profil-counter.h
Normal file
26
sysdeps/unix/sysv/linux/arm/profil-counter.h
Normal 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);
|
||||
}
|
@ -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)
|
||||
|
@ -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 */
|
||||
|
||||
|
@ -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
|
||||
|
@ -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));
|
||||
|
||||
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user