1/*	$NetBSD: svc_soc.h,v 1.1 2000/06/02 22:57:57 fvdl Exp $	*/
2/*	$FreeBSD$ */
3
4/*
5 * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
6 * unrestricted use provided that this legend is included on all tape
7 * media and as a part of the software program in whole or part.  Users
8 * may copy or modify Sun RPC without charge, but are not authorized
9 * to license or distribute it to anyone else except as part of a product or
10 * program developed by the user.
11 *
12 * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
13 * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
14 * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
15 *
16 * Sun RPC is provided with no support and without any obligation on the
17 * part of Sun Microsystems, Inc. to assist in its use, correction,
18 * modification or enhancement.
19 *
20 * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
21 * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
22 * OR ANY PART THEREOF.
23 *
24 * In no event will Sun Microsystems, Inc. be liable for any lost revenue
25 * or profits or other special, indirect and consequential damages, even if
26 * Sun has been advised of the possibility of such damages.
27 *
28 * Sun Microsystems, Inc.
29 * 2550 Garcia Avenue
30 * Mountain View, California  94043
31 */
32/*
33 * Copyright (c) 1986 - 1991 by Sun Microsystems, Inc.
34 */
35
36/*
37 * svc.h, Server-side remote procedure call interface.
38 */
39
40#ifndef _RPC_SVC_SOC_H
41#define _RPC_SVC_SOC_H
42#include <sys/cdefs.h>
43
44/* #pragma ident   "@(#)svc_soc.h  1.11    94/04/25 SMI" */
45/*      svc_soc.h 1.8 89/05/01 SMI      */
46
47/*
48 * All the following declarations are only for backward compatibility
49 * with TS-RPC
50 */
51
52/*
53 *  Approved way of getting address of caller
54 */
55#define svc_getcaller(x) (&(x)->xp_raddr)
56
57/*
58 * Service registration
59 *
60 * svc_register(xprt, prog, vers, dispatch, protocol)
61 *	SVCXPRT *xprt;
62 *	u_long prog;
63 *	u_long vers;
64 *	void (*dispatch)();
65 *	int protocol;    like TCP or UDP, zero means do not register
66 */
67__BEGIN_DECLS
68extern bool_t	svc_register(SVCXPRT *, u_long, u_long,
69		    void (*)(struct svc_req *, SVCXPRT *), int);
70__END_DECLS
71
72/*
73 * Service un-registration
74 *
75 * svc_unregister(prog, vers)
76 *	u_long prog;
77 *	u_long vers;
78 */
79__BEGIN_DECLS
80extern void	svc_unregister(u_long, u_long);
81__END_DECLS
82
83
84/*
85 * Memory based rpc for testing and timing.
86 */
87__BEGIN_DECLS
88extern SVCXPRT *svcraw_create(void);
89__END_DECLS
90
91
92/*
93 * Udp based rpc.
94 */
95__BEGIN_DECLS
96extern SVCXPRT *svcudp_create(int);
97extern SVCXPRT *svcudp_bufcreate(int, u_int, u_int);
98extern int svcudp_enablecache(SVCXPRT *, u_long);
99__END_DECLS
100
101
102/*
103 * Tcp based rpc.
104 */
105__BEGIN_DECLS
106extern SVCXPRT *svctcp_create(int, u_int, u_int);
107__END_DECLS
108
109/*
110 * Fd based rpc.
111 */
112__BEGIN_DECLS
113extern SVCXPRT *svcfd_create(int, u_int, u_int);
114__END_DECLS
115
116#endif /* !_RPC_SVC_SOC_H */
117