8322 nl: misleading-indentation
[unleashed/tickless.git] / usr / src / lib / librdc / common / librdc.h
blob99ac34afe7474345700342525ee5225addb9e93e
1 /*
2 * CDDL HEADER START
4 * The contents of this file are subject to the terms of the
5 * Common Development and Distribution License (the "License").
6 * You may not use this file except in compliance with the License.
8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9 * or http://www.opensolaris.org/os/licensing.
10 * See the License for the specific language governing permissions
11 * and limitations under the License.
13 * When distributing Covered Code, include this CDDL HEADER in each
14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15 * If applicable, add the following below this CDDL HEADER, with the
16 * fields enclosed by brackets "[]" replaced with your own identifying
17 * information: Portions Copyright [yyyy] [name of copyright owner]
19 * CDDL HEADER END
22 * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
23 * Use is subject to license terms.
26 #ifndef _LIBRDC_H
27 #define _LIBRDC_H
29 #ifdef __cplusplus
30 extern "C" {
31 #endif
33 extern int Is_ipv6present(void);
34 extern int self_check(char *);
35 extern int gethost_netaddrs(char *, char *, char *, char *);
36 extern struct hostent *gethost_byname(const char *);
37 extern struct netbuf *get_addr(char *, ulong_t, ulong_t, struct netconfig **,
38 char *, char *, struct t_info *, int);
39 extern int convert_nconf_to_knconf(struct netconfig *, struct knetconfig *);
40 extern int rdc_check_release(char **);
42 #if !defined(NSC_MAXPATH)
43 #define NSC_MAXPATH 64
44 #endif
46 #define RDC_MAX_THREADS 1024
47 /* user interface to sndr */
48 typedef struct rdcconfig_s {
49 char phost[NSC_MAXPATH];
50 char pfile[NSC_MAXPATH];
51 char pbmp[NSC_MAXPATH];
52 char shost[NSC_MAXPATH];
53 char sfile[NSC_MAXPATH];
54 char sbmp[NSC_MAXPATH];
55 char direct[NSC_MAXPATH];
56 char mode[NSC_MAXPATH];
57 char group[NSC_MAXPATH];
58 char ctag[NSC_MAXPATH];
59 char options[NSC_MAXPATH];
60 int persist; /* 0 no, 1 yes */
61 struct rdcconfig_s *next;
62 } rdcconfig_t;
64 #define RDC_ERR_SIZE 256
66 typedef struct rdc_rc_s {
67 int rc;
68 char msg[RDC_ERR_SIZE];
69 struct rdc_rc_s *next;
70 rdcconfig_t set;
71 } rdc_rc_t;
73 #define RDC_FREEONE 0 /* free one rdcconfig_t* */
74 #define RDC_FREEALL 1 /* free entire chain of rdcconfig_t* */
76 /* and it's operations */
77 extern rdcconfig_t *rdc_alloc_config(const char *phost, const char *pfile,
78 const char *pbmp, const char *shost, const char *sfile, const char *sbmp,
79 const char *mode, const char *group, const char *ctag, const char *options,
80 int persist);
81 extern void rdc_free_config(rdcconfig_t *rdc, int all);
82 extern void rdc_free_rclist(rdc_rc_t *rc);
83 extern rdc_rc_t *new_rc(void);
84 extern rdc_rc_t *rdc_enable(rdcconfig_t *rdc);
85 extern rdc_rc_t *rdc_enable_clrbmp(rdcconfig_t *rdc);
86 extern rdc_rc_t *rdc_disable(rdcconfig_t *rdc);
87 extern rdc_rc_t *rdc_log(rdcconfig_t *rdc);
88 extern rdc_rc_t *rdc_usync(rdcconfig_t *rdc);
89 extern rdc_rc_t *rdc_fsync(rdcconfig_t *rdc);
90 extern rdc_rc_t *rdc_rsync(rdcconfig_t *rdc);
91 extern rdc_rc_t *rdc_ursync(rdcconfig_t *rdc);
92 extern rdc_rc_t *rdc_wait(rdcconfig_t *rdc);
93 extern rdc_rc_t *rdc_set_autosync(rdcconfig_t *rdc, int autosync);
94 extern rdc_rc_t *rdc_set_maxqfbas(rdcconfig_t *rdc, int maxqfbas);
95 extern rdc_rc_t *rdc_set_maxqitems(rdcconfig_t *rdc, int maxqitems);
96 extern int rdc_get_maxqfbas(rdcconfig_t *rdc);
97 extern int rdc_get_maxqitems(rdcconfig_t *rdc);
98 extern int rdc_get_autosync(rdcconfig_t *rdc);
99 extern rdc_rc_t *rdc_reconfig_pbmp(rdcconfig_t *rdc, char *pbmp);
100 extern rdc_rc_t *rdc_reconfig_sbmp(rdcconfig_t *rdc, char *sbmp);
101 extern rdc_rc_t *rdc_reconfig_group(rdcconfig_t *rdc, char *group);
102 extern rdc_rc_t *rdc_reconfig_ctag(rdcconfig_t *rdc, char *ctag);
103 extern rdc_rc_t *rdc_set_sync(rdcconfig_t *rdc);
104 extern rdc_rc_t *rdc_set_async(rdcconfig_t *rdc);
105 extern rdc_rc_t *rdc_health(rdcconfig_t *rdc);
106 extern rdc_rc_t *rdc_reverse_role(rdcconfig_t *rdc);
107 extern char *rdc_error(int *sev);
109 #ifdef __cplusplus
111 #endif
113 #endif /* _LIBRDC_H */