44 lines · c
1// SPDX-License-Identifier: GPL-2.0-or-later2/*3 * Copyright (C) 2011 matt mooney <mfm@muteddisk.com>4 * 2005-2007 Takahiro Hirofuchi5 */6 7#include <errno.h>8#include <stdio.h>9#include <string.h>10 11#include "usbip_common.h"12#include "utils.h"13#include "sysfs_utils.h"14 15int modify_match_busid(char *busid, int add)16{17 char attr_name[] = "match_busid";18 char command[SYSFS_BUS_ID_SIZE + 4];19 char match_busid_attr_path[SYSFS_PATH_MAX];20 int rc;21 int cmd_size;22 23 snprintf(match_busid_attr_path, sizeof(match_busid_attr_path),24 "%s/%s/%s/%s/%s/%s", SYSFS_MNT_PATH, SYSFS_BUS_NAME,25 SYSFS_BUS_TYPE, SYSFS_DRIVERS_NAME, USBIP_HOST_DRV_NAME,26 attr_name);27 28 if (add)29 cmd_size = snprintf(command, SYSFS_BUS_ID_SIZE + 4, "add %s",30 busid);31 else32 cmd_size = snprintf(command, SYSFS_BUS_ID_SIZE + 4, "del %s",33 busid);34 35 rc = write_sysfs_attribute(match_busid_attr_path, command,36 cmd_size);37 if (rc < 0) {38 dbg("failed to write match_busid: %s", strerror(errno));39 return -1;40 }41 42 return 0;43}44