1*b2441318SGreg Kroah-Hartman // SPDX-License-Identifier: GPL-2.0 2588b48caSValentina Manea #include <sys/types.h> 3588b48caSValentina Manea #include <sys/stat.h> 4588b48caSValentina Manea #include <fcntl.h> 5588b48caSValentina Manea #include <errno.h> 6588b48caSValentina Manea 7588b48caSValentina Manea #include "sysfs_utils.h" 8588b48caSValentina Manea #include "usbip_common.h" 9588b48caSValentina Manea write_sysfs_attribute(const char * attr_path,const char * new_value,size_t len)10588b48caSValentina Maneaint write_sysfs_attribute(const char *attr_path, const char *new_value, 11588b48caSValentina Manea size_t len) 12588b48caSValentina Manea { 13588b48caSValentina Manea int fd; 14588b48caSValentina Manea int length; 15588b48caSValentina Manea 16588b48caSValentina Manea fd = open(attr_path, O_WRONLY); 17588b48caSValentina Manea if (fd < 0) { 18588b48caSValentina Manea dbg("error opening attribute %s", attr_path); 19588b48caSValentina Manea return -1; 20588b48caSValentina Manea } 21588b48caSValentina Manea 22588b48caSValentina Manea length = write(fd, new_value, len); 23588b48caSValentina Manea if (length < 0) { 24588b48caSValentina Manea dbg("error writing to attribute %s", attr_path); 25588b48caSValentina Manea close(fd); 26588b48caSValentina Manea return -1; 27588b48caSValentina Manea } 28588b48caSValentina Manea 29588b48caSValentina Manea close(fd); 30588b48caSValentina Manea 31588b48caSValentina Manea return 0; 32588b48caSValentina Manea } 33