Device: Fixed code style

This commit is contained in:
Lorenz Meier
2015-10-19 13:15:22 +02:00
parent 2154f0ca1d
commit fe216b5c5f
21 changed files with 540 additions and 413 deletions
+75 -36
View File
@@ -54,8 +54,9 @@ struct px4_dev_t {
char *name;
void *cdev;
px4_dev_t(const char *n, void *c) : cdev(c) {
name = strdup(n);
px4_dev_t(const char *n, void *c) : cdev(c)
{
name = strdup(n);
}
~px4_dev_t() { free(name); }
@@ -85,21 +86,26 @@ VDev::VDev(const char *name,
_open_count(0)
{
PX4_DEBUG("VDev::VDev");
for (unsigned i = 0; i < _max_pollwaiters; i++)
for (unsigned i = 0; i < _max_pollwaiters; i++) {
_pollset[i] = nullptr;
}
}
VDev::~VDev()
{
PX4_DEBUG("VDev::~VDev");
if (_registered)
if (_registered) {
unregister_driver(_devname);
}
}
int
VDev::register_class_devname(const char *class_devname)
{
PX4_DEBUG("VDev::register_class_devname %s", class_devname);
if (class_devname == nullptr) {
return -EINVAL;
}
@@ -111,13 +117,16 @@ VDev::register_class_devname(const char *class_devname)
char name[32];
snprintf(name, sizeof(name), "%s%d", class_devname, class_instance);
ret = register_driver(name, (void *)this);
if (ret == OK) break;
if (ret == OK) { break; }
class_instance++;
}
if (class_instance == 4) {
return ret;
}
return class_instance;
}
@@ -127,17 +136,19 @@ VDev::register_driver(const char *name, void *data)
PX4_DEBUG("VDev::register_driver %s", name);
int ret = -ENOSPC;
if (name == NULL || data == NULL)
if (name == NULL || data == NULL) {
return -EINVAL;
}
// Make sure the device does not already exist
// FIXME - convert this to a map for efficiency
for (int i=0;i<PX4_MAX_DEV; ++i) {
if (devmap[i] && (strcmp(devmap[i]->name,name) == 0)) {
for (int i = 0; i < PX4_MAX_DEV; ++i) {
if (devmap[i] && (strcmp(devmap[i]->name, name) == 0)) {
return -EEXIST;
}
}
for (int i=0;i<PX4_MAX_DEV; ++i) {
for (int i = 0; i < PX4_MAX_DEV; ++i) {
if (devmap[i] == NULL) {
devmap[i] = new px4_dev_t(name, (void *)data);
PX4_DEBUG("Registered DEV %s", name);
@@ -145,9 +156,11 @@ VDev::register_driver(const char *name, void *data)
break;
}
}
if (ret != PX4_OK) {
PX4_ERR("No free devmap entries - increase PX4_MAX_DEV");
}
return ret;
}
@@ -157,10 +170,11 @@ VDev::unregister_driver(const char *name)
PX4_DEBUG("VDev::unregister_driver %s", name);
int ret = -EINVAL;
if (name == NULL)
if (name == NULL) {
return -EINVAL;
}
for (int i=0;i<PX4_MAX_DEV; ++i) {
for (int i = 0; i < PX4_MAX_DEV; ++i) {
if (devmap[i] && (strcmp(name, devmap[i]->name) == 0)) {
delete devmap[i];
devmap[i] = NULL;
@@ -169,6 +183,7 @@ VDev::unregister_driver(const char *name)
break;
}
}
return ret;
}
@@ -178,14 +193,16 @@ VDev::unregister_class_devname(const char *class_devname, unsigned class_instanc
PX4_DEBUG("VDev::unregister_class_devname");
char name[32];
snprintf(name, sizeof(name), "%s%u", class_devname, class_instance);
for (int i=0;i<PX4_MAX_DEV; ++i) {
if (devmap[i] && strcmp(devmap[i]->name,name) == 0) {
for (int i = 0; i < PX4_MAX_DEV; ++i) {
if (devmap[i] && strcmp(devmap[i]->name, name) == 0) {
delete devmap[i];
PX4_DEBUG("Unregistered class DEV %s", name);
devmap[i] = NULL;
return PX4_OK;
}
}
return -EINVAL;
}
@@ -197,15 +214,17 @@ VDev::init()
// base class init first
int ret = Device::init();
if (ret != PX4_OK)
if (ret != PX4_OK) {
goto out;
}
// now register the driver
if (_devname != nullptr) {
ret = register_driver(_devname, (void *)this);
if (ret != PX4_OK)
if (ret != PX4_OK) {
goto out;
}
_registered = true;
}
@@ -232,8 +251,9 @@ VDev::open(file_t *filep)
/* first-open callback may decline the open */
ret = open_first(filep);
if (ret != PX4_OK)
if (ret != PX4_OK) {
_open_count--;
}
}
unlock();
@@ -261,8 +281,9 @@ VDev::close(file_t *filep)
_open_count--;
/* callback cannot decline the close */
if (_open_count == 0)
if (_open_count == 0) {
ret = close_last(filep);
}
} else {
ret = -EBADF;
@@ -309,22 +330,26 @@ VDev::ioctl(file_t *filep, int cmd, unsigned long arg)
switch (cmd) {
/* fetch a pointer to the driver's private data */
/* fetch a pointer to the driver's private data */
case DIOC_GETPRIV:
*(void **)(uintptr_t)arg = (void *)this;
ret = PX4_OK;
break;
case DEVIOCSPUBBLOCK:
_pub_blocked = (arg != 0);
ret = PX4_OK;
break;
case DEVIOCGPUBBLOCK:
ret = _pub_blocked;
break;
case DEVIOCGDEVICEID:
ret = (int)_device_id.devid;
case DEVIOCGDEVICEID:
ret = (int)_device_id.devid;
PX4_INFO("IOCTL DEVIOCGDEVICEID %d", ret);
break;
default:
break;
}
@@ -365,8 +390,10 @@ VDev::poll(file_t *filep, px4_pollfd_struct_t *fds, bool setup)
fds->revents |= fds->events & poll_state(filep);
/* yes? post the notification */
if (fds->revents != 0)
if (fds->revents != 0) {
px4_sem_post(fds->sem);
}
} else {
PX4_WARN("Store Poll Waiter error.");
}
@@ -392,8 +419,9 @@ VDev::poll_notify(pollevent_t events)
lock();
for (unsigned i = 0; i < _max_pollwaiters; i++)
if (nullptr != _pollset[i])
if (nullptr != _pollset[i]) {
poll_notify_one(_pollset[i], events);
}
unlock();
}
@@ -408,7 +436,7 @@ VDev::poll_notify_one(px4_pollfd_struct_t *fds, pollevent_t events)
/* update the reported event set */
fds->revents |= fds->events & events;
PX4_DEBUG(" Events fds=%p %0x %0x %0x %d",fds, fds->revents, fds->events, events, value);
PX4_DEBUG(" Events fds=%p %0x %0x %0x %d", fds, fds->revents, fds->events, events, value);
/* if the state is now interesting, wake the waiter if it's still asleep */
/* XXX semcount check here is a vile hack; counting semphores should not be abused as cvars */
@@ -432,6 +460,7 @@ VDev::store_poll_waiter(px4_pollfd_struct_t *fds)
* Look for a free slot.
*/
PX4_DEBUG("VDev::store_poll_waiter");
for (unsigned i = 0; i < _max_pollwaiters; i++) {
if (nullptr == _pollset[i]) {
@@ -449,6 +478,7 @@ int
VDev::remove_poll_waiter(px4_pollfd_struct_t *fds)
{
PX4_DEBUG("VDev::remove_poll_waiter");
for (unsigned i = 0; i < _max_pollwaiters; i++) {
if (fds == _pollset[i]) {
@@ -465,8 +495,9 @@ VDev::remove_poll_waiter(px4_pollfd_struct_t *fds)
VDev *VDev::getDev(const char *path)
{
PX4_DEBUG("VDev::getDev");
int i=0;
for (; i<PX4_MAX_DEV; ++i) {
int i = 0;
for (; i < PX4_MAX_DEV; ++i) {
//if (devmap[i]) {
// printf("%s %s\n", devmap[i]->name, path);
//}
@@ -474,14 +505,16 @@ VDev *VDev::getDev(const char *path)
return (VDev *)(devmap[i]->cdev);
}
}
return NULL;
}
void VDev::showDevices()
{
int i=0;
int i = 0;
PX4_INFO("Devices:");
for (; i<PX4_MAX_DEV; ++i) {
for (; i < PX4_MAX_DEV; ++i) {
if (devmap[i] && strncmp(devmap[i]->name, "/dev/", 5) == 0) {
PX4_INFO(" %s", devmap[i]->name);
}
@@ -490,9 +523,10 @@ void VDev::showDevices()
void VDev::showTopics()
{
int i=0;
int i = 0;
PX4_INFO("Devices:");
for (; i<PX4_MAX_DEV; ++i) {
for (; i < PX4_MAX_DEV; ++i) {
if (devmap[i] && strncmp(devmap[i]->name, "/obj/", 5) == 0) {
PX4_INFO(" %s", devmap[i]->name);
}
@@ -501,11 +535,12 @@ void VDev::showTopics()
void VDev::showFiles()
{
int i=0;
int i = 0;
PX4_INFO("Files:");
for (; i<PX4_MAX_DEV; ++i) {
for (; i < PX4_MAX_DEV; ++i) {
if (devmap[i] && strncmp(devmap[i]->name, "/obj/", 5) != 0 &&
strncmp(devmap[i]->name, "/dev/", 5) != 0) {
strncmp(devmap[i]->name, "/dev/", 5) != 0) {
PX4_INFO(" %s", devmap[i]->name);
}
}
@@ -513,17 +548,21 @@ void VDev::showFiles()
const char *VDev::topicList(unsigned int *next)
{
for (;*next<PX4_MAX_DEV; (*next)++)
if (devmap[*next] && strncmp(devmap[(*next)]->name, "/obj/", 5) == 0)
for (; *next < PX4_MAX_DEV; (*next)++)
if (devmap[*next] && strncmp(devmap[(*next)]->name, "/obj/", 5) == 0) {
return devmap[(*next)++]->name;
}
return NULL;
}
const char *VDev::devList(unsigned int *next)
{
for (;*next<PX4_MAX_DEV; (*next)++)
if (devmap[*next] && strncmp(devmap[(*next)]->name, "/dev/", 5) == 0)
for (; *next < PX4_MAX_DEV; (*next)++)
if (devmap[*next] && strncmp(devmap[(*next)]->name, "/dev/", 5) == 0) {
return devmap[(*next)++]->name;
}
return NULL;
}