1 /* 2 * Copyright (c) 2004-2007 Voltaire, Inc. All rights reserved. 3 * Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved. 4 * Copyright (c) 1996-2003 Intel Corporation. All rights reserved. 5 * 6 * This software is available to you under a choice of one of two 7 * licenses. You may choose to be licensed under the terms of the GNU 8 * General Public License (GPL) Version 2, available from the file 9 * COPYING in the main directory of this source tree, or the 10 * OpenIB.org BSD license below: 11 * 12 * Redistribution and use in source and binary forms, with or 13 * without modification, are permitted provided that the following 14 * conditions are met: 15 * 16 * - Redistributions of source code must retain the above 17 * copyright notice, this list of conditions and the following 18 * disclaimer. 19 * 20 * - Redistributions in binary form must reproduce the above 21 * copyright notice, this list of conditions and the following 22 * disclaimer in the documentation and/or other materials 23 * provided with the distribution. 24 * 25 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 26 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 27 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 28 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS 29 * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN 30 * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 31 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 32 * SOFTWARE. 33 * 34 */ 35 36 /* 37 * Abstract: 38 * Declaration of osm_mcm_info_t. 39 * This object represents a Multicast Forwarding Information object. 40 * This object is part of the OpenSM family of objects. 41 */ 42 43 #ifndef _OSM_MCM_INFO_H_ 44 #define _OSM_MCM_INFO_H_ 45 46 #include <string.h> 47 #include <iba/ib_types.h> 48 #include <complib/cl_qlist.h> 49 #include <opensm/osm_base.h> 50 51 #ifdef __cplusplus 52 # define BEGIN_C_DECLS extern "C" { 53 # define END_C_DECLS } 54 #else /* !__cplusplus */ 55 # define BEGIN_C_DECLS 56 # define END_C_DECLS 57 #endif /* __cplusplus */ 58 59 BEGIN_C_DECLS 60 /****s* OpenSM: Multicast Member Info/osm_mcm_info_t 61 * NAME 62 * osm_mcm_info_t 63 * 64 * DESCRIPTION 65 * Multicast Membership Info object. 66 * This object contains information about a node's membership 67 * in a particular multicast group. 68 * 69 * This object should be treated as opaque and should 70 * be manipulated only through the provided functions. 71 * 72 * SYNOPSIS 73 */ 74 typedef struct osm_mcm_info { 75 cl_list_item_t list_item; 76 ib_net16_t mlid; 77 } osm_mcm_info_t; 78 /* 79 * FIELDS 80 * list_item 81 * Linkage structure for cl_qlist. MUST BE FIRST MEMBER! 82 * 83 * mlid 84 * MLID of this multicast group. 85 * 86 * SEE ALSO 87 *********/ 88 89 /****f* OpenSM: Multicast Member Info/osm_mcm_info_new 90 * NAME 91 * osm_mcm_info_new 92 * 93 * DESCRIPTION 94 * Returns an initialized a Multicast Member Info object for use. 95 * 96 * SYNOPSIS 97 */ 98 osm_mcm_info_t *osm_mcm_info_new(IN const ib_net16_t mlid); 99 /* 100 * PARAMETERS 101 * mlid 102 * [in] MLID value for this multicast group. 103 * 104 * RETURN VALUES 105 * Pointer to an initialized tree node. 106 * 107 * NOTES 108 * 109 * SEE ALSO 110 *********/ 111 112 /****f* OpenSM: Multicast Member Info/osm_mcm_info_delete 113 * NAME 114 * osm_mcm_info_delete 115 * 116 * DESCRIPTION 117 * Destroys and deallocates the specified object. 118 * 119 * SYNOPSIS 120 */ 121 void osm_mcm_info_delete(IN osm_mcm_info_t * const p_mcm); 122 /* 123 * PARAMETERS 124 * p_mcm 125 * Pointer to the object to destroy. 126 * 127 * RETURN VALUES 128 * None. 129 * 130 * NOTES 131 * 132 * SEE ALSO 133 *********/ 134 135 END_C_DECLS 136 #endif /* _OSM_MCM_INFO_H_ */ 137