diff options
Diffstat (limited to 'sunrpc/rpc/svc.h')
-rw-r--r-- | sunrpc/rpc/svc.h | 76 |
1 files changed, 46 insertions, 30 deletions
diff --git a/sunrpc/rpc/svc.h b/sunrpc/rpc/svc.h index 4f4f546f11..081f9bc327 100644 --- a/sunrpc/rpc/svc.h +++ b/sunrpc/rpc/svc.h @@ -6,23 +6,23 @@ * may copy or modify Sun RPC without charge, but are not authorized * to license or distribute it to anyone else except as part of a product or * program developed by the user. - * + * * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. - * + * * Sun RPC is provided with no support and without any obligation on the * part of Sun Microsystems, Inc. to assist in its use, correction, * modification or enhancement. - * + * * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC * OR ANY PART THEREOF. - * + * * In no event will Sun Microsystems, Inc. be liable for any lost revenue * or profits or other special, indirect and consequential damages, even if * Sun has been advised of the possibility of such damages. - * + * * Sun Microsystems, Inc. * 2550 Garcia Avenue * Mountain View, California 94043 @@ -37,6 +37,8 @@ #ifndef __SVC_HEADER__ #define __SVC_HEADER__ +__BEGIN_DECLS + /* * This interface must manage two items concerning remote procedure calling: * @@ -151,9 +153,11 @@ struct svc_req { * u_long prog; * u_long vers; * void (*dispatch)(); - * int protocol; like TCP or UDP, zero means do not register + * int protocol; like TCP or UDP, zero means do not register */ -extern bool_t svc_register(); +extern bool_t svc_register __P ((SVCXPRT *__xprt, u_long __prog, + u_long __vers, void (*__dispatch) (), + int __protocol)); /* * Service un-registration @@ -162,7 +166,7 @@ extern bool_t svc_register(); * u_long prog; * u_long vers; */ -extern void svc_unregister(); +extern void svc_unregister __P ((u_long __prog, u_long __vers)); /* * Transport registration. @@ -170,7 +174,7 @@ extern void svc_unregister(); * xprt_register(xprt) * SVCXPRT *xprt; */ -extern void xprt_register(); +extern void xprt_register __P ((SVCXPRT *__xprt)); /* * Transport un-register @@ -178,7 +182,7 @@ extern void xprt_register(); * xprt_unregister(xprt) * SVCXPRT *xprt; */ -extern void xprt_unregister(); +extern void xprt_unregister __P ((SVCXPRT *__xprt)); @@ -186,7 +190,7 @@ extern void xprt_unregister(); /* * When the service routine is called, it must first check to see if it * knows about the procedure; if not, it should call svcerr_noproc - * and return. If so, it should deserialize its arguments via + * and return. If so, it should deserialize its arguments via * SVC_GETARGS (defined above). If the deserialization does not work, * svcerr_decode should be called followed by a return. Successful * decoding of the arguments should be followed the execution of the @@ -197,7 +201,7 @@ extern void xprt_unregister(); * Note: do not confuse access-control failure with weak authentication! * * NB: In pure implementations of rpc, the caller always waits for a reply - * msg. This message is sent when svc_sendreply is called. + * msg. This message is sent when svc_sendreply is called. * Therefore pure service implementations should always call * svc_sendreply even if the function logically returns void; use * xdr.h - xdr_void for the xdr routine. HOWEVER, tcp based rpc allows @@ -209,15 +213,24 @@ extern void xprt_unregister(); * deadlock the caller and server processes! */ -extern bool_t svc_sendreply(); -extern void svcerr_decode(); -extern void svcerr_weakauth(); -extern void svcerr_noproc(); -extern void svcerr_progvers(); -extern void svcerr_auth(); -extern void svcerr_noprog(); -extern void svcerr_systemerr(); - +extern bool_t svc_sendreply __P ((SVCXPRT *xprt, xdrproc_t __xdr_results, + caddr_t __xdr_location)); + +extern void svcerr_decode __P ((SVCXPRT *__xprt)); + +extern void svcerr_weakauth __P ((SVCXPRT *__xprt)); + +extern void svcerr_noproc __P ((SVCXPRT *__xprt)); + +extern void svcerr_progvers __P ((SVCXPRT *__xprt, u_long __low_vers, + u_long __high_vers)); + +extern void svcerr_auth __P ((SVCXPRT *__xprt, enum auth_stat __why)); + +extern void svcerr_noprog __P ((SVCXPRT *__xprt)); + +extern void svcerr_systemerr __P ((SVCXPRT *__xprt)); + /* * Lowest level dispatching -OR- who owns this process anyway. * Somebody has to wait for incoming requests and then call the correct @@ -231,7 +244,7 @@ extern void svcerr_systemerr(); /* * Global keeper of rpc service descriptors in use - * dynamic; must be inspected before each call to select + * dynamic; must be inspected before each call to select */ #ifdef FD_SETSIZE extern fd_set svc_fdset; @@ -246,9 +259,9 @@ extern int svc_fds; */ extern void rpctest_service(); -extern void svc_getreq(); -extern void svc_getreqset(); /* takes fdset instead of int */ -extern void svc_run(); /* never returns */ +extern void svc_getreq __P ((int __rdfds)); +extern void svc_getreqset __P ((fd_set *readfds)); +extern void svc_run __P ((void)) __attribute__ ((noreturn)); /* * Socket to use on svcxxx_create call to get default socket @@ -262,19 +275,22 @@ extern void svc_run(); /* never returns */ /* * Memory based rpc for testing and timing. */ -extern SVCXPRT *svcraw_create(); +extern SVCXPRT *svcraw_create __P ((void)); /* * Udp based rpc. */ -extern SVCXPRT *svcudp_create(); -extern SVCXPRT *svcudp_bufcreate(); +extern SVCXPRT *svcudp_create __P ((int __sock)); +extern SVCXPRT *svcudp_bufcreate __P ((int __sock, u_int __sendsz, + u_int __recvsz)); /* * Tcp based rpc. */ -extern SVCXPRT *svctcp_create(); +extern SVCXPRT *svctcp_create __P ((int __sock, u_int __sendsize, + u_int __recvsize)); +__END_DECLS -#endif !__SVC_HEADER__ +#endif /* !__SVC_HEADER__ */ |