xref: /onnv-gate/usr/src/lib/udapl/udapl_tavor/include/dapl_provider.h (revision 9517:b4839b0aa7a4)
1*9517SBill.Taylor@Sun.COM /*
2*9517SBill.Taylor@Sun.COM  * CDDL HEADER START
3*9517SBill.Taylor@Sun.COM  *
4*9517SBill.Taylor@Sun.COM  * The contents of this file are subject to the terms of the
5*9517SBill.Taylor@Sun.COM  * Common Development and Distribution License (the "License").
6*9517SBill.Taylor@Sun.COM  * You may not use this file except in compliance with the License.
7*9517SBill.Taylor@Sun.COM  *
8*9517SBill.Taylor@Sun.COM  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9*9517SBill.Taylor@Sun.COM  * or http://www.opensolaris.org/os/licensing.
10*9517SBill.Taylor@Sun.COM  * See the License for the specific language governing permissions
11*9517SBill.Taylor@Sun.COM  * and limitations under the License.
12*9517SBill.Taylor@Sun.COM  *
13*9517SBill.Taylor@Sun.COM  * When distributing Covered Code, include this CDDL HEADER in each
14*9517SBill.Taylor@Sun.COM  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15*9517SBill.Taylor@Sun.COM  * If applicable, add the following below this CDDL HEADER, with the
16*9517SBill.Taylor@Sun.COM  * fields enclosed by brackets "[]" replaced with your own identifying
17*9517SBill.Taylor@Sun.COM  * information: Portions Copyright [yyyy] [name of copyright owner]
18*9517SBill.Taylor@Sun.COM  *
19*9517SBill.Taylor@Sun.COM  * CDDL HEADER END
20*9517SBill.Taylor@Sun.COM  */
21*9517SBill.Taylor@Sun.COM 
22*9517SBill.Taylor@Sun.COM /*
23*9517SBill.Taylor@Sun.COM  * Copyright (c) 2002-2003, Network Appliance, Inc. All rights reserved.
24*9517SBill.Taylor@Sun.COM  */
25*9517SBill.Taylor@Sun.COM 
26*9517SBill.Taylor@Sun.COM /*
27*9517SBill.Taylor@Sun.COM  * Copyright 2003 Sun Microsystems, Inc.  All rights reserved.
28*9517SBill.Taylor@Sun.COM  * Use is subject to license terms.
29*9517SBill.Taylor@Sun.COM  */
30*9517SBill.Taylor@Sun.COM 
31*9517SBill.Taylor@Sun.COM /*
32*9517SBill.Taylor@Sun.COM  *
33*9517SBill.Taylor@Sun.COM  * HEADER: dapl_provider.h
34*9517SBill.Taylor@Sun.COM  *
35*9517SBill.Taylor@Sun.COM  * PURPOSE: Provider function table
36*9517SBill.Taylor@Sun.COM  * Description: DAT Interfaces to this provider
37*9517SBill.Taylor@Sun.COM  *
38*9517SBill.Taylor@Sun.COM  * $Id: dapl_provider.h,v 1.4 2003/07/31 14:04:17 jlentini Exp $
39*9517SBill.Taylor@Sun.COM  */
40*9517SBill.Taylor@Sun.COM 
41*9517SBill.Taylor@Sun.COM #ifndef _DAPL_PROVIDER_H_
42*9517SBill.Taylor@Sun.COM #define	_DAPL_PROVIDER_H_
43*9517SBill.Taylor@Sun.COM 
44*9517SBill.Taylor@Sun.COM #ifdef __cplusplus
45*9517SBill.Taylor@Sun.COM extern "C" {
46*9517SBill.Taylor@Sun.COM #endif
47*9517SBill.Taylor@Sun.COM 
48*9517SBill.Taylor@Sun.COM #include "dapl.h"
49*9517SBill.Taylor@Sun.COM 
50*9517SBill.Taylor@Sun.COM 
51*9517SBill.Taylor@Sun.COM /*
52*9517SBill.Taylor@Sun.COM  *
53*9517SBill.Taylor@Sun.COM  * Structures
54*9517SBill.Taylor@Sun.COM  *
55*9517SBill.Taylor@Sun.COM  */
56*9517SBill.Taylor@Sun.COM 
57*9517SBill.Taylor@Sun.COM typedef struct DAPL_PROVIDER_LIST_NODE
58*9517SBill.Taylor@Sun.COM {
59*9517SBill.Taylor@Sun.COM 	char				name[DAT_NAME_MAX_LENGTH];
60*9517SBill.Taylor@Sun.COM 	DAT_PROVIDER 			data;
61*9517SBill.Taylor@Sun.COM 	struct DAPL_PROVIDER_LIST_NODE	*next;
62*9517SBill.Taylor@Sun.COM 	struct DAPL_PROVIDER_LIST_NODE	*prev;
63*9517SBill.Taylor@Sun.COM } DAPL_PROVIDER_LIST_NODE;
64*9517SBill.Taylor@Sun.COM 
65*9517SBill.Taylor@Sun.COM 
66*9517SBill.Taylor@Sun.COM typedef struct DAPL_PROVIDER_LIST
67*9517SBill.Taylor@Sun.COM {
68*9517SBill.Taylor@Sun.COM     DAPL_PROVIDER_LIST_NODE 		*head;
69*9517SBill.Taylor@Sun.COM     DAPL_PROVIDER_LIST_NODE 		*tail;
70*9517SBill.Taylor@Sun.COM     DAT_COUNT				size;
71*9517SBill.Taylor@Sun.COM } DAPL_PROVIDER_LIST;
72*9517SBill.Taylor@Sun.COM 
73*9517SBill.Taylor@Sun.COM 
74*9517SBill.Taylor@Sun.COM /*
75*9517SBill.Taylor@Sun.COM  *
76*9517SBill.Taylor@Sun.COM  * Global Data
77*9517SBill.Taylor@Sun.COM  *
78*9517SBill.Taylor@Sun.COM  */
79*9517SBill.Taylor@Sun.COM 
80*9517SBill.Taylor@Sun.COM extern DAPL_PROVIDER_LIST 	g_dapl_provider_list;
81*9517SBill.Taylor@Sun.COM extern DAT_PROVIDER 		g_dapl_provider_template;
82*9517SBill.Taylor@Sun.COM extern int 			g_dapl_loopback_connection;
83*9517SBill.Taylor@Sun.COM 
84*9517SBill.Taylor@Sun.COM 
85*9517SBill.Taylor@Sun.COM /*
86*9517SBill.Taylor@Sun.COM  *
87*9517SBill.Taylor@Sun.COM  * Function Prototypes
88*9517SBill.Taylor@Sun.COM  *
89*9517SBill.Taylor@Sun.COM  */
90*9517SBill.Taylor@Sun.COM 
91*9517SBill.Taylor@Sun.COM extern DAT_RETURN
92*9517SBill.Taylor@Sun.COM dapl_provider_list_create(void);
93*9517SBill.Taylor@Sun.COM 
94*9517SBill.Taylor@Sun.COM extern DAT_RETURN
95*9517SBill.Taylor@Sun.COM dapl_provider_list_destroy(void);
96*9517SBill.Taylor@Sun.COM 
97*9517SBill.Taylor@Sun.COM extern DAT_COUNT
98*9517SBill.Taylor@Sun.COM dapl_provider_list_size(void);
99*9517SBill.Taylor@Sun.COM 
100*9517SBill.Taylor@Sun.COM extern DAT_RETURN
101*9517SBill.Taylor@Sun.COM dapl_provider_list_insert(
102*9517SBill.Taylor@Sun.COM     IN  const char *name,
103*9517SBill.Taylor@Sun.COM     OUT DAT_PROVIDER **p_data);
104*9517SBill.Taylor@Sun.COM 
105*9517SBill.Taylor@Sun.COM extern DAT_RETURN
106*9517SBill.Taylor@Sun.COM dapl_provider_list_search(
107*9517SBill.Taylor@Sun.COM     IN  const char *name,
108*9517SBill.Taylor@Sun.COM     OUT DAT_PROVIDER **p_data);
109*9517SBill.Taylor@Sun.COM 
110*9517SBill.Taylor@Sun.COM extern DAT_RETURN
111*9517SBill.Taylor@Sun.COM dapl_provider_list_remove(
112*9517SBill.Taylor@Sun.COM     IN  const char *name);
113*9517SBill.Taylor@Sun.COM 
114*9517SBill.Taylor@Sun.COM #ifdef __cplusplus
115*9517SBill.Taylor@Sun.COM }
116*9517SBill.Taylor@Sun.COM #endif
117*9517SBill.Taylor@Sun.COM 
118*9517SBill.Taylor@Sun.COM #endif /* _DAPL_PROVIDER_H_ */
119