Linux Audio

Check our new training course

Loading...
Note: File does not exist in v3.1.
 1/*
 2 * Copyright (C) 2011 matt mooney <mfm@muteddisk.com>
 3 *               2005-2007 Takahiro Hirofuchi
 4 *
 5 * This program is free software: you can redistribute it and/or modify
 6 * it under the terms of the GNU General Public License as published by
 7 * the Free Software Foundation, either version 2 of the License, or
 8 * (at your option) any later version.
 9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with this program. If not, see <http://www.gnu.org/licenses/>.
17 */
18
19#include <errno.h>
20#include <stdio.h>
21#include <string.h>
22
23#include "usbip_common.h"
24#include "utils.h"
25#include "sysfs_utils.h"
26
27int modify_match_busid(char *busid, int add)
28{
29	char attr_name[] = "match_busid";
30	char command[SYSFS_BUS_ID_SIZE + 4];
31	char match_busid_attr_path[SYSFS_PATH_MAX];
32	int rc;
33
34	snprintf(match_busid_attr_path, sizeof(match_busid_attr_path),
35		 "%s/%s/%s/%s/%s/%s", SYSFS_MNT_PATH, SYSFS_BUS_NAME,
36		 SYSFS_BUS_TYPE, SYSFS_DRIVERS_NAME, USBIP_HOST_DRV_NAME,
37		 attr_name);
38
39	if (add)
40		snprintf(command, SYSFS_BUS_ID_SIZE + 4, "add %s", busid);
41	else
42		snprintf(command, SYSFS_BUS_ID_SIZE + 4, "del %s", busid);
43
44	rc = write_sysfs_attribute(match_busid_attr_path, command,
45				   sizeof(command));
46	if (rc < 0) {
47		dbg("failed to write match_busid: %s", strerror(errno));
48		return -1;
49	}
50
51	return 0;
52}