diff options
author | Chris Johns <chrisj@rtems.org> | 2008-05-01 04:15:36 +0000 |
---|---|---|
committer | Chris Johns <chrisj@rtems.org> | 2008-05-01 04:15:36 +0000 |
commit | 5a2b5b22c85a635b14a68242f4f1f106421e28d4 (patch) | |
tree | d60882b8cd1147d025b249995d34462ff5e0d279 /cpukit/libblock/src/nvdisk-sram.c | |
parent | 2008-05-01 Maarten Van Es <maarten@mind.be> (diff) | |
download | rtems-5a2b5b22c85a635b14a68242f4f1f106421e28d4.tar.bz2 |
2008-05-01 Chris Johns <chrisj@rtems.org>
* libblock/include/rtems/nvdisk-sram.h,
libblock/include/rtems/nvdisk.h,
libblock/src/nvdisk-sram.c,
libblock/src/nvdisk.c: New. A Non-volatile memory disk drive.
* Makefile.am, preinstall.am, libblock/Makefile.am: Updated for
the NV disk driver.
Diffstat (limited to 'cpukit/libblock/src/nvdisk-sram.c')
-rw-r--r-- | cpukit/libblock/src/nvdisk-sram.c | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/cpukit/libblock/src/nvdisk-sram.c b/cpukit/libblock/src/nvdisk-sram.c new file mode 100644 index 0000000000..aa78689ec7 --- /dev/null +++ b/cpukit/libblock/src/nvdisk-sram.c @@ -0,0 +1,64 @@ +/* + * $Id$ + * + * RTEMS Project (http://www.rtems.org/) + * + * Copyright 2007 Chris Johns (chrisj@rtems.org) + */ +/** + * Provide SRAM support for the NV Disk. + */ + +#include <stdio.h> +#include <errno.h> + +#include <rtems.h> + +#include <rtems/nvdisk-sram.h> + +#ifndef NVDISK_SRAM_ERROR_TRACE +#define NVDISK_SRAM_ERROR_TRACE (0) +#endif + +static int +rtems_nvdisk_sram_read (uint32_t device, + uint32_t flags, + uint32_t base, + uint32_t offset, + void* buffer, + uint32_t size) +{ + memcpy (buffer, (char*) (base + offset), size); + return 0; +} + +static int +rtems_nvdisk_sram_write (uint32_t device, + uint32_t flags, + uint32_t base, + uint32_t offset, + const void* buffer, + uint32_t size) +{ + memcpy ((char*) (base + offset), buffer, size); + return 0; +} + +static int +rtems_nvdisk_sram_verify (uint32_t device, + uint32_t flags, + uint32_t base, + uint32_t offset, + const void* buffer, + uint32_t size) +{ + return memcmp ((char*) (base + offset), buffer, size) == 0 ? 0 : EIO; +} + + +const rtems_nvdisk_driver_handlers rtems_nvdisk_sram_handlers = +{ + read: rtems_nvdisk_sram_read, + write: rtems_nvdisk_sram_write, + verify: rtems_nvdisk_sram_verify +}; |