/*
 * GPIO tools - utility helpers library for the GPIO tools
 *
 * Copyright (C) 2015 Linus Walleij
 *
 * Portions copied from iio_utils and lssio:
 * Copyright (c) 2010 Manuel Stahl <manuel.stahl@iis.fraunhofer.de>
 * Copyright (c) 2008 Jonathan Cameron
 * *
 * This program is free software; you can redistribute it and/or modify it
 * under the terms of the GNU General Public License version 2 as published by
 * the Free Software Foundation.
 */
#ifndef _GPIO_UTILS_H_
#define _GPIO_UTILS_H_

#include <string.h>

#define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]))

static inline int check_prefix(const char *str, const char *prefix)
{
	return strlen(str) > strlen(prefix) &&
		strncmp(str, prefix, strlen(prefix)) == 0;
}

int gpiotools_request_linehandle(const char *device_name, unsigned int *lines,
				 unsigned int nlines, unsigned int flag,
				 struct gpiohandle_data *data,
				 const char *consumer_label);
int gpiotools_set_values(const int fd, struct gpiohandle_data *data);
int gpiotools_get_values(const int fd, struct gpiohandle_data *data);
int gpiotools_release_linehandle(const int fd);

int gpiotools_get(const char *device_name, unsigned int line);
int gpiotools_gets(const char *device_name, unsigned int *lines,
		   unsigned int nlines, struct gpiohandle_data *data);
int gpiotools_set(const char *device_name, unsigned int line,
		  unsigned int value);
int gpiotools_sets(const char *device_name, unsigned int *lines,
		   unsigned int nlines, struct gpiohandle_data *data);

#endif /* _GPIO_UTILS_H_ */
gi/linux/net-next.git/?h=nds-private-remove'>summary</a><a href='/cgit.cgi/linux/net-next.git/refs/?h=nds-private-remove&amp;id=58be2427da98a17426cff3d30c50e419781a230b'>refs</a><a class='active' href='/cgit.cgi/linux/net-next.git/log/sound/soc/codecs/wm8731.h?h=nds-private-remove'>log</a><a href='/cgit.cgi/linux/net-next.git/tree/sound/soc/codecs/wm8731.h?h=nds-private-remove&amp;id=58be2427da98a17426cff3d30c50e419781a230b'>tree</a><a href='/cgit.cgi/linux/net-next.git/commit/sound/soc/codecs/wm8731.h?h=nds-private-remove&amp;id=58be2427da98a17426cff3d30c50e419781a230b'>commit</a><a href='/cgit.cgi/linux/net-next.git/diff/sound/soc/codecs/wm8731.h?h=nds-private-remove&amp;id=58be2427da98a17426cff3d30c50e419781a230b'>diff</a></td><td class='form'><form class='right' method='get' action='/cgit.cgi/linux/net-next.git/log/sound/soc/codecs/wm8731.h'>
<input type='hidden' name='h' value='nds-private-remove'/><input type='hidden' name='id' value='58be2427da98a17426cff3d30c50e419781a230b'/><select name='qt'>
<option value='grep'>log msg</option>
<option value='author'>author</option>
<option value='committer'>committer</option>
<option value='range'>range</option>
</select>
<input class='txt' type='search' size='10' name='q' value=''/>
<input type='submit' value='search'/>
</form>
</td></tr></table>
<div class='path'>path: <a href='/cgit.cgi/linux/net-next.git/log/?h=nds-private-remove&amp;id=58be2427da98a17426cff3d30c50e419781a230b'>root</a>/<a href='/cgit.cgi/linux/net-next.git/log/sound?h=nds-private-remove&amp;id=58be2427da98a17426cff3d30c50e419781a230b'>sound</a>/<a href='/cgit.cgi/linux/net-next.git/log/sound/soc?h=nds-private-remove&amp;id=58be2427da98a17426cff3d30c50e419781a230b'>soc</a>/<a href='/cgit.cgi/linux/net-next.git/log/sound/soc/codecs?h=nds-private-remove&amp;id=58be2427da98a17426cff3d30c50e419781a230b'>codecs</a>/<a href='/cgit.cgi/linux/net-next.git/log/sound/soc/codecs/wm8731.h?h=nds-private-remove&amp;id=58be2427da98a17426cff3d30c50e419781a230b'>wm8731.h</a></div><div class='content'><table class='list nowrap'><tr class='nohover'><th class='left'>Age</th><th class='left'>Commit message (<a href='/cgit.cgi/linux/net-next.git/log/sound/soc/codecs/wm8731.h?h=nds-private-remove&amp;id=58be2427da98a17426cff3d30c50e419781a230b&amp;showmsg=1'>Expand</a>)</th><th class='left'>Author</th><th class='left'>Files</th><th class='left'>Lines</th></tr>