Date: Tue, 4 Nov 2008 16:22:15 +0000 (UTC) From: Doug Rabson <dfr@FreeBSD.org> To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r184642 - in user/dfr/gssapi/7/lib/libc: . sys xdr Message-ID: <200811041622.mA4GMF5T001698@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: dfr Date: Tue Nov 4 16:22:14 2008 New Revision: 184642 URL: http://svn.freebsd.org/changeset/base/184642 Log: Merge r184588. Modified: user/dfr/gssapi/7/lib/libc/ (props changed) user/dfr/gssapi/7/lib/libc/sys/Symbol.map user/dfr/gssapi/7/lib/libc/xdr/Symbol.map user/dfr/gssapi/7/lib/libc/xdr/xdr.c Modified: user/dfr/gssapi/7/lib/libc/sys/Symbol.map ============================================================================== --- user/dfr/gssapi/7/lib/libc/sys/Symbol.map Tue Nov 4 15:56:44 2008 (r184641) +++ user/dfr/gssapi/7/lib/libc/sys/Symbol.map Tue Nov 4 16:22:14 2008 (r184642) @@ -985,4 +985,5 @@ FBSDprivate_1.0 { __sys_writev; __error_unthreaded; nlm_syscall; + gssd_syscall; }; Modified: user/dfr/gssapi/7/lib/libc/xdr/Symbol.map ============================================================================== --- user/dfr/gssapi/7/lib/libc/xdr/Symbol.map Tue Nov 4 15:56:44 2008 (r184641) +++ user/dfr/gssapi/7/lib/libc/xdr/Symbol.map Tue Nov 4 16:22:14 2008 (r184642) @@ -45,3 +45,9 @@ FBSD_1.0 { /* xdr_sizeof; */ /* Why is xdr_sizeof.c not included in Makefileinc? */ xdrstdio_create; }; + +FBSD_1.1 { + xdr_uint16_t; + xdr_uint32_t; + xdr_uint64_t; +}; Modified: user/dfr/gssapi/7/lib/libc/xdr/xdr.c ============================================================================== --- user/dfr/gssapi/7/lib/libc/xdr/xdr.c Tue Nov 4 15:56:44 2008 (r184641) +++ user/dfr/gssapi/7/lib/libc/xdr/xdr.c Tue Nov 4 16:22:14 2008 (r184642) @@ -263,6 +263,36 @@ xdr_u_int32_t(xdrs, u_int32_p) return (FALSE); } +/* + * XDR unsigned 32-bit integers + * same as xdr_int32_t - open coded to save a proc call! + */ +bool_t +xdr_uint32_t(xdrs, u_int32_p) + XDR *xdrs; + uint32_t *u_int32_p; +{ + u_long l; + + switch (xdrs->x_op) { + + case XDR_ENCODE: + l = (u_long) *u_int32_p; + return (XDR_PUTLONG(xdrs, (long *)&l)); + + case XDR_DECODE: + if (!XDR_GETLONG(xdrs, (long *)&l)) { + return (FALSE); + } + *u_int32_p = (u_int32_t) l; + return (TRUE); + + case XDR_FREE: + return (TRUE); + } + /* NOTREACHED */ + return (FALSE); +} /* * XDR short integers @@ -385,6 +415,36 @@ xdr_u_int16_t(xdrs, u_int16_p) return (FALSE); } +/* + * XDR unsigned 16-bit integers + */ +bool_t +xdr_uint16_t(xdrs, u_int16_p) + XDR *xdrs; + uint16_t *u_int16_p; +{ + u_long l; + + switch (xdrs->x_op) { + + case XDR_ENCODE: + l = (u_long) *u_int16_p; + return (XDR_PUTLONG(xdrs, (long *)&l)); + + case XDR_DECODE: + if (!XDR_GETLONG(xdrs, (long *)&l)) { + return (FALSE); + } + *u_int16_p = (u_int16_t) l; + return (TRUE); + + case XDR_FREE: + return (TRUE); + } + /* NOTREACHED */ + return (FALSE); +} + /* * XDR a char @@ -806,6 +866,38 @@ xdr_u_int64_t(xdrs, ullp) return (FALSE); } +/* + * XDR unsigned 64-bit integers + */ +bool_t +xdr_uint64_t(xdrs, ullp) + XDR *xdrs; + uint64_t *ullp; +{ + u_long ul[2]; + + switch (xdrs->x_op) { + case XDR_ENCODE: + ul[0] = (u_long)(*ullp >> 32) & 0xffffffff; + ul[1] = (u_long)(*ullp) & 0xffffffff; + if (XDR_PUTLONG(xdrs, (long *)&ul[0]) == FALSE) + return (FALSE); + return (XDR_PUTLONG(xdrs, (long *)&ul[1])); + case XDR_DECODE: + if (XDR_GETLONG(xdrs, (long *)&ul[0]) == FALSE) + return (FALSE); + if (XDR_GETLONG(xdrs, (long *)&ul[1]) == FALSE) + return (FALSE); + *ullp = (u_int64_t) + (((u_int64_t)ul[0] << 32) | ((u_int64_t)ul[1])); + return (TRUE); + case XDR_FREE: + return (TRUE); + } + /* NOTREACHED */ + return (FALSE); +} + /* * XDR hypers
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200811041622.mA4GMF5T001698>