diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2008-06-06 09:25:13 +0200 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2008-06-06 09:30:48 +0200 |
commit | ee6d36a5405305f3bbdb0457948c219731b3d9cc (patch) | |
tree | 0a328bd96f2cf2f190372b654515e509c694930a /lib | |
parent | 3f73e61600f8fce0b6fa02e9a82124c1c89937c7 (diff) | |
download | barebox-ee6d36a5405305f3bbdb0457948c219731b3d9cc.tar.gz barebox-ee6d36a5405305f3bbdb0457948c219731b3d9cc.tar.xz |
- introduce ioctl call
- pass open/close/lseek through to drivers
Diffstat (limited to 'lib')
-rw-r--r-- | lib/driver.c | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/lib/driver.c b/lib/driver.c index f3129c4015..45417c28a9 100644 --- a/lib/driver.c +++ b/lib/driver.c @@ -212,6 +212,38 @@ ssize_t dev_write(struct device_d *dev, const void *buf, size_t count, unsigned return -ENOSYS; } +off_t dev_lseek(struct device_d *dev, off_t offset) +{ + if (dev->driver->lseek) + return dev->driver->lseek(dev, offset); + errno = -ENOSYS; + return -ENOSYS; +} + +int dev_open(struct device_d *dev, struct filep *f) +{ + if (dev->driver->open) + return dev->driver->open(dev, f); + errno = -ENOSYS; + return -ENOSYS; +} + +int dev_close(struct device_d *dev, struct filep *f) +{ + if (dev->driver->close) + return dev->driver->close(dev, f); + errno = -ENOSYS; + return -ENOSYS; +} + +int dev_ioctl(struct device_d *dev, int request, void *buf) +{ + if (dev->driver->ioctl) + return dev->driver->ioctl(dev, request, buf); + errno = -ENOSYS; + return -ENOSYS; +} + int dev_erase(struct device_d *dev, size_t count, unsigned long offset) { if (dev->driver->erase) |