svid_funcs.c revision 1219:f89f56c2d9ac
1/* 2 * CDDL HEADER START 3 * 4 * The contents of this file are subject to the terms of the 5 * Common Development and Distribution License, Version 1.0 only 6 * (the "License"). You may not use this file except in compliance 7 * with the License. 8 * 9 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 10 * or http://www.opensolaris.org/os/licensing. 11 * See the License for the specific language governing permissions 12 * and limitations under the License. 13 * 14 * When distributing Covered Code, include this CDDL HEADER in each 15 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 16 * If applicable, add the following below this CDDL HEADER, with the 17 * fields enclosed by brackets "[]" replaced with your own identifying 18 * information: Portions Copyright [yyyy] [name of copyright owner] 19 * 20 * CDDL HEADER END 21 */ 22 23/* 24 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 25 * Use is subject to license terms. 26 */ 27 28#pragma ident "%Z%%M% %I% %E% SMI" 29 30/* 31 * These functions are documented in the SVID as being part of libnsl. 32 * They are also defined as macros in various RPC header files. To 33 * ensure that these interfaces exist as functions, we've created this 34 * (we hope unused) file. 35 */ 36 37#include "mt.h" 38#include <rpc/rpc.h> 39#include <sys/types.h> 40#include <synch.h> 41 42#undef auth_destroy 43#undef clnt_call 44#undef clnt_send 45#undef clnt_control 46#undef clnt_destroy 47#undef clnt_freeres 48#undef clnt_geterr 49#undef svc_destroy 50#undef svc_freeargs 51#undef svc_getargs 52#undef svc_getrpccaller 53#undef xdr_destroy 54#undef xdr_getpos 55#undef xdr_inline 56#undef xdr_setpos 57 58extern int __svc_versquiet_get(); 59extern void __svc_versquiet_off(); 60extern void __svc_versquiet_on(); 61 62void 63auth_destroy(AUTH *auth) 64{ 65 ((*((auth)->ah_ops->ah_destroy))(auth)); 66} 67 68enum clnt_stat 69clnt_call(CLIENT *cl, uint32_t proc, xdrproc_t xargs, caddr_t argsp, 70 xdrproc_t xres, caddr_t resp, struct timeval timeout) 71{ 72 return ((*(cl)->cl_ops->cl_call)(cl, proc, xargs, argsp, xres, resp, 73 timeout)); 74} 75 76enum clnt_stat 77clnt_send(CLIENT *cl, uint32_t proc, xdrproc_t xargs, caddr_t argsp) 78{ 79 return ((*(cl)->cl_ops->cl_send)(cl, proc, xargs, argsp)); 80} 81 82bool_t 83clnt_control(CLIENT *cl, uint_t rq, char *in) 84{ 85 return ((*(cl)->cl_ops->cl_control)(cl, rq, in)); 86} 87 88void 89clnt_destroy(CLIENT *cl) 90{ 91 ((*(cl)->cl_ops->cl_destroy)(cl)); 92} 93 94bool_t 95clnt_freeres(CLIENT *cl, xdrproc_t xres, caddr_t resp) 96{ 97 return ((*(cl)->cl_ops->cl_freeres)(cl, xres, resp)); 98} 99 100void 101clnt_geterr(CLIENT *cl, struct rpc_err *errp) 102{ 103 (*(cl)->cl_ops->cl_geterr)(cl, errp); 104} 105 106bool_t 107svc_control(SVCXPRT *xprt, const uint_t rq, void *in) 108{ 109 switch (rq) { 110 case SVCGET_VERSQUIET: 111 *((int *)in) = __svc_versquiet_get(xprt); 112 return (TRUE); 113 case SVCSET_VERSQUIET: 114 if (*((int *)in) == 0) 115 __svc_versquiet_off(xprt); 116 else 117 __svc_versquiet_on(xprt); 118 return (TRUE); 119 default: 120 return ((*(xprt)->xp_ops->xp_control)(xprt, rq, in)); 121 } 122} 123 124void 125svc_destroy(SVCXPRT *xprt) 126{ 127 (*(xprt)->xp_ops->xp_destroy)(xprt); 128} 129 130bool_t 131svc_freeargs(SVCXPRT *xprt, xdrproc_t xargs, char *argsp) 132{ 133 return ((*(xprt)->xp_ops->xp_freeargs)(xprt, xargs, argsp)); 134} 135 136bool_t 137svc_getargs(SVCXPRT *xprt, xdrproc_t xargs, char *argsp) 138{ 139 return ((*(xprt)->xp_ops->xp_getargs)(xprt, xargs, argsp)); 140} 141 142struct netbuf * 143svc_getrpccaller(SVCXPRT *xprt) 144{ 145 return (&(xprt)->xp_rtaddr); 146} 147 148void 149xdr_destroy(XDR *xdrs) 150{ 151 (*(xdrs)->x_ops->x_destroy)(xdrs); 152} 153 154uint_t 155xdr_getpos(XDR *xdrs) 156{ 157 return ((*(xdrs)->x_ops->x_getpostn)(xdrs)); 158} 159 160rpc_inline_t * 161xdr_inline(XDR *xdrs, int len) 162{ 163 return ((*(xdrs)->x_ops->x_inline)(xdrs, len)); 164} 165 166bool_t 167xdr_setpos(XDR *xdrs, uint_t pos) 168{ 169 return ((*(xdrs)->x_ops->x_setpostn)(xdrs, pos)); 170} 171