brintos

brintos / linux-shallow public Read only

0
0
Text · 1.0 KiB · 76a2e12 Raw
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