[PATCH] remove now works!
This commit is contained in:
parent
3f4967a1fb
commit
8b16416dce
5
test
5
test
|
@ -1,5 +1,6 @@
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
export ACTION=add
|
#export ACTION=add
|
||||||
export DEVPATH=/devices/pci0/00:09.0/usb1/1-1/1-1.2/ttyUSB7
|
export ACTION=remove
|
||||||
|
export DEVPATH=/devices/pci0/00:09.0/usb1/1-1/1-1.1/ttyUSB7
|
||||||
|
|
||||||
./udev tty
|
./udev tty
|
||||||
|
|
37
udev.c
37
udev.c
|
@ -183,7 +183,21 @@ static int create_node(char *name, char type, int major, int minor, int mode)
|
||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int add_node(char *device, char type)
|
/*
|
||||||
|
* We also want to clean up any symlinks that were created in create_node()
|
||||||
|
*/
|
||||||
|
static int delete_node(char *name)
|
||||||
|
{
|
||||||
|
char filename[255];
|
||||||
|
|
||||||
|
strncpy(filename, UDEV_ROOT, sizeof(filename));
|
||||||
|
strncat(filename, name, sizeof(filename));
|
||||||
|
|
||||||
|
dbg("unlinking %s", filename);
|
||||||
|
return unlink(filename);
|
||||||
|
}
|
||||||
|
|
||||||
|
static int add_device(char *device, char type)
|
||||||
{
|
{
|
||||||
char *name;
|
char *name;
|
||||||
int major;
|
int major;
|
||||||
|
@ -217,9 +231,22 @@ exit:
|
||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int remove_node(char *device)
|
static int remove_device(char *device)
|
||||||
{
|
{
|
||||||
return 0;
|
char *name;
|
||||||
|
int retval = 0;
|
||||||
|
|
||||||
|
name = get_name(device, 0, 0);
|
||||||
|
if (name == NULL) {
|
||||||
|
dbg ("get_name failed");
|
||||||
|
retval = -ENODEV;
|
||||||
|
goto exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
return delete_node(name);
|
||||||
|
|
||||||
|
exit:
|
||||||
|
return retval;
|
||||||
}
|
}
|
||||||
|
|
||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
|
@ -256,10 +283,10 @@ int main(int argc, char *argv[])
|
||||||
dbg("looking at %s", device);
|
dbg("looking at %s", device);
|
||||||
|
|
||||||
if (strcmp(action, "add") == 0)
|
if (strcmp(action, "add") == 0)
|
||||||
return add_node(device, type);
|
return add_device(device, type);
|
||||||
|
|
||||||
if (strcmp(action, "remove") == 0)
|
if (strcmp(action, "remove") == 0)
|
||||||
return remove_node(device);
|
return remove_device(device);
|
||||||
|
|
||||||
dbg("Unknown action: %s", action);
|
dbg("Unknown action: %s", action);
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
Loading…
Reference in New Issue