Direct access functions return errors directly, not touching errno.

This commit is contained in:
px4dev 2013-07-14 11:43:43 -07:00
parent 7c83e928a5
commit 12b84597d8
2 changed files with 42 additions and 58 deletions

View File

@ -223,31 +223,22 @@ interrupt(int irq, void *context)
return OK;
}
int
Device::probe()
{
return -1;
}
int
Device::read(unsigned offset, void *data, unsigned count)
{
errno = ENODEV;
return -1;
return -ENODEV;
}
int
Device::write(unsigned offset, void *data, unsigned count)
{
errno = ENODEV;
return -1;
return -ENODEV;
}
int
Device::ioctl(unsigned operation, unsigned &arg)
{
errno = ENODEV;
return -1;
return -ENODEV;
}
} // namespace device

View File

@ -85,11 +85,11 @@ public:
*/
/**
* Probe to test whether the device is present.
* Initialise the driver and make it ready for use.
*
* @return Zero if present, < 0 (error) otherwise.
* @return OK if the driver initialized OK, negative errno otherwise;
*/
virtual int probe();
virtual int init();
/**
* Read directly from the device.
@ -98,10 +98,10 @@ public:
*
* @param offset The device address at which to start reading
* @param data The buffer into which the read values should be placed.
* @param count The number of items to read, defaults to 1.
* @return count on success, < 0 on error.
* @param count The number of items to read.
* @return The number of items read on success, negative errno otherwise.
*/
virtual int read(unsigned address, void *data, unsigned count = 1);
virtual int read(unsigned address, void *data, unsigned count);
/**
* Write directly to the device.
@ -110,17 +110,17 @@ public:
*
* @param address The device address at which to start writing.
* @param data The buffer from which values should be read.
* @param count The number of registers to write, defaults to 1.
* @return count on success, < 0 on error.
* @param count The number of items to write.
* @return The number of items written on success, negative errno otherwise.
*/
virtual int write(unsigned address, void *data, unsigned count = 1);
virtual int write(unsigned address, void *data, unsigned count);
/**
* Perform a device-specific operation.
*
* @param operation The operation to perform
* @param operation The operation to perform.
* @param arg An argument to the operation.
* @return < 0 on error
* @return Negative errno on error, OK or positive value on success.
*/
virtual int ioctl(unsigned operation, unsigned &arg);
@ -137,13 +137,6 @@ protected:
Device(const char *name,
int irq = 0);
/**
* Initialise the driver and make it ready for use.
*
* @return OK if the driver initialised OK.
*/
virtual int init();
/**
* Enable the device interrupt
*/