XDR(3): Port to RTEMS

This commit is contained in:
Sebastian Huber 2016-06-09 11:48:16 +02:00
parent f41a394f91
commit a037da67c6
6 changed files with 24 additions and 6 deletions

View File

@ -0,0 +1 @@
#include "../rpc/rpc_com.h"

View File

@ -522,16 +522,14 @@ xdr_enum(xdrs, ep)
XDR *xdrs;
enum_t *ep;
{
enum sizecheck { SIZEVAL }; /* used to find the size of an enum */
/*
* enums are treated as ints
*/
/* LINTED */ if (sizeof (enum sizecheck) == sizeof (long)) {
/* LINTED */ if (sizeof (enum_t) == sizeof (long)) {
return (xdr_long(xdrs, (long *)(void *)ep));
} else /* LINTED */ if (sizeof (enum sizecheck) == sizeof (int)) {
} else /* LINTED */ if (sizeof (enum_t) == sizeof (int)) {
return (xdr_int(xdrs, (int *)(void *)ep));
} else /* LINTED */ if (sizeof (enum sizecheck) == sizeof (short)) {
} else /* LINTED */ if (sizeof (enum_t) == sizeof (short)) {
return (xdr_short(xdrs, (short *)(void *)ep));
} else {
return (FALSE);

View File

@ -69,6 +69,9 @@ __FBSDID("$FreeBSD$");
defined(__arm26__) || defined(__sparc64__) || defined(__amd64__)
#include <machine/endian.h>
#define IEEEFP
#else /* __rtems__ */
#include <machine/endian.h>
#define IEEEFP
#endif
#if defined(__vax__)

View File

@ -513,7 +513,7 @@ xdrrec_eof(xdrs)
bool_t
xdrrec_endofrecord(xdrs, sendnow)
XDR *xdrs;
bool_t sendnow;
int sendnow;
{
RECSTREAM *rstrm = (RECSTREAM *)(xdrs->x_private);
u_long len; /* fragment length */

View File

@ -2033,6 +2033,14 @@ def user_space(mm):
'lib/libc/stdlib/strtonum.c',
'lib/libc/stdlib/strtoumax.c',
'lib/libc/string/strsep.c',
'lib/libc/xdr/xdr_array.c',
'lib/libc/xdr/xdr.c',
'lib/libc/xdr/xdr_float.c',
'lib/libc/xdr/xdr_mem.c',
'lib/libc/xdr/xdr_rec.c',
'lib/libc/xdr/xdr_reference.c',
'lib/libc/xdr/xdr_sizeof.c',
'lib/libc/xdr/xdr_stdio.c',
'lib/libipsec/ipsec_dump_policy.c',
'lib/libipsec/ipsec_get_policylen.c',
'lib/libipsec/ipsec_strerror.c',

View File

@ -342,6 +342,14 @@ def build(bld):
'freebsd/lib/libc/stdlib/strtonum.c',
'freebsd/lib/libc/stdlib/strtoumax.c',
'freebsd/lib/libc/string/strsep.c',
'freebsd/lib/libc/xdr/xdr.c',
'freebsd/lib/libc/xdr/xdr_array.c',
'freebsd/lib/libc/xdr/xdr_float.c',
'freebsd/lib/libc/xdr/xdr_mem.c',
'freebsd/lib/libc/xdr/xdr_rec.c',
'freebsd/lib/libc/xdr/xdr_reference.c',
'freebsd/lib/libc/xdr/xdr_sizeof.c',
'freebsd/lib/libc/xdr/xdr_stdio.c',
'freebsd/lib/libipsec/ipsec_dump_policy.c',
'freebsd/lib/libipsec/ipsec_get_policylen.c',
'freebsd/lib/libipsec/ipsec_strerror.c',