implement memmap for mem driver
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
This commit is contained in:
parent
e3dde87030
commit
e133ccdda8
|
@ -532,6 +532,7 @@ static struct driver_d mem_drv = {
|
|||
.close = dev_close_default,
|
||||
.read = mem_read,
|
||||
.write = mem_write,
|
||||
.memmap = mem_memmap,
|
||||
.lseek = dev_lseek_default,
|
||||
};
|
||||
|
||||
|
@ -543,6 +544,7 @@ static struct driver_d ram_drv = {
|
|||
.read = mem_read,
|
||||
.write = mem_write,
|
||||
.lseek = dev_lseek_default,
|
||||
.memmap = mem_memmap,
|
||||
.type = DEVICE_TYPE_DRAM,
|
||||
};
|
||||
|
||||
|
@ -552,6 +554,7 @@ static struct driver_d rom_drv = {
|
|||
.open = dev_open_default,
|
||||
.close = dev_close_default,
|
||||
.read = mem_read,
|
||||
.memmap = mem_memmap,
|
||||
.lseek = dev_lseek_default,
|
||||
};
|
||||
|
||||
|
|
9
fs/fs.c
9
fs/fs.c
|
@ -604,7 +604,7 @@ void *memmap(int fd, int flags)
|
|||
struct device_d *dev;
|
||||
struct fs_driver_d *fsdrv;
|
||||
FILE *f = &files[fd];
|
||||
void *ret = NULL;
|
||||
void *ret = (void *)-1;
|
||||
|
||||
dev = f->dev;
|
||||
|
||||
|
@ -962,3 +962,10 @@ ssize_t mem_write(struct device_d *dev, const void *buf, size_t count, ulong off
|
|||
}
|
||||
EXPORT_SYMBOL(mem_write);
|
||||
|
||||
int mem_memmap(struct device_d *dev, void **map, int flags)
|
||||
{
|
||||
*map = dev->map_base;
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL(mem_memmap);
|
||||
|
||||
|
|
|
@ -240,6 +240,7 @@ int dev_memmap(struct device_d *dev, void **map, int flags);
|
|||
/* These are used by drivers which work with direct memory accesses */
|
||||
ssize_t mem_read(struct device_d *dev, void *buf, size_t count, ulong offset, ulong flags);
|
||||
ssize_t mem_write(struct device_d *dev, const void *buf, size_t count, ulong offset, ulong flags);
|
||||
int mem_memmap(struct device_d *dev, void **map, int flags);
|
||||
|
||||
/* Use this if you have nothing to do in your drivers probe function */
|
||||
int dummy_probe(struct device_d *);
|
||||
|
|
Loading…
Reference in New Issue