f48205be61a214698b763ff550ab9e657525104ccasper/*
f48205be61a214698b763ff550ab9e657525104ccasper * CDDL HEADER START
f48205be61a214698b763ff550ab9e657525104ccasper *
f48205be61a214698b763ff550ab9e657525104ccasper * The contents of this file are subject to the terms of the
f48205be61a214698b763ff550ab9e657525104ccasper * Common Development and Distribution License (the "License").
f48205be61a214698b763ff550ab9e657525104ccasper * You may not use this file except in compliance with the License.
f48205be61a214698b763ff550ab9e657525104ccasper *
f48205be61a214698b763ff550ab9e657525104ccasper * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
f48205be61a214698b763ff550ab9e657525104ccasper * or http://www.opensolaris.org/os/licensing.
f48205be61a214698b763ff550ab9e657525104ccasper * See the License for the specific language governing permissions
f48205be61a214698b763ff550ab9e657525104ccasper * and limitations under the License.
f48205be61a214698b763ff550ab9e657525104ccasper *
f48205be61a214698b763ff550ab9e657525104ccasper * When distributing Covered Code, include this CDDL HEADER in each
f48205be61a214698b763ff550ab9e657525104ccasper * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
f48205be61a214698b763ff550ab9e657525104ccasper * If applicable, add the following below this CDDL HEADER, with the
f48205be61a214698b763ff550ab9e657525104ccasper * fields enclosed by brackets "[]" replaced with your own identifying
f48205be61a214698b763ff550ab9e657525104ccasper * information: Portions Copyright [yyyy] [name of copyright owner]
f48205be61a214698b763ff550ab9e657525104ccasper *
f48205be61a214698b763ff550ab9e657525104ccasper * CDDL HEADER END
f48205be61a214698b763ff550ab9e657525104ccasper */
f48205be61a214698b763ff550ab9e657525104ccasper
f48205be61a214698b763ff550ab9e657525104ccasper/*
67dbe2be0c0f1e2eb428b89088bb5667e8f0b9f6Casper H.S. Dik * Copyright 2009 Sun Microsystems, Inc. All rights reserved.
f48205be61a214698b763ff550ab9e657525104ccasper * Use is subject to license terms.
f48205be61a214698b763ff550ab9e657525104ccasper */
f48205be61a214698b763ff550ab9e657525104ccasper
f48205be61a214698b763ff550ab9e657525104ccasper#ifndef _SVC_DG_PRIV_H
f48205be61a214698b763ff550ab9e657525104ccasper#define _SVC_DG_PRIV_H
f48205be61a214698b763ff550ab9e657525104ccasper
f48205be61a214698b763ff550ab9e657525104ccasper/*
f48205be61a214698b763ff550ab9e657525104ccasper * The svc_dg_data private datastructure shared by some services
f48205be61a214698b763ff550ab9e657525104ccasper * for nefarious reasons. THIS IS NOT AN INTERFACE. DO NOT USE.
f48205be61a214698b763ff550ab9e657525104ccasper */
f48205be61a214698b763ff550ab9e657525104ccasper
f48205be61a214698b763ff550ab9e657525104ccasper#ifdef __cplusplus
f48205be61a214698b763ff550ab9e657525104ccasperextern "C" {
f48205be61a214698b763ff550ab9e657525104ccasper#endif
f48205be61a214698b763ff550ab9e657525104ccasper
67dbe2be0c0f1e2eb428b89088bb5667e8f0b9f6Casper H.S. Dik/*
67dbe2be0c0f1e2eb428b89088bb5667e8f0b9f6Casper H.S. Dik * The size of the option header should include sufficient space for
67dbe2be0c0f1e2eb428b89088bb5667e8f0b9f6Casper H.S. Dik * a ucred; we reserve 32 words as before we had ucreds and we allocate
67dbe2be0c0f1e2eb428b89088bb5667e8f0b9f6Casper H.S. Dik * sizeof (svc_dg_data) + ucred_size(). Of course, opts must be declared
67dbe2be0c0f1e2eb428b89088bb5667e8f0b9f6Casper H.S. Dik * last so it can use the additional memory.
67dbe2be0c0f1e2eb428b89088bb5667e8f0b9f6Casper H.S. Dik */
67dbe2be0c0f1e2eb428b89088bb5667e8f0b9f6Casper H.S. Dik#define MAX_OPT_WORDS 32
f48205be61a214698b763ff550ab9e657525104ccasper
f48205be61a214698b763ff550ab9e657525104ccasper/*
f48205be61a214698b763ff550ab9e657525104ccasper * kept in xprt->xp_p2
f48205be61a214698b763ff550ab9e657525104ccasper */
f48205be61a214698b763ff550ab9e657525104ccasperstruct svc_dg_data {
f48205be61a214698b763ff550ab9e657525104ccasper /* Note: optbuf must be the first field, used by ti_opts.c code */
f48205be61a214698b763ff550ab9e657525104ccasper struct netbuf optbuf; /* netbuf for options */
f48205be61a214698b763ff550ab9e657525104ccasper uint_t su_iosz; /* size of send.recv buffer */
f48205be61a214698b763ff550ab9e657525104ccasper uint32_t su_xid; /* transaction id */
f48205be61a214698b763ff550ab9e657525104ccasper XDR su_xdrs; /* XDR handle */
f48205be61a214698b763ff550ab9e657525104ccasper char su_verfbody[MAX_AUTH_BYTES]; /* verifier body */
f48205be61a214698b763ff550ab9e657525104ccasper char *su_cache; /* cached data, NULL if none */
f48205be61a214698b763ff550ab9e657525104ccasper struct t_unitdata su_tudata; /* tu_data for recv */
67dbe2be0c0f1e2eb428b89088bb5667e8f0b9f6Casper H.S. Dik int opts[MAX_OPT_WORDS]; /* options: MUST BE LAST */
f48205be61a214698b763ff550ab9e657525104ccasper};
f48205be61a214698b763ff550ab9e657525104ccasper
f48205be61a214698b763ff550ab9e657525104ccasper#define get_svc_dg_data(xprt) ((struct svc_dg_data *)((xprt)->xp_p2))
f48205be61a214698b763ff550ab9e657525104ccasper
f48205be61a214698b763ff550ab9e657525104ccasper#ifdef __cplusplus
f48205be61a214698b763ff550ab9e657525104ccasper}
f48205be61a214698b763ff550ab9e657525104ccasper#endif
f48205be61a214698b763ff550ab9e657525104ccasper
f48205be61a214698b763ff550ab9e657525104ccasper#endif /* _SVC_DG_PRIV_H */