Browse Source

Accel sim: Fix ioctl interface

sbg
Lorenz Meier 9 years ago
parent
commit
b05294d4b4
  1. 26
      src/platforms/posix/drivers/accelsim/accelsim.cpp

26
src/platforms/posix/drivers/accelsim/accelsim.cpp

@ -93,7 +93,7 @@ public: @@ -93,7 +93,7 @@ public:
virtual int init();
virtual ssize_t devRead(void *buffer, size_t buflen);
virtual int devIOCTL(unsigned long cmd, void *arg);
virtual int devIOCTL(unsigned long cmd, unsigned long arg);
/**
* dump register values
@ -104,7 +104,7 @@ protected: @@ -104,7 +104,7 @@ protected:
friend class ACCELSIM_mag;
ssize_t mag_read(void *buffer, size_t buflen);
int mag_ioctl(unsigned long cmd, void *arg);
int mag_ioctl(unsigned long cmd, unsigned long arg);
int transfer(uint8_t *send, uint8_t *recv, unsigned len);
private:
@ -245,7 +245,7 @@ public: @@ -245,7 +245,7 @@ public:
~ACCELSIM_mag();
virtual ssize_t devRead(void *buffer, size_t buflen);
virtual int devIOCTL(unsigned long cmd, void *arg);
virtual int devIOCTL(unsigned long cmd, unsigned long arg);
protected:
friend class ACCELSIM;
@ -526,7 +526,7 @@ ACCELSIM::mag_read(void *buffer, size_t buflen) @@ -526,7 +526,7 @@ ACCELSIM::mag_read(void *buffer, size_t buflen)
}
int
ACCELSIM::devIOCTL(unsigned long cmd, void *arg)
ACCELSIM::devIOCTL(unsigned long cmd, unsigned long arg)
{
unsigned long ul_arg = (unsigned long)arg;
@ -550,10 +550,10 @@ ACCELSIM::devIOCTL(unsigned long cmd, void *arg) @@ -550,10 +550,10 @@ ACCELSIM::devIOCTL(unsigned long cmd, void *arg)
/* set default/max polling rate */
case SENSOR_POLLRATE_MAX:
return devIOCTL(SENSORIOCSPOLLRATE, (void *)1600);
return devIOCTL(SENSORIOCSPOLLRATE, 1600);
case SENSOR_POLLRATE_DEFAULT:
return devIOCTL(SENSORIOCSPOLLRATE, (void *)ACCELSIM_ACCEL_DEFAULT_RATE);
return devIOCTL(SENSORIOCSPOLLRATE, ACCELSIM_ACCEL_DEFAULT_RATE);
/* adjust to a legal polling interval in Hz */
default: {
@ -659,14 +659,14 @@ ACCELSIM::devIOCTL(unsigned long cmd, void *arg) @@ -659,14 +659,14 @@ ACCELSIM::devIOCTL(unsigned long cmd, void *arg)
}
int
ACCELSIM::mag_ioctl(unsigned long cmd, void *arg)
ACCELSIM::mag_ioctl(unsigned long cmd, unsigned long arg)
{
unsigned long ul_arg = (unsigned long)arg;
switch (cmd) {
case SENSORIOCSPOLLRATE: {
switch (ul_arg) {
switch (arg) {
/* switching to manual polling */
case SENSOR_POLLRATE_MANUAL:
@ -685,7 +685,7 @@ ACCELSIM::mag_ioctl(unsigned long cmd, void *arg) @@ -685,7 +685,7 @@ ACCELSIM::mag_ioctl(unsigned long cmd, void *arg)
case SENSOR_POLLRATE_MAX:
case SENSOR_POLLRATE_DEFAULT:
/* 100 Hz is max for mag */
return mag_ioctl(SENSORIOCSPOLLRATE, (void *)100);
return mag_ioctl(SENSORIOCSPOLLRATE, 100);
/* adjust to a legal polling interval in Hz */
default: {
@ -725,11 +725,11 @@ ACCELSIM::mag_ioctl(unsigned long cmd, void *arg) @@ -725,11 +725,11 @@ ACCELSIM::mag_ioctl(unsigned long cmd, void *arg)
case SENSORIOCSQUEUEDEPTH: {
/* lower bound is mandatory, upper bound is a sanity check */
if ((ul_arg < 1) || (ul_arg > 100)) {
if ((arg < 1) || (arg > 100)) {
return -EINVAL;
}
if (!_mag_reports->resize(ul_arg)) {
if (!_mag_reports->resize(arg)) {
return -ENOMEM;
}
@ -765,7 +765,7 @@ ACCELSIM::mag_ioctl(unsigned long cmd, void *arg) @@ -765,7 +765,7 @@ ACCELSIM::mag_ioctl(unsigned long cmd, void *arg)
return OK;
case MAGIOCSRANGE:
return mag_set_range(ul_arg);
return mag_set_range(arg);
case MAGIOCGRANGE:
return _mag_range_ga;
@ -1033,7 +1033,7 @@ ACCELSIM_mag::devRead(void *buffer, size_t buflen) @@ -1033,7 +1033,7 @@ ACCELSIM_mag::devRead(void *buffer, size_t buflen)
}
int
ACCELSIM_mag::devIOCTL(unsigned long cmd, void *arg)
ACCELSIM_mag::devIOCTL(unsigned long cmd, unsigned long arg)
{
switch (cmd) {
case DEVIOCGDEVICEID:

Loading…
Cancel
Save