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

Loading…
Cancel
Save