usbreset

Git mirror of https://marc.info/?l=linux-usb&m=121459435621262&w=2
git clone git://git.finwo.net/app/usbreset
Log | Files | Refs | README

commit d69b31d27d36ebb95c3b4636dcd5e245854f5c39
Author: finwo <finwo@pm.me>
Date:   Thu, 26 Jan 2023 23:57:25 +0100

Project init

Diffstat:
A.gitignore | 1+
AMakefile | 15+++++++++++++++
AREADME.md | 6++++++
Asrc/usbreset.c | 38++++++++++++++++++++++++++++++++++++++
4 files changed, 60 insertions(+), 0 deletions(-)

diff --git a/.gitignore b/.gitignore @@ -0,0 +1 @@ +/usbreset diff --git a/Makefile b/Makefile @@ -0,0 +1,15 @@ +SRC=$(wildcard src/*.c) +NAME=usbreset +DESTDIR?=/usr/local + +CFLAGS?= + +.PHONY: default +default: $(NAME) + +$(NAME): $(SRC) + cc $(CFLAGS) $(SRC) -o $@ + +.PHONY: install +install: $(NAME) + install $(NAME) $(DESTDIR)/bin diff --git a/README.md b/README.md @@ -0,0 +1,6 @@ +USB Reset +========= + +This repository is a git mirror of Alan Stern's usbreset utility. + +Origin: https://marc.info/?l=linux-usb&m=121459435621262&w=2 diff --git a/src/usbreset.c b/src/usbreset.c @@ -0,0 +1,38 @@ +/* usbreset -- send a USB port reset to a USB device */ + +#include <stdio.h> +#include <unistd.h> +#include <fcntl.h> +#include <errno.h> +#include <sys/ioctl.h> + +#include <linux/usbdevice_fs.h> + +int main(int argc, char **argv) { + const char *filename; + int fd; + int rc; + + if (argc != 2) { + fprintf(stderr, "Usage: usbreset device-filename\n"); + return 1; + } + filename = argv[1]; + + fd = open(filename, O_WRONLY); + if (fd < 0) { + perror("Error opening output file"); + return 1; + } + + printf("Resetting USB device %s\n", filename); + rc = ioctl(fd, USBDEVFS_RESET, 0); + if (rc < 0) { + perror("Error in ioctl"); + return 1; + } + printf("Reset successful\n"); + + close(fd); + return 0; +}