xref: /freebsd/include/rpc/svc_soc.h (revision 5a1d14419a5b620430949a46cb6ee63148a43cb9)
18360efbdSAlfred Perlstein /*	$NetBSD: svc_soc.h,v 1.1 2000/06/02 22:57:57 fvdl Exp $	*/
28360efbdSAlfred Perlstein 
32e322d37SHiroki Sato /*-
4*2321c474SPedro F. Giffuni  * SPDX-License-Identifier: BSD-3-Clause
5*2321c474SPedro F. Giffuni  *
62e322d37SHiroki Sato  * Copyright (c) 2009, Sun Microsystems, Inc.
72e322d37SHiroki Sato  * All rights reserved.
88360efbdSAlfred Perlstein  *
92e322d37SHiroki Sato  * Redistribution and use in source and binary forms, with or without
102e322d37SHiroki Sato  * modification, are permitted provided that the following conditions are met:
112e322d37SHiroki Sato  * - Redistributions of source code must retain the above copyright notice,
122e322d37SHiroki Sato  *   this list of conditions and the following disclaimer.
132e322d37SHiroki Sato  * - Redistributions in binary form must reproduce the above copyright notice,
142e322d37SHiroki Sato  *   this list of conditions and the following disclaimer in the documentation
152e322d37SHiroki Sato  *   and/or other materials provided with the distribution.
162e322d37SHiroki Sato  * - Neither the name of Sun Microsystems, Inc. nor the names of its
172e322d37SHiroki Sato  *   contributors may be used to endorse or promote products derived
182e322d37SHiroki Sato  *   from this software without specific prior written permission.
198360efbdSAlfred Perlstein  *
202e322d37SHiroki Sato  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
212e322d37SHiroki Sato  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
222e322d37SHiroki Sato  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
232e322d37SHiroki Sato  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
242e322d37SHiroki Sato  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
252e322d37SHiroki Sato  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
262e322d37SHiroki Sato  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
272e322d37SHiroki Sato  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
282e322d37SHiroki Sato  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
292e322d37SHiroki Sato  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
302e322d37SHiroki Sato  * POSSIBILITY OF SUCH DAMAGE.
318360efbdSAlfred Perlstein  */
328360efbdSAlfred Perlstein /*
338360efbdSAlfred Perlstein  * Copyright (c) 1986 - 1991 by Sun Microsystems, Inc.
348360efbdSAlfred Perlstein  */
358360efbdSAlfred Perlstein 
368360efbdSAlfred Perlstein /*
378360efbdSAlfred Perlstein  * svc.h, Server-side remote procedure call interface.
388360efbdSAlfred Perlstein  */
398360efbdSAlfred Perlstein 
408360efbdSAlfred Perlstein #ifndef _RPC_SVC_SOC_H
418360efbdSAlfred Perlstein #define _RPC_SVC_SOC_H
428360efbdSAlfred Perlstein #include <sys/cdefs.h>
438360efbdSAlfred Perlstein 
448360efbdSAlfred Perlstein /*      svc_soc.h 1.8 89/05/01 SMI      */
458360efbdSAlfred Perlstein 
468360efbdSAlfred Perlstein /*
478360efbdSAlfred Perlstein  * All the following declarations are only for backward compatibility
488360efbdSAlfred Perlstein  * with TS-RPC
498360efbdSAlfred Perlstein  */
508360efbdSAlfred Perlstein 
518360efbdSAlfred Perlstein /*
528360efbdSAlfred Perlstein  *  Approved way of getting address of caller
538360efbdSAlfred Perlstein  */
548360efbdSAlfred Perlstein #define svc_getcaller(x) (&(x)->xp_raddr)
558360efbdSAlfred Perlstein 
568360efbdSAlfred Perlstein /*
578360efbdSAlfred Perlstein  * Service registration
588360efbdSAlfred Perlstein  *
598360efbdSAlfred Perlstein  * svc_register(xprt, prog, vers, dispatch, protocol)
608360efbdSAlfred Perlstein  *	SVCXPRT *xprt;
618360efbdSAlfred Perlstein  *	u_long prog;
628360efbdSAlfred Perlstein  *	u_long vers;
638360efbdSAlfred Perlstein  *	void (*dispatch)();
648360efbdSAlfred Perlstein  *	int protocol;    like TCP or UDP, zero means do not register
658360efbdSAlfred Perlstein  */
668360efbdSAlfred Perlstein __BEGIN_DECLS
67bb28f3c2SWarner Losh extern bool_t	svc_register(SVCXPRT *, u_long, u_long,
68bb28f3c2SWarner Losh 		    void (*)(struct svc_req *, SVCXPRT *), int);
698360efbdSAlfred Perlstein __END_DECLS
708360efbdSAlfred Perlstein 
718360efbdSAlfred Perlstein /*
728360efbdSAlfred Perlstein  * Service un-registration
738360efbdSAlfred Perlstein  *
748360efbdSAlfred Perlstein  * svc_unregister(prog, vers)
758360efbdSAlfred Perlstein  *	u_long prog;
768360efbdSAlfred Perlstein  *	u_long vers;
778360efbdSAlfred Perlstein  */
788360efbdSAlfred Perlstein __BEGIN_DECLS
79bb28f3c2SWarner Losh extern void	svc_unregister(u_long, u_long);
808360efbdSAlfred Perlstein __END_DECLS
818360efbdSAlfred Perlstein 
828360efbdSAlfred Perlstein 
838360efbdSAlfred Perlstein /*
848360efbdSAlfred Perlstein  * Memory based rpc for testing and timing.
858360efbdSAlfred Perlstein  */
868360efbdSAlfred Perlstein __BEGIN_DECLS
87bb28f3c2SWarner Losh extern SVCXPRT *svcraw_create(void);
888360efbdSAlfred Perlstein __END_DECLS
898360efbdSAlfred Perlstein 
908360efbdSAlfred Perlstein 
918360efbdSAlfred Perlstein /*
928360efbdSAlfred Perlstein  * Udp based rpc.
938360efbdSAlfred Perlstein  */
948360efbdSAlfred Perlstein __BEGIN_DECLS
95bb28f3c2SWarner Losh extern SVCXPRT *svcudp_create(int);
96bb28f3c2SWarner Losh extern SVCXPRT *svcudp_bufcreate(int, u_int, u_int);
97bb28f3c2SWarner Losh extern int svcudp_enablecache(SVCXPRT *, u_long);
988360efbdSAlfred Perlstein __END_DECLS
998360efbdSAlfred Perlstein 
1008360efbdSAlfred Perlstein 
1018360efbdSAlfred Perlstein /*
1028360efbdSAlfred Perlstein  * Tcp based rpc.
1038360efbdSAlfred Perlstein  */
1048360efbdSAlfred Perlstein __BEGIN_DECLS
105bb28f3c2SWarner Losh extern SVCXPRT *svctcp_create(int, u_int, u_int);
1068360efbdSAlfred Perlstein __END_DECLS
1078360efbdSAlfred Perlstein 
1088360efbdSAlfred Perlstein /*
1098360efbdSAlfred Perlstein  * Fd based rpc.
1108360efbdSAlfred Perlstein  */
1118360efbdSAlfred Perlstein __BEGIN_DECLS
112bb28f3c2SWarner Losh extern SVCXPRT *svcfd_create(int, u_int, u_int);
1138360efbdSAlfred Perlstein __END_DECLS
1148360efbdSAlfred Perlstein 
1158360efbdSAlfred Perlstein #endif /* !_RPC_SVC_SOC_H */
116