linux/tools/usb/usbip/src/utils.c
<<
>>
Prefs
   1// SPDX-License-Identifier: GPL-2.0-or-later
   2/*
   3 * Copyright (C) 2011 matt mooney <mfm@muteddisk.com>
   4 *               2005-2007 Takahiro Hirofuchi
   5 */
   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        else
  32                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