aboutsummaryrefslogtreecommitdiff
path: root/src/drivers/device
diff options
context:
space:
mode:
authorLorenz Meier <lm@inf.ethz.ch>2015-02-03 13:45:09 +0100
committerLorenz Meier <lm@inf.ethz.ch>2015-02-09 22:56:21 +0100
commit138058d547662a73f818fbb16f5c571f806ac68b (patch)
treea954e165d6ee7ba42f6878e7981e49745f089cff /src/drivers/device
parent21bc9e4839fb8ffed3b64039a28b7103c31d2449 (diff)
downloadpx4-firmware-138058d547662a73f818fbb16f5c571f806ac68b.tar.gz
px4-firmware-138058d547662a73f818fbb16f5c571f806ac68b.tar.bz2
px4-firmware-138058d547662a73f818fbb16f5c571f806ac68b.zip
Device class reg: Always use 0-based index
Diffstat (limited to 'src/drivers/device')
-rw-r--r--src/drivers/device/cdev.cpp28
1 files changed, 12 insertions, 16 deletions
diff --git a/src/drivers/device/cdev.cpp b/src/drivers/device/cdev.cpp
index 39fb89501..6db040037 100644
--- a/src/drivers/device/cdev.cpp
+++ b/src/drivers/device/cdev.cpp
@@ -116,34 +116,30 @@ CDev::register_class_devname(const char *class_devname)
if (class_devname == nullptr) {
return -EINVAL;
}
+
int class_instance = 0;
int ret = -ENOSPC;
+
while (class_instance < 4) {
- if (class_instance == 0) {
- ret = register_driver(class_devname, &fops, 0666, (void *)this);
- if (ret == OK) break;
- } else {
- char name[32];
- snprintf(name, sizeof(name), "%s%d", class_devname, class_instance);
- ret = register_driver(name, &fops, 0666, (void *)this);
- if (ret == OK) break;
- }
+ char name[32];
+ snprintf(name, sizeof(name), "%s%d", class_devname, class_instance);
+ ret = register_driver(name, &fops, 0666, (void *)this);
+ if (ret == OK) break;
class_instance++;
}
- if (class_instance == 4)
+
+ if (class_instance == 4) {
return ret;
+ }
return class_instance;
}
int
CDev::unregister_class_devname(const char *class_devname, unsigned class_instance)
{
- if (class_instance > 0) {
- char name[32];
- snprintf(name, sizeof(name), "%s%u", class_devname, class_instance);
- return unregister_driver(name);
- }
- return unregister_driver(class_devname);
+ char name[32];
+ snprintf(name, sizeof(name), "%s%u", class_devname, class_instance);
+ return unregister_driver(name);
}
int