Date: Mon, 03 Sep 2012 01:16:05 +0400 From: Yuri Pankov <yuri.pankov@gmail.com> To: "Pedro F. Giffuni" <pfg@freebsd.org> Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r240060 - in head: include/rpc sys/rpc Message-ID: <5043CC95.9090707@gmail.com> In-Reply-To: <201209022104.q82L4eru068961@svn.freebsd.org> References: <201209022104.q82L4eru068961@svn.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, 2 Sep 2012 21:04:40 +0000 (UTC), Pedro F. Giffuni wrote: > Author: pfg > Date: Sun Sep 2 21:04:40 2012 > New Revision: 240060 > URL: http://svn.freebsd.org/changeset/base/240060 > > Log: > Fix RPC headers for C++ > > C++ mangling will cause trouble with variables like __rpc_xdr > in xdr.h so rename this to XDR. > While here add proper C++ guards to RPC headers. > > PR: 137443 > MFC after: 2 weeks > > Modified: > head/include/rpc/auth.h > head/include/rpc/auth_unix.h > head/include/rpc/clnt.h > head/include/rpc/clnt_soc.h > head/include/rpc/des_crypt.h > head/include/rpc/nettype.h > head/include/rpc/pmap_clnt.h > head/include/rpc/pmap_rmt.h > head/include/rpc/rpc_com.h > head/include/rpc/rpc_msg.h > head/include/rpc/rpcb_clnt.h > head/include/rpc/rpcent.h > head/include/rpc/rpcsec_gss.h > head/include/rpc/svc.h > head/include/rpc/svc_soc.h > head/include/rpc/xdr.h > head/sys/rpc/rpc_com.h > head/sys/rpc/xdr.h > > Modified: head/include/rpc/auth.h > ============================================================================== > --- head/include/rpc/auth.h Sun Sep 2 18:54:51 2012 (r240059) > +++ head/include/rpc/auth.h Sun Sep 2 21:04:40 2012 (r240060) > @@ -51,6 +51,10 @@ > #include <sys/cdefs.h> > #include <sys/socket.h> > > +#ifdef __cplusplus > +extern "C" { > +#endif > + > #define MAX_AUTH_BYTES 400 > #define MAXNETNAMELEN 255 /* maximum length of network user's name */ > > @@ -366,4 +370,8 @@ __END_DECLS > #define RPCSEC_GSS_KRB5I 390004 > #define RPCSEC_GSS_KRB5P 390005 > > +#ifdef __cplusplus > +} > +#endif > + > #endif /* !_RPC_AUTH_H */ > > Modified: head/include/rpc/auth_unix.h > ============================================================================== > --- head/include/rpc/auth_unix.h Sun Sep 2 18:54:51 2012 (r240059) > +++ head/include/rpc/auth_unix.h Sun Sep 2 21:04:40 2012 (r240060) > @@ -48,6 +48,10 @@ > #define _RPC_AUTH_UNIX_H > #include <sys/cdefs.h> > > +#ifdef __cplusplus > +extern "C" { > +#endif > + > /* The machine name is part of a credential; it may not exceed 255 bytes */ > #define MAX_MACHINE_NAME 255 > > @@ -81,4 +85,8 @@ struct short_hand_verf { > struct opaque_auth new_cred; > }; > > +#ifdef __cplusplus > +} > +#endif > + > #endif /* !_RPC_AUTH_UNIX_H */ > > Modified: head/include/rpc/clnt.h > ============================================================================== > --- head/include/rpc/clnt.h Sun Sep 2 18:54:51 2012 (r240059) > +++ head/include/rpc/clnt.h Sun Sep 2 21:04:40 2012 (r240060) > @@ -64,6 +64,10 @@ > #include <netconfig.h> > #include <sys/un.h> > > +#ifdef __cplusplus > +extern "C" { > +#endif > + > /* > * Well-known IPV6 RPC broadcast address. > */ > @@ -551,6 +555,10 @@ extern enum clnt_stat rpc_broadcast_exp( > const int, const char *); > __END_DECLS > > +#ifdef __cplusplus > +} > +#endif > + > /* For backward compatibility */ > #include <rpc/clnt_soc.h> > > > Modified: head/include/rpc/clnt_soc.h > ============================================================================== > --- head/include/rpc/clnt_soc.h Sun Sep 2 18:54:51 2012 (r240059) > +++ head/include/rpc/clnt_soc.h Sun Sep 2 21:04:40 2012 (r240060) > @@ -49,6 +49,10 @@ > > #include <sys/cdefs.h> > > +#ifdef __cplusplus > +extern "C" { > +#endif > + > #define UDPMSGSIZE 8800 /* rpc imposed limit on udp msg size */ > > /* > @@ -103,4 +107,8 @@ extern CLIENT *clntudp_bufcreate(struct > struct timeval, int *, u_int, u_int); > __END_DECLS > > +#ifdef __cplusplus > +} > +#endif > + > #endif /* _RPC_CLNT_SOC_H */ > > Modified: head/include/rpc/des_crypt.h > ============================================================================== > --- head/include/rpc/des_crypt.h Sun Sep 2 18:54:51 2012 (r240059) > +++ head/include/rpc/des_crypt.h Sun Sep 2 21:04:40 2012 (r240060) > @@ -47,6 +47,10 @@ > #include <sys/cdefs.h> > #include <rpc/rpc.h> > > +#ifdef __cplusplus > +extern "C" { > +#endif > + > #define DES_MAXDATA 8192 /* max bytes encrypted in one call */ > #define DES_DIRMASK (1 << 0) > #define DES_ENCRYPT (0*DES_DIRMASK) /* Encrypt */ > @@ -103,4 +107,8 @@ __BEGIN_DECLS > void des_setparity( char *); > __END_DECLS > > +#ifdef __cplusplus > +} > +#endif > + > #endif /* _DES_DES_CRYPT_H */ > > Modified: head/include/rpc/nettype.h > ============================================================================== > --- head/include/rpc/nettype.h Sun Sep 2 18:54:51 2012 (r240059) > +++ head/include/rpc/nettype.h Sun Sep 2 21:04:40 2012 (r240060) > @@ -44,6 +44,10 @@ > > #include <netconfig.h> > > +#ifdef __cplusplus > +extern "C" { > +#endif > + > #define _RPC_NONE 0 > #define _RPC_NETPATH 1 > #define _RPC_VISIBLE 2 > @@ -61,4 +65,8 @@ extern struct netconfig *__rpc_getconf(v > extern struct netconfig *__rpc_getconfip(const char *); > __END_DECLS > > +#ifdef __cplusplus > +} > +#endif > + > #endif /* !_RPC_NETTYPE_H */ > > Modified: head/include/rpc/pmap_clnt.h > ============================================================================== > --- head/include/rpc/pmap_clnt.h Sun Sep 2 18:54:51 2012 (r240059) > +++ head/include/rpc/pmap_clnt.h Sun Sep 2 21:04:40 2012 (r240060) > @@ -66,6 +66,10 @@ > #define _RPC_PMAP_CLNT_H_ > #include <sys/cdefs.h> > > +#ifdef __cplusplus > +extern "C" { > +#endif > + > __BEGIN_DECLS > extern bool_t pmap_set(u_long, u_long, int, int); > extern bool_t pmap_unset(u_long, u_long); > @@ -83,4 +87,8 @@ extern u_short pmap_getport(struct sock > u_long, u_long, u_int); > __END_DECLS > > +#ifdef __cplusplus > +} > +#endif > + > #endif /* !_RPC_PMAP_CLNT_H_ */ > > Modified: head/include/rpc/pmap_rmt.h > ============================================================================== > --- head/include/rpc/pmap_rmt.h Sun Sep 2 18:54:51 2012 (r240059) > +++ head/include/rpc/pmap_rmt.h Sun Sep 2 21:04:40 2012 (r240060) > @@ -44,6 +44,10 @@ > #define _RPC_PMAP_RMT_H > #include <sys/cdefs.h> > > +#ifdef __cplusplus > +extern "C" { > +#endif > + > struct rmtcallargs { > u_long prog, vers, proc, arglen; > caddr_t args_ptr; > @@ -62,4 +66,8 @@ extern bool_t xdr_rmtcall_args(XDR *, st > extern bool_t xdr_rmtcallres(XDR *, struct rmtcallres *); > __END_DECLS > > +#ifdef __cplusplus > +} > +#endif > + > #endif /* !_RPC_PMAP_RMT_H */ > > Modified: head/include/rpc/rpc_com.h > ============================================================================== > --- head/include/rpc/rpc_com.h Sun Sep 2 18:54:51 2012 (r240059) > +++ head/include/rpc/rpc_com.h Sun Sep 2 21:04:40 2012 (r240060) > @@ -42,9 +42,13 @@ > #ifndef _RPC_RPCCOM_H > #define _RPC_RPCCOM_H > > +/* #pragma ident "@(#)rpc_com.h 1.11 93/07/05 SMI" */ > + > #include <sys/cdefs.h> > > -/* #pragma ident "@(#)rpc_com.h 1.11 93/07/05 SMI" */ > +#ifdef __cplusplus > +extern "C" { > +#endif > > /* > * The max size of the transport, if the size cannot be determined > @@ -80,4 +84,8 @@ char *_get_next_token(char *, int); > > __END_DECLS > > +#ifdef __cplusplus > +} > +#endif > + > #endif /* _RPC_RPCCOM_H */ > > Modified: head/include/rpc/rpc_msg.h > ============================================================================== > --- head/include/rpc/rpc_msg.h Sun Sep 2 18:54:51 2012 (r240059) > +++ head/include/rpc/rpc_msg.h Sun Sep 2 21:04:40 2012 (r240060) > @@ -43,6 +43,10 @@ > #ifndef _RPC_RPC_MSG_H > #define _RPC_RPC_MSG_H > > +#ifdef __cplusplus > +extern "C" { > +#endif > + > #define RPC_MSG_VERSION ((u_int32_t) 2) > #define RPC_SERVICE_PORT ((u_short) 2048) > > @@ -211,4 +215,8 @@ extern bool_t xdr_rejected_reply(XDR *, > extern void _seterr_reply(struct rpc_msg *, struct rpc_err *); > __END_DECLS > > +#ifdef __cplusplus > +} > +#endif > + > #endif /* !_RPC_RPC_MSG_H */ > > Modified: head/include/rpc/rpcb_clnt.h > ============================================================================== > --- head/include/rpc/rpcb_clnt.h Sun Sep 2 18:54:51 2012 (r240059) > +++ head/include/rpc/rpcb_clnt.h Sun Sep 2 21:04:40 2012 (r240060) > @@ -61,6 +61,10 @@ > #include <rpc/types.h> > #include <rpc/rpcb_prot.h> > > +#ifdef __cplusplus > +extern "C" { > +#endif > + > __BEGIN_DECLS > extern bool_t rpcb_set(const rpcprog_t, const rpcvers_t, > const struct netconfig *, const struct netbuf *); > @@ -82,4 +86,8 @@ extern char *rpcb_taddr2uaddr(struct net > extern struct netbuf *rpcb_uaddr2taddr(struct netconfig *, char *); > __END_DECLS > > +#ifdef __cplusplus > +} > +#endif > + > #endif /* !_RPC_RPCB_CLNT_H */ > > Modified: head/include/rpc/rpcent.h > ============================================================================== > --- head/include/rpc/rpcent.h Sun Sep 2 18:54:51 2012 (r240059) > +++ head/include/rpc/rpcent.h Sun Sep 2 21:04:40 2012 (r240060) > @@ -45,6 +45,9 @@ > /* #pragma ident "@(#)rpcent.h 1.13 94/04/25 SMI" */ > /* @(#)rpcent.h 1.1 88/12/06 SMI */ > > +#ifdef __cplusplus > +extern "C" { > +#endif > > struct rpcent { > char *r_name; /* name of server for this rpc program */ > @@ -64,4 +67,8 @@ extern void setrpcent(int); > extern void endrpcent(void); > __END_DECLS > > +#ifdef __cplusplus > +} > +#endif > + > #endif /* !_RPC_CENT_H */ > > Modified: head/include/rpc/rpcsec_gss.h > ============================================================================== > --- head/include/rpc/rpcsec_gss.h Sun Sep 2 18:54:51 2012 (r240059) > +++ head/include/rpc/rpcsec_gss.h Sun Sep 2 21:04:40 2012 (r240060) > @@ -29,6 +29,10 @@ > #ifndef _RPCSEC_GSS_H > #define _RPCSEC_GSS_H > > +#ifdef __cplusplus > +extern "C" { > +#endif > + > #include <gssapi/gssapi.h> > > #ifndef MAX_GSS_MECH > @@ -176,4 +180,8 @@ bool_t __rpc_gss_set_error(int rpc_gss_e > > __END_DECLS > > +#ifdef __cplusplus > +} > +#endif > + > #endif /* !_RPCSEC_GSS_H */ > > Modified: head/include/rpc/svc.h > ============================================================================== > --- head/include/rpc/svc.h Sun Sep 2 18:54:51 2012 (r240059) > +++ head/include/rpc/svc.h Sun Sep 2 21:04:40 2012 (r240060) > @@ -65,6 +65,10 @@ > * parameters, struct svc_req * and SVCXPRT *, defined below. > */ > > +#ifdef __cplusplus > +extern "C" { > +#endif > + > /* > * Service control requests > */ > @@ -467,6 +471,9 @@ int __rpc_get_local_uid(SVCXPRT *_transp > > __END_DECLS > > +#ifdef __cplusplus > +} > +#endif > > /* for backward compatibility */ > #include <rpc/svc_soc.h> > > Modified: head/include/rpc/svc_soc.h > ============================================================================== > --- head/include/rpc/svc_soc.h Sun Sep 2 18:54:51 2012 (r240059) > +++ head/include/rpc/svc_soc.h Sun Sep 2 21:04:40 2012 (r240060) > @@ -49,6 +49,10 @@ > * with TS-RPC > */ > > +#ifdef __cplusplus > +extern "C" { > +#endif > + > /* > * Approved way of getting address of caller > */ > @@ -113,4 +117,8 @@ __BEGIN_DECLS > extern SVCXPRT *svcfd_create(int, u_int, u_int); > __END_DECLS > > +#ifdef __cplusplus > +} > +#endif > + > #endif /* !_RPC_SVC_SOC_H */ > > Modified: head/include/rpc/xdr.h > ============================================================================== > --- head/include/rpc/xdr.h Sun Sep 2 18:54:51 2012 (r240059) > +++ head/include/rpc/xdr.h Sun Sep 2 21:04:40 2012 (r240060) > @@ -43,6 +43,10 @@ > #define _RPC_XDR_H > #include <sys/cdefs.h> > > +#ifdef __cplusplus > +extern "C" { > +#endif > + > /* > * XDR provides a conventional way for converting between C data > * types and an external bit-string representation. Library supplied > @@ -97,26 +101,26 @@ enum xdr_op { > * an operations vector for the particular implementation (e.g. see xdr_mem.c), > * and two private fields for the use of the particular implementation. > */ > -typedef struct __rpc_xdr { > +typedef struct XDR { > enum xdr_op x_op; /* operation; fast additional param */ > const struct xdr_ops { > /* get a long from underlying stream */ > - bool_t (*x_getlong)(struct __rpc_xdr *, long *); > + bool_t (*x_getlong)(struct XDR *, long *); > /* put a long to " */ > - bool_t (*x_putlong)(struct __rpc_xdr *, const long *); > + bool_t (*x_putlong)(struct XDR *, const long *); > /* get some bytes from " */ > - bool_t (*x_getbytes)(struct __rpc_xdr *, char *, u_int); > + bool_t (*x_getbytes)(struct XDR *, char *, u_int); > /* put some bytes to " */ > - bool_t (*x_putbytes)(struct __rpc_xdr *, const char *, u_int); > + bool_t (*x_putbytes)(struct XDR *, const char *, u_int); > /* returns bytes off from beginning */ > - u_int (*x_getpostn)(struct __rpc_xdr *); > + u_int (*x_getpostn)(struct XDR *); > /* lets you reposition the stream */ > - bool_t (*x_setpostn)(struct __rpc_xdr *, u_int); > + bool_t (*x_setpostn)(struct XDR *, u_int); > /* buf quick ptr to buffered data */ > - int32_t *(*x_inline)(struct __rpc_xdr *, u_int); > + int32_t *(*x_inline)(struct XDR *, u_int); > /* free privates of this xdr_stream */ > - void (*x_destroy)(struct __rpc_xdr *); > - bool_t (*x_control)(struct __rpc_xdr *, int, void *); > + void (*x_destroy)(struct XDR *); > + bool_t (*x_control)(struct XDR *, int, void *); > } *x_ops; > char * x_public; /* users' data */ > void * x_private; /* pointer to private data */ > @@ -366,4 +370,8 @@ extern bool_t xdrrec_eof(XDR *); > extern u_int xdrrec_readbytes(XDR *, caddr_t, u_int); > __END_DECLS > > +#ifdef __cplusplus > +} > +#endif > + > #endif /* !_RPC_XDR_H */ > > Modified: head/sys/rpc/rpc_com.h > ============================================================================== > --- head/sys/rpc/rpc_com.h Sun Sep 2 18:54:51 2012 (r240059) > +++ head/sys/rpc/rpc_com.h Sun Sep 2 21:04:40 2012 (r240060) > @@ -114,8 +114,8 @@ extern int __rpc_sockisbound(struct sock > extern int bindresvport(struct socket *so, struct sockaddr *sa); > > struct xucred; > -struct __rpc_xdr; > -bool_t xdr_authunix_parms(struct __rpc_xdr *xdrs, uint32_t *time, struct xucred *cred); > +struct XDR; > +bool_t xdr_authunix_parms(struct XDR *xdrs, uint32_t *time, struct xucred *cred); > #endif > > __END_DECLS > > Modified: head/sys/rpc/xdr.h > ============================================================================== > --- head/sys/rpc/xdr.h Sun Sep 2 18:54:51 2012 (r240059) > +++ head/sys/rpc/xdr.h Sun Sep 2 21:04:40 2012 (r240060) > @@ -97,26 +97,26 @@ enum xdr_op { > * an operations vector for the particular implementation (e.g. see xdr_mem.c), > * and two private fields for the use of the particular implementation. > */ > -typedef struct __rpc_xdr { > +typedef struct XDR { > enum xdr_op x_op; /* operation; fast additional param */ > const struct xdr_ops { > /* get a long from underlying stream */ > - bool_t (*x_getlong)(struct __rpc_xdr *, long *); > + bool_t (*x_getlong)(struct XDR *, long *); > /* put a long to " */ > - bool_t (*x_putlong)(struct __rpc_xdr *, const long *); > + bool_t (*x_putlong)(struct XDR *, const long *); > /* get some bytes from " */ > - bool_t (*x_getbytes)(struct __rpc_xdr *, char *, u_int); > + bool_t (*x_getbytes)(struct XDR *, char *, u_int); > /* put some bytes to " */ > - bool_t (*x_putbytes)(struct __rpc_xdr *, const char *, u_int); > + bool_t (*x_putbytes)(struct XDR *, const char *, u_int); > /* returns bytes off from beginning */ > - u_int (*x_getpostn)(struct __rpc_xdr *); > + u_int (*x_getpostn)(struct XDR *); > /* lets you reposition the stream */ > - bool_t (*x_setpostn)(struct __rpc_xdr *, u_int); > + bool_t (*x_setpostn)(struct XDR *, u_int); > /* buf quick ptr to buffered data */ > - int32_t *(*x_inline)(struct __rpc_xdr *, u_int); > + int32_t *(*x_inline)(struct XDR *, u_int); > /* free privates of this xdr_stream */ > - void (*x_destroy)(struct __rpc_xdr *); > - bool_t (*x_control)(struct __rpc_xdr *, int, void *); > + void (*x_destroy)(struct XDR *); > + bool_t (*x_control)(struct XDR *, int, void *); > } *x_ops; > char * x_public; /* users' data */ > void * x_private; /* pointer to private data */ Don't __BEGIN_DECLS and __END_DECLS do exactly that? i.e. it looks like some of the #ifdef's you added are redundant.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?5043CC95.9090707>