diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2009-04-22 23:39:27 +0200 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2009-07-21 16:41:44 +0200 |
commit | a2b7cd183bad9c9e0888ce62f5ae0f83c070cc2a (patch) | |
tree | 556535cae729eac244edff816476cab281c6be7b /fs/fs.c | |
parent | 6411c3b2be40bb295520db2e9f6f891873a48b1a (diff) | |
download | barebox-a2b7cd183bad9c9e0888ce62f5ae0f83c070cc2a.tar.gz barebox-a2b7cd183bad9c9e0888ce62f5ae0f83c070cc2a.tar.xz |
introduce cdev
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'fs/fs.c')
-rw-r--r-- | fs/fs.c | 27 |
1 files changed, 16 insertions, 11 deletions
@@ -943,29 +943,34 @@ static void memcpy_sz(void *_dst, const void *_src, ulong count, ulong rwsize) } } -ssize_t mem_read(struct device_d *dev, void *buf, size_t count, ulong offset, ulong flags) +ssize_t mem_read(struct cdev *cdev, void *buf, size_t count, ulong offset, ulong flags) { ulong size; - size = min(count, dev->size - offset); + struct device_d *dev; + + if (!cdev->dev) + return -1; + dev = cdev->dev; + + size = min((ulong)count, dev->size - offset); debug("mem_read: dev->map_base: %p size: %d offset: %d\n",dev->map_base, size, offset); memcpy_sz(buf, (void *)(dev->map_base + offset), size, flags & O_RWSIZE_MASK); return size; } EXPORT_SYMBOL(mem_read); -ssize_t mem_write(struct device_d *dev, const void *buf, size_t count, ulong offset, ulong flags) +ssize_t mem_write(struct cdev *cdev, const void *buf, size_t count, ulong offset, ulong flags) { ulong size; - size = min(count, dev->size - offset); + struct device_d *dev; + + if (!cdev->dev) + return -1; + dev = cdev->dev; + + size = min((ulong)count, dev->size - offset); memcpy_sz((void *)(dev->map_base + offset), buf, size, flags & O_RWSIZE_MASK); return size; } EXPORT_SYMBOL(mem_write); -int mem_memmap(struct device_d *dev, void **map, int flags) -{ - *map = (void *)dev->map_base; - return 0; -} -EXPORT_SYMBOL(mem_memmap); - |