Mercurial > flash_v2
diff packages/io/flash/current/src/legacy_dev.c @ 1752:61fbcc1cb232
Clean up device driver interface
| author | bartv |
|---|---|
| date | Mon, 22 Nov 2004 20:06:35 +0000 |
| parents | fac0499dabd6 |
| children | 400806bc9c4f |
line wrap: on
line diff
--- a/packages/io/flash/current/src/legacy_dev.c +++ b/packages/io/flash/current/src/legacy_dev.c @@ -133,12 +133,12 @@ legacy_flash_query (struct cyg_flash_dev static int legacy_flash_erase_block (struct cyg_flash_dev *dev, - const cyg_flashaddr_t block_base) + cyg_flashaddr_t block_base) __attribute__ ((section (".2ram.flash_program_buf"))); static int legacy_flash_erase_block (struct cyg_flash_dev *dev, - const cyg_flashaddr_t block_base) + cyg_flashaddr_t block_base) { typedef int code_fun(cyg_flashaddr_t, unsigned int); code_fun *_flash_erase_block; @@ -158,7 +158,7 @@ legacy_flash_program(struct cyg_flash_de static int legacy_flash_program(struct cyg_flash_dev *dev, cyg_flashaddr_t base, - const void* data, const size_t len) + const void* data, size_t len) { typedef int code_fun(cyg_flashaddr_t, const void *, int, unsigned long, int); code_fun *_flash_program_buf; @@ -174,13 +174,13 @@ legacy_flash_program(struct cyg_flash_de static int legacy_flash_read (struct cyg_flash_dev *dev, const cyg_flashaddr_t base, - void* data, const size_t len) + void* data, size_t len) __attribute__ ((section (".2ram.flash_program_buf"))); static int legacy_flash_read (struct cyg_flash_dev *dev, const cyg_flashaddr_t base, - void* data, const size_t len) + void* data, size_t len) { typedef int code_fun(const cyg_flashaddr_t, void *, int, unsigned long, int); code_fun *_flash_read_buf; @@ -198,6 +198,7 @@ legacy_flash_read (struct cyg_flash_dev #endif +#ifdef CYGHWR_IO_FLASH_BLOCK_LOCKING static int legacy_flash_block_lock (struct cyg_flash_dev *dev, const cyg_flashaddr_t block_base) @@ -207,16 +208,12 @@ static int legacy_flash_block_lock (struct cyg_flash_dev *dev, const cyg_flashaddr_t block_base) { -#ifdef CYGHWR_IO_FLASH_BLOCK_LOCKING typedef int code_fun(cyg_flashaddr_t); code_fun *_flash_lock_block; _flash_lock_block = (code_fun*) __anonymizer(&flash_lock_block); return (*_flash_lock_block)(block_base); -#else - return CYG_FLASH_ERR_INVALID; -#endif } static int @@ -228,7 +225,6 @@ static int legacy_flash_block_unlock (struct cyg_flash_dev *dev, const cyg_flashaddr_t block_base) { -#ifdef CYGHWR_IO_FLASH_BLOCK_LOCKING typedef int code_fun(cyg_flashaddr_t, int, int); code_fun *_flash_unlock_block; size_t block_size = dev->block_info[0].block_size; @@ -237,10 +233,8 @@ legacy_flash_block_unlock (struct cyg_fl _flash_unlock_block = (code_fun*) __anonymizer(&flash_unlock_block); return (*_flash_unlock_block)(block_base, block_size, blocks); -#else - return CYG_FLASH_ERR_INVALID; +} #endif -} // Map a hardware status to a package error static int @@ -267,20 +261,23 @@ flash_dev_query(void* data) HAL_FLASH_CACHES_ON(d_cache, i_cache); } -CYG_FLASH_FUNS(cyg_legacy_funs, - legacy_flash_init, - legacy_flash_query, - legacy_flash_erase_block, - legacy_flash_program, - LEGACY_FLASH_READ, - legacy_flash_hwr_map_error, - legacy_flash_block_lock, - legacy_flash_block_unlock -); +static const CYG_FLASH_FUNS(cyg_legacy_funs, + legacy_flash_init, + legacy_flash_query, + legacy_flash_erase_block, + legacy_flash_program, + LEGACY_FLASH_READ, + legacy_flash_hwr_map_error, + legacy_flash_block_lock, + legacy_flash_block_unlock + ); -CYG_FLASH_DRIVER(cyg_zzlegacy_flashdev, // zz so that it probably comes last. +CYG_FLASH_DRIVER(cyg_zzlegacy_flashdev, &cyg_legacy_funs, - NULL, // Pointer to config structure - 0, // Start address of flash - 0); // Size of private structure - + 0, // Flags + 0, // Start address, filled in by init + 0, // End address, filled in by init + 0, // Number of block infos, filled in by init + NULL, // Block infos, again filled in by init + NULL // Driver private data, none needed + );
