]> git.proxmox.com Git - ceph.git/blob - ceph/src/spdk/lib/iscsi/init_grp.h
add subtree-ish sources for 12.0.3
[ceph.git] / ceph / src / spdk / lib / iscsi / init_grp.h
1 /*-
2 * BSD LICENSE
3 *
4 * Copyright (C) 2008-2012 Daisuke Aoyama <aoyama@peach.ne.jp>.
5 * Copyright (c) Intel Corporation.
6 * All rights reserved.
7 *
8 * Redistribution and use in source and binary forms, with or without
9 * modification, are permitted provided that the following conditions
10 * are met:
11 *
12 * * Redistributions of source code must retain the above copyright
13 * notice, this list of conditions and the following disclaimer.
14 * * Redistributions in binary form must reproduce the above copyright
15 * notice, this list of conditions and the following disclaimer in
16 * the documentation and/or other materials provided with the
17 * distribution.
18 * * Neither the name of Intel Corporation nor the names of its
19 * contributors may be used to endorse or promote products derived
20 * from this software without specific prior written permission.
21 *
22 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
25 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
26 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
27 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
28 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
29 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
30 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
31 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
32 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33 */
34
35 #ifndef SPDK_INIT_GRP_H
36 #define SPDK_INIT_GRP_H
37
38 #include "spdk/conf.h"
39
40 enum group_state {
41 GROUP_INIT = 0x0,
42 GROUP_READY = 0x1,
43 GROUP_DESTROY = 0x2,
44 };
45
46 struct spdk_iscsi_init_grp {
47 int ninitiators;
48 char **initiators;
49 int nnetmasks;
50 char **netmasks;
51 int ref;
52 int tag;
53 enum group_state state;
54 TAILQ_ENTRY(spdk_iscsi_init_grp) tailq;
55 };
56
57 /* SPDK iSCSI Initiator Group management API */
58 int spdk_iscsi_init_grp_create_from_configfile(struct spdk_conf_section *sp);
59
60 int spdk_iscsi_init_grp_create_from_initiator_list(int tag,
61 int num_initiator_names, char **initiator_names,
62 int num_initiator_masks, char **initiator_masks);
63
64 void spdk_iscsi_init_grp_destroy(struct spdk_iscsi_init_grp *ig);
65 void spdk_iscsi_init_grp_destroy_by_tag(int tag);
66 void spdk_iscsi_init_grp_release(struct spdk_iscsi_init_grp *ig);
67
68 struct spdk_iscsi_init_grp *spdk_iscsi_init_grp_find_by_tag(int tag);
69
70 void spdk_iscsi_init_grp_register(struct spdk_iscsi_init_grp *ig);
71
72 int spdk_iscsi_init_grp_array_create(void);
73 void spdk_iscsi_init_grp_array_destroy(void);
74 int spdk_iscsi_init_grp_deletable(int tag);
75
76 #endif // SPDK_INIT_GRP_H