Mercurial > ecos-v3_0-branch
diff packages/io/flash/current/src/legacy_dev.c @ 2816:422d0a343b4d
* include/flash.h: Modest API change: cyg_flash_init() no longer
takes a printf function argument. Instead two new API functions
are available: cyg_flash_set_printf() and
cyg_flash_set_global_printf().
* src/flash.c (CHATTER): Don't attempt output if printf function
is NULL.
(cyg_flash_init): No longer takes printf arg.
(cyg_flash_set_printf): New. Set per-device printf function, locking
if needed.
(cyg_flash_set_global_printf): New. Set printf function for all
devices, locking if needed.
* src/flashiodev.c (flashiodev_init): cyg_flash_init no longer takes
printf arg, and we can leave global printf at default.
* src/flashiodevlegacy.c (flashiodev_init): Ditto.
* src/legacy_api.c (flash_init): cyg_flash_init no longer takes
printf arg. So call cyg_flash_set_global_printf as well.
* src/legacy_dev.c (legacy_flash_init): legacy drivers can't handle
NULL printf function, so provide a dummy.
* doc/flash.sgml: Document removal of printf functionality of
cyg_flash_init() and document cyg_flash_set_printf() and
cyg_flash_set_global_printf().
| author | jlarmour |
|---|---|
| date | Thu, 19 Feb 2009 00:14:26 +0000 |
| parents | 74dbf4c3f2e1 |
| children |
line wrap: on
line diff
--- a/packages/io/flash/current/src/legacy_dev.c +++ b/packages/io/flash/current/src/legacy_dev.c @@ -8,7 +8,7 @@ // ####ECOSGPLCOPYRIGHTBEGIN#### // ------------------------------------------- // This file is part of eCos, the Embedded Configurable Operating System. -// Copyright (C) 2004, 2006 Free Software Foundation, Inc. +// Copyright (C) 2004, 2006, 2009 Free Software Foundation, Inc. // // eCos is free software; you can redistribute it and/or modify it under // the terms of the GNU General Public License as published by the Free @@ -81,6 +81,8 @@ externC code_fun flash_read_buf; externC code_fun flash_lock_block; externC code_fun flash_unlock_block; +static int dummy_printf( const char *fmt, ... ) {return 0;} + // Initialize the device static int legacy_flash_init (struct cyg_flash_dev *dev) @@ -88,7 +90,11 @@ legacy_flash_init (struct cyg_flash_dev int err; static cyg_flash_block_info_t block_info[1]; - flash_info.pf = dev->pf; + // Legacy device drivers can't handle NULL printf function + if (NULL != dev->pf) + flash_info.pf = dev->pf; + else + flash_info.pf = &dummy_printf; err=flash_hwr_init();
