usr/src/uts/common/sys/multidata.h
author masputra
Sat, 22 Oct 2005 22:50:14 -0700
changeset 741 40027a3621ac
parent 0 68f95e015346
permissions -rw-r--r--
PSARC 2005/082 Yosemite: UDP Performance Enhancement 4796051 Solaris needs a more complete HW checksumming support 4905227 duplicate macros in ipclassifier.h and ip.h 4915681 need hardware checksum offload for the case of IP/UDP reassembly 6201076 outbound flow-control dysfunctional, ip to ce using mdt 6223331 ipv6 flow control may corrupt UDP packets 6223809 16-bit aligned IP header should be allowed for all x86 platforms 6275398 Galaxy hangs when running lmbench 6281836 Yosemite project integration into Solaris 6281885 xge needs to support IPv6 checksum offload 6282776 IPv6 NCE fast path is not created for incoming solicitation 6304890 IP transmit-side checksum logic needs to be tightened 6304902 IP6_IN_NOCKSUM is obsolete and should be torched 6304904 UDP should reject TI_GETPEERNAME for non-connected endpoint 6306768 IP and UDP device and module definitions need to be centralized
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     1
/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     2
 * CDDL HEADER START
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     3
 *
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     4
 * The contents of this file are subject to the terms of the
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     5
 * Common Development and Distribution License, Version 1.0 only
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     6
 * (the "License").  You may not use this file except in compliance
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     7
 * with the License.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     8
 *
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     9
 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    10
 * or http://www.opensolaris.org/os/licensing.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    11
 * See the License for the specific language governing permissions
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    12
 * and limitations under the License.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    13
 *
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    14
 * When distributing Covered Code, include this CDDL HEADER in each
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    15
 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    16
 * If applicable, add the following below this CDDL HEADER, with the
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    17
 * fields enclosed by brackets "[]" replaced with your own identifying
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    18
 * information: Portions Copyright [yyyy] [name of copyright owner]
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    19
 *
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    20
 * CDDL HEADER END
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    21
 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    22
/*
741
40027a3621ac PSARC 2005/082 Yosemite: UDP Performance Enhancement
masputra
parents: 0
diff changeset
    23
 * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    24
 * Use is subject to license terms.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    25
 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    26
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    27
#ifndef _SYS_MULTIDATA_H
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    28
#define	_SYS_MULTIDATA_H
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    29
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    30
#pragma ident	"%Z%%M%	%I%	%E% SMI"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    31
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    32
#ifdef	__cplusplus
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    33
extern "C" {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    34
#endif
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    35
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    36
/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    37
 * Multidata interface declarations.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    38
 * These interfaces are still evolving; do not use them in unbundled drivers.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    39
 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    40
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    41
/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    42
 * Multidata packet attribute information.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    43
 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    44
typedef struct pattrinfo_s {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    45
	uint_t	type;		/* attribute type value */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    46
	uint_t	len;		/* attribute length */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    47
	void	*buf;		/* pointer to user data area */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    48
} pattrinfo_t;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    49
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    50
/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    51
 * Maximum number of payload areas for a single packet descriptor.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    52
 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    53
#define	MULTIDATA_MAX_PBUFS	16
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    54
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    55
/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    56
 * Multidata buffer information.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    57
 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    58
typedef struct mbufinfo_s {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    59
	uchar_t	*hbuf_rptr;	/* start address of header buffer */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    60
	uchar_t	*hbuf_wptr;	/* end address of header buffer */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    61
	uint_t	pbuf_cnt;	/* number of payload buffer */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    62
	struct pbuf_ary_s {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    63
		uchar_t	*pbuf_rptr;	/* start address of payload buffer */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    64
		uchar_t	*pbuf_wptr;	/* end address of payload buffer */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    65
	} pbuf_ary[MULTIDATA_MAX_PBUFS];
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    66
} mbufinfo_t;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    67
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    68
/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    69
 * Multidata packet descriptor information.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    70
 */
741
40027a3621ac PSARC 2005/082 Yosemite: UDP Performance Enhancement
masputra
parents: 0
diff changeset
    71
struct pld_ary_s {
40027a3621ac PSARC 2005/082 Yosemite: UDP Performance Enhancement
masputra
parents: 0
diff changeset
    72
	int pld_pbuf_idx;	/* payload buffer index */
40027a3621ac PSARC 2005/082 Yosemite: UDP Performance Enhancement
masputra
parents: 0
diff changeset
    73
	uchar_t *pld_rptr;	/* start address of payload data */
40027a3621ac PSARC 2005/082 Yosemite: UDP Performance Enhancement
masputra
parents: 0
diff changeset
    74
	uchar_t *pld_wptr;	/* pointer to end of payload data */
40027a3621ac PSARC 2005/082 Yosemite: UDP Performance Enhancement
masputra
parents: 0
diff changeset
    75
};
40027a3621ac PSARC 2005/082 Yosemite: UDP Performance Enhancement
masputra
parents: 0
diff changeset
    76
40027a3621ac PSARC 2005/082 Yosemite: UDP Performance Enhancement
masputra
parents: 0
diff changeset
    77
#define	PDESCINFO_STRUCT(elems) 					\
40027a3621ac PSARC 2005/082 Yosemite: UDP Performance Enhancement
masputra
parents: 0
diff changeset
    78
{									\
40027a3621ac PSARC 2005/082 Yosemite: UDP Performance Enhancement
masputra
parents: 0
diff changeset
    79
	uint_t	flags;		/* misc. flags */			\
40027a3621ac PSARC 2005/082 Yosemite: UDP Performance Enhancement
masputra
parents: 0
diff changeset
    80
	uchar_t	*hdr_base;	/* start address of header area */	\
40027a3621ac PSARC 2005/082 Yosemite: UDP Performance Enhancement
masputra
parents: 0
diff changeset
    81
	uchar_t *hdr_rptr;	/* start address of header data */	\
40027a3621ac PSARC 2005/082 Yosemite: UDP Performance Enhancement
masputra
parents: 0
diff changeset
    82
	uchar_t *hdr_wptr;	/* end address of header data */	\
40027a3621ac PSARC 2005/082 Yosemite: UDP Performance Enhancement
masputra
parents: 0
diff changeset
    83
	uchar_t	*hdr_lim;	/* end address of header area */	\
40027a3621ac PSARC 2005/082 Yosemite: UDP Performance Enhancement
masputra
parents: 0
diff changeset
    84
	uint_t	pld_cnt;	/* number of payload area */		\
40027a3621ac PSARC 2005/082 Yosemite: UDP Performance Enhancement
masputra
parents: 0
diff changeset
    85
	struct pld_ary_s	pld_ary[(elems)];			\
40027a3621ac PSARC 2005/082 Yosemite: UDP Performance Enhancement
masputra
parents: 0
diff changeset
    86
}
40027a3621ac PSARC 2005/082 Yosemite: UDP Performance Enhancement
masputra
parents: 0
diff changeset
    87
40027a3621ac PSARC 2005/082 Yosemite: UDP Performance Enhancement
masputra
parents: 0
diff changeset
    88
typedef struct pdescinfo_s PDESCINFO_STRUCT(MULTIDATA_MAX_PBUFS) pdescinfo_t;
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    89
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    90
/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    91
 * Possible values for flags
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    92
 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    93
#define	PDESC_HBUF_REF	0x1	/* descriptor uses header buffer */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    94
#define	PDESC_PBUF_REF	0x2	/* descriptor uses payload buffer(s) */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    95
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    96
#define	PDESC_HDRSIZE(p) ((p)->hdr_lim - (p)->hdr_base)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    97
#define	PDESC_HDRL(p)    ((p)->hdr_wptr - (p)->hdr_rptr)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    98
#define	PDESC_HDRHEAD(p) ((p)->hdr_rptr - (p)->hdr_base)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    99
#define	PDESC_HDRTAIL(p) ((p)->hdr_lim - (p)->hdr_wptr)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   100
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   101
#define	PDESC_HDR_ADD(p, base, head, len, tail) {		\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   102
	(p)->hdr_base = (base);					\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   103
	(p)->hdr_rptr = (base) + (head);			\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   104
	(p)->hdr_wptr = (p)->hdr_rptr + (len);			\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   105
	(p)->hdr_lim = (p)->hdr_wptr + (tail);			\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   106
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   107
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   108
#define	PDESC_PLD_INIT(p)  ((p)->pld_cnt = 0)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   109
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   110
#define	PDESC_PLD_SPAN_SIZE(p, n)				\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   111
	((p)->pld_ary[(n)].pld_wptr - (p)->pld_ary[(n)].pld_rptr)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   112
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   113
#define	PDESC_PLDL(p, n) PDESC_PLD_SPAN_SIZE(p, n)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   114
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   115
#define	PDESC_PLD_SPAN_TRIM(p, n, b) {				\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   116
	((p)->pld_ary[(n)].pld_wptr -= (b));			\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   117
	ASSERT((p)->pld_ary[(n)].pld_wptr >= (p)->pld_ary[(n)].pld_rptr); \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   118
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   119
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   120
#define	PDESC_PLD_SPAN_CLEAR(p, n)				\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   121
	PDESC_PLD_SPAN_TRIM(p, n, PDESC_PLD_SPAN_SIZE(p, n))
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   122
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   123
#define	PDESC_PLD_SPAN_ADD(p, pbuf_idx, rptr, len) {		\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   124
	ASSERT((p)->pld_cnt < MULTIDATA_MAX_PBUFS);		\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   125
	(p)->pld_ary[(p)->pld_cnt].pld_pbuf_idx = (pbuf_idx);	\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   126
	(p)->pld_ary[(p)->pld_cnt].pld_rptr = (rptr);		\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   127
	(p)->pld_ary[(p)->pld_cnt].pld_wptr = (rptr) + (len);	\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   128
	(p)->pld_cnt++;						\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   129
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   130
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   131
/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   132
 * These structures are opaque to multidata clients.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   133
 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   134
struct pdesc_s;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   135
typedef struct pdesc_s pdesc_t;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   136
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   137
struct pattr_s;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   138
typedef struct pattr_s pattr_t;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   139
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   140
struct multidata_s;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   141
typedef struct multidata_s multidata_t;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   142
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   143
#ifdef _KERNEL
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   144
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   145
extern multidata_t *mmd_alloc(mblk_t *, mblk_t **, int);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   146
extern int mmd_addpldbuf(multidata_t *, mblk_t *);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   147
extern multidata_t *mmd_getmultidata(mblk_t *);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   148
extern void mmd_getregions(multidata_t *, mbufinfo_t *);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   149
extern uint_t mmd_getcnt(multidata_t *, uint_t *, uint_t *);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   150
extern pdesc_t *mmd_addpdesc(multidata_t *, pdescinfo_t *, int *, int);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   151
extern void mmd_rempdesc(pdesc_t *);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   152
extern pdesc_t *mmd_getfirstpdesc(multidata_t *, pdescinfo_t *);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   153
extern pdesc_t *mmd_getlastpdesc(multidata_t *, pdescinfo_t *);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   154
extern pdesc_t *mmd_getnextpdesc(pdesc_t *, pdescinfo_t *);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   155
extern pdesc_t *mmd_getprevpdesc(pdesc_t *, pdescinfo_t *);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   156
extern pdesc_t *mmd_adjpdesc(pdesc_t *, pdescinfo_t *);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   157
extern mblk_t *mmd_transform(pdesc_t *);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   158
extern mblk_t *mmd_transform_link(pdesc_t *);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   159
extern int mmd_dupbufs(multidata_t *, mblk_t **, mblk_t **);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   160
extern int mmd_getpdescinfo(pdesc_t *, pdescinfo_t *);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   161
extern pattr_t *mmd_addpattr(multidata_t *, pdesc_t *, pattrinfo_t *,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   162
    boolean_t, int);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   163
extern void mmd_rempattr(pattr_t *);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   164
extern pattr_t *mmd_getpattr(multidata_t *, pdesc_t *, pattrinfo_t *);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   165
extern void mmd_getsize(multidata_t *, uint_t *, uint_t *);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   166
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   167
#endif /* _KERNEL */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   168
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   169
#ifdef	__cplusplus
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   170
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   171
#endif
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   172
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   173
#endif	/* _SYS_MULTIDATA_H */