]> git.proxmox.com Git - mirror_ubuntu-focal-kernel.git/blame - tools/usb/usbip/src/utils.c
Merge remote-tracking branches 'asoc/topic/tas6424', 'asoc/topic/tfa9879', 'asoc...
[mirror_ubuntu-focal-kernel.git] / tools / usb / usbip / src / utils.c
CommitLineData
0945b4fe 1/*
30f05546 2 * Copyright (C) 2011 matt mooney <mfm@muteddisk.com>
3 * 2005-2007 Takahiro Hirofuchi
0945b4fe 4 *
30f05546 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/>.
0945b4fe
TH
17 */
18
4fd83e84 19#include <errno.h>
4cbab52d 20#include <stdio.h>
21#include <string.h>
22
e9837bbb 23#include "usbip_common.h"
0945b4fe 24#include "utils.h"
1e940319 25#include "sysfs_utils.h"
0945b4fe 26
e9837bbb 27int modify_match_busid(char *busid, int add)
28{
30f05546 29 char attr_name[] = "match_busid";
1e940319 30 char command[SYSFS_BUS_ID_SIZE + 4];
30f05546 31 char match_busid_attr_path[SYSFS_PATH_MAX];
1e940319 32 int rc;
544c4605 33 int cmd_size;
e9837bbb 34
30f05546 35 snprintf(match_busid_attr_path, sizeof(match_busid_attr_path),
1e940319
VM
36 "%s/%s/%s/%s/%s/%s", SYSFS_MNT_PATH, SYSFS_BUS_NAME,
37 SYSFS_BUS_TYPE, SYSFS_DRIVERS_NAME, USBIP_HOST_DRV_NAME,
38 attr_name);
e9837bbb 39
40 if (add)
544c4605
JZ
41 cmd_size = snprintf(command, SYSFS_BUS_ID_SIZE + 4, "add %s",
42 busid);
e9837bbb 43 else
544c4605
JZ
44 cmd_size = snprintf(command, SYSFS_BUS_ID_SIZE + 4, "del %s",
45 busid);
e9837bbb 46
1e940319 47 rc = write_sysfs_attribute(match_busid_attr_path, command,
544c4605 48 cmd_size);
30f05546 49 if (rc < 0) {
50 dbg("failed to write match_busid: %s", strerror(errno));
1e940319 51 return -1;
e9837bbb 52 }
53
1e940319 54 return 0;
e9837bbb 55}