/* -*- mode: c; c-basic-offset: 8; -*-
 * vim: noexpandtab sw=8 ts=8 sts=0:
 *
 * nodemanager.h
 *
 * Function prototypes
 *
 * Copyright (C) 2004 Oracle.  All rights reserved.
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public
 * License as published by the Free Software Foundation; either
 * version 2 of the License, or (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * General Public License for more details.
 *
 * You should have received a copy of the GNU General Public
 * License along with this program; if not, write to the
 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 * Boston, MA 021110-1307, USA.
 *
 */

#ifndef O2CLUSTER_NODEMANAGER_H
#define O2CLUSTER_NODEMANAGER_H

#include "ocfs2_nodemanager.h"

/* This totally doesn't belong here. */
#include <linux/configfs.h>
#include <linux/rbtree.h>

enum o2nm_fence_method {
	O2NM_FENCE_RESET	= 0,
	O2NM_FENCE_PANIC,
	O2NM_FENCE_METHODS,	/* Number of fence methods */
};

struct o2nm_node {
	spinlock_t		nd_lock;
	struct config_item	nd_item;
	char			nd_name[O2NM_MAX_NAME_LEN+1]; /* replace? */
	__u8			nd_num;
	/* only one address per node, as attributes, for now. */
	__be32			nd_ipv4_address;
	__be16			nd_ipv4_port;
	struct rb_node		nd_ip_node;
	/* there can be only one local node for now */
	int			nd_local;

	unsigned long		nd_set_attributes;
};

struct o2nm_cluster {
	struct config_group	cl_group;
	unsigned		cl_has_local:1;
	u8			cl_local_node;
	rwlock_t		cl_nodes_lock;
	struct o2nm_node  	*cl_nodes[O2NM_MAX_NODES];
	struct rb_root		cl_node_ip_tree;
	unsigned int		cl_idle_timeout_ms;
	unsigned int		cl_keepalive_delay_ms;
	unsigned int		cl_reconnect_delay_ms;
	enum o2nm_fence_method	cl_fence_method;

	/* this bitmap is part of a hack for disk bitmap.. will go eventually. - zab */
	unsigned long	cl_nodes_bitmap[BITS_TO_LONGS(O2NM_MAX_NODES)];
};

extern struct o2nm_cluster *o2nm_single_cluster;

u8 o2nm_this_node(void);

int o2nm_configured_node_map(unsigned long *map, unsigned bytes);
struct o2nm_node *o2nm_get_node_by_num(u8 node_num);
struct o2nm_node *o2nm_get_node_by_ip(__be32 addr);
void o2nm_node_get(struct o2nm_node *node);
void o2nm_node_put(struct o2nm_node *node);

int o2nm_depend_item(struct config_item *item);
void o2nm_undepend_item(struct config_item *item);
int o2nm_depend_this_node(void);
void o2nm_undepend_this_node(void);

#endif /* O2CLUSTER_NODEMANAGER_H */
ue='search'/>
</form>
</td></tr></table>
<div class='path'>path: <a href='/cgit.cgi/linux/net-next.git/commit/?id=05e0be7c900797e9164976a6014d534ce3035909'>root</a>/<a href='/cgit.cgi/linux/net-next.git/commit/sound?id=05e0be7c900797e9164976a6014d534ce3035909'>sound</a>/<a href='/cgit.cgi/linux/net-next.git/commit/sound/pci?id=05e0be7c900797e9164976a6014d534ce3035909'>pci</a>/<a href='/cgit.cgi/linux/net-next.git/commit/sound/pci/ctxfi?id=05e0be7c900797e9164976a6014d534ce3035909'>ctxfi</a>/<a href='/cgit.cgi/linux/net-next.git/commit/sound/pci/ctxfi/ctmixer.c?id=05e0be7c900797e9164976a6014d534ce3035909'>ctmixer.c</a></div><div class='content'><div class='cgit-panel'><b>diff options</b><form method='get'><input type='hidden' name='id' value='05e0be7c900797e9164976a6014d534ce3035909'/><table><tr><td colspan='2'/></tr><tr><td class='label'>context:</td><td class='ctrl'><select name='context' onchange='this.form.submit();'><option value='1'>1</option><option value='2'>2</option><option value='3' selected='selected'>3</option><option value='4'>4</option><option value='5'>5</option><option value='6'>6</option><option value='7'>7</option><option value='8'>8</option><option value='9'>9</option><option value='10'>10</option><option value='15'>15</option><option value='20'>20</option><option value='25'>25</option><option value='30'>30</option><option value='35'>35</option><option value='40'>40</option></select></td></tr><tr><td class='label'>space:</td><td class='ctrl'><select name='ignorews' onchange='this.form.submit();'><option value='0' selected='selected'>include</option><option value='1'>ignore</option></select></td></tr><tr><td class='label'>mode:</td><td class='ctrl'><select name='dt' onchange='this.form.submit();'><option value='0' selected='selected'>unified</option><option value='1'>ssdiff</option><option value='2'>stat only</option></select></td></tr><tr><td/><td class='ctrl'><noscript><input type='submit' value='reload'/></noscript></td></tr></table></form></div><table summary='commit info' class='commit-info'>
<tr><th>author</th><td>Christophe JAILLET &lt;christophe.jaillet@wanadoo.fr&gt;</td><td class='right'>2017-01-31 00:47:30 -0800</td></tr>
<tr><th>committer</th><td>Dmitry Torokhov &lt;dmitry.torokhov@gmail.com&gt;</td><td class='right'>2017-01-31 00:51:06 -0800</td></tr>
<tr><th>commit</th><td colspan='2' class='oid'><a href='/cgit.cgi/linux/net-next.git/commit/sound/pci/ctxfi/ctmixer.c?id=05e0be7c900797e9164976a6014d534ce3035909'>05e0be7c900797e9164976a6014d534ce3035909</a> (<a href='/cgit.cgi/linux/net-next.git/patch/sound/pci/ctxfi/ctmixer.c?id=05e0be7c900797e9164976a6014d534ce3035909'>patch</a>)</td></tr>
<tr><th>tree</th><td colspan='2' class='oid'><a href='/cgit.cgi/linux/net-next.git/tree/?id=05e0be7c900797e9164976a6014d534ce3035909'>6064ddf732b21c686c958cb9da73f6eae6de5a27</a> /<a href='/cgit.cgi/linux/net-next.git/tree/sound/pci/ctxfi/ctmixer.c?id=05e0be7c900797e9164976a6014d534ce3035909'>sound/pci/ctxfi/ctmixer.c</a></td></tr>
<tr><th>parent</th><td colspan='2' class='oid'><a href='/cgit.cgi/linux/net-next.git/commit/sound/pci/ctxfi/ctmixer.c?id=3f5c34c6d4688b3b7e1dbc7bbc68a2f03a0d6b0c'>3f5c34c6d4688b3b7e1dbc7bbc68a2f03a0d6b0c</a> (<a href='/cgit.cgi/linux/net-next.git/diff/sound/pci/ctxfi/ctmixer.c?id=05e0be7c900797e9164976a6014d534ce3035909&amp;id2=3f5c34c6d4688b3b7e1dbc7bbc68a2f03a0d6b0c'>diff</a>)</td></tr></table>
<div class='commit-subject'>Input: synaptics-rmi4 - fix reversed conditions in enable/disable_irq_wake</div><div class='commit-msg'>These tests are reversed.  A warning should be displayed if an error is
returned, not on success.

Signed-off-by: Christophe JAILLET &lt;christophe.jaillet@wanadoo.fr&gt;
Reviewed-by: Benjamin Tissoires &lt;benjamin.tissoires@redhat.com&gt;
Signed-off-by: Dmitry Torokhov &lt;dmitry.torokhov@gmail.com&gt;</div><div class='diffstat-header'><a href='/cgit.cgi/linux/net-next.git/diff/?id=05e0be7c900797e9164976a6014d534ce3035909'>Diffstat</a> (limited to 'sound/pci/ctxfi/ctmixer.c')</div><table summary='diffstat' class='diffstat'>