summaryrefslogtreecommitdiffstats
path: root/cpukit/libblock/src/flashdisk.c (follow)
Commit message (Collapse)AuthorAgeFilesLines
* cpukit/libblock: Change license to BSD-2Joel Sherrill2022-02-281-3/+22
| | | | Updates #3053.
* doxygen: Switch @brief and @ingroupSebastian Huber2020-04-281-1/+2
| | | | This order change fixes the Latex documentation build via Doxygen.
* Canonicalize config.h includeSebastian Huber2020-04-161-1/+1
| | | | | | | | Use the following variant which was already used by most source files: #ifdef HAVE_CONFIG_H #include "config.h" #endif
* flashdisk: Use rtems_blkdev_create()Sebastian Huber2018-08-071-47/+22
| | | | Update #3358.
* libblock: Use self-contained mutex for flashdiskSebastian Huber2018-02-071-74/+57
| | | | Update #2843.
* basdefs.h: Add and use RTEMS_UNUSEDSebastian Huber2015-10-261-1/+1
|
* Change all references of rtems.com to rtems.org.Chris Johns2014-03-211-1/+1
|
* flashdisk: swap arguments to checksum helperGedare Bloom2013-09-051-1/+1
| | | | | | | The arguments to rtems_fdisk_calc_crc16() are reversed when called from rtems_fdisk_page_checksum(). 26052 Operands don't affect result
* libblock: PR2040: Avoid NULL pointer accessSebastian Huber2013-08-231-6/+16
| | | | | | | This partly reverts commit 08b9d534604fbf437743a9925ef28eb1b848510d. Avoid a NULL pointer access and perform the source segment erase if necessary.
* libblock: Doxygen Enhancement Task #1Mathew Kallada2012-12-211-2/+7
|
* libblock: Block device transfer request API changeSebastian Huber2012-11-021-4/+2
| | | | | | | | | | | | | | Add and use rtems_blkdev_request_done(). Block device transfer requests must signal the completion status now with rtems_blkdev_request_done(). The return value of the block device IO control will be ignored for transfer requests. The first parameter of rtems_blkdev_request_cb is now the transfer request structure. Renamed rtems_blkdev_request::req_done to rtems_blkdev_request::done to break third party drivers at compile time, otherwise this API change would result in runtime errors.
* Remove All CVS Id Strings Possible Using a ScriptJoel Sherrill2012-05-111-2/+0
| | | | | | | | | | | | Script does what is expected and tries to do it as smartly as possible. + remove occurrences of two blank comment lines next to each other after Id string line removed. + remove entire comment blocks which only exited to contain CVS Ids + If the processing left a blank line at the top of a file, it was removed.
* libblock: PR2040: Fix recycle destination updateSebastian Huber2012-04-161-8/+7
| | | | | Check the availablity of a recycle destination segment only when it is necessary to avoid missing resycle source segment erasures.
* libblock: PR2040: Add starvation thresholdSebastian Huber2012-04-161-1/+15
| | | | | | Do not use the unavailable block count as the erased blocks starvation threshold. Use instead the block count of the largest segment. This improves the starvation resolution gain of available blocks.
* PR2040: libblock: Flash disk starvations statisticSebastian Huber2012-03-141-2/+10
|
* PR2040: libblock: Flash disk documentationSebastian Huber2012-03-141-78/+3
|
* PR2040: libblock: Fix return statusSebastian Huber2012-03-141-3/+3
|
* PR2040: libblock: Avoid erased blocks starvationSebastian Huber2012-03-141-115/+185
| | | | | | | | | | | | The compaction process needs erased blocks. It is only possible to erase an entire segment. Thus in order to make a progress we always need enough erased blocks to empty a used or available segment which can be erased in turn. A (possibly the worst case) lower bound of erased blocks is the block count of the largest segment. The number of unavailable blocks specified by the configuration will be used to determine the erase blocks starvation situation. The number of unavailable blocks must be greater than or equal to the number of blocks in the largest segment.
* PR2040: libblock: Track number of erased blocksSebastian Huber2012-03-141-1/+8
|
* PR2040: libblock: Use segment control as parameterSebastian Huber2012-03-141-100/+91
|
* 2011-12-09 Ralf Corsépius <ralf.corsepius@rtems.org>Ralf Corsepius2011-12-091-1/+1
| | | | | | | * libblock/src/flashdisk.c: Make rtems_fdisk_crc16_gen_factors static. * libblock/src/nvdisk.c: Make rtems_nvdisk_crc16_gen_factors static.
* 2011-05-11 Sebastian Huber <sebastian.huber@embedded-brains.de>Sebastian Huber2011-05-111-1/+1
| | | | | PR 1790/cpukit * libblock/src/flashdisk.c: Fixed memset() parameters.
* 2010-08-23 Joel Sherrill <joel.sherrill@oarcorp.com>Joel Sherrill2010-08-231-0/+5
| | | | | * libblock/src/flashdisk.c, libblock/src/nvdisk.c, libcsupport/src/ioctl.c, libfs/src/dosfs/fat_file.c: Add va_end().
* 2010-06-14 Joel Sherrill <joel.sherrilL@OARcorp.com>Joel Sherrill2010-06-141-0/+2
| | | | | | | PR 1553/filesystem Coverity Id 37 * libblock/src/flashdisk.c: Fix two paths which should have returned an error but did not have the return statement.
* 2010-05-22 Ralf Corsépius <ralf.corsepius@rtems.org>Ralf Corsepius2010-05-221-1/+1
| | | | | | * libblock/src/flashdisk.c, libblock/src/nvdisk.c: Cast argp to uintptr_t temporary instead of uint32_t temporary (Avoid incompatible pointer casts on 16bit targets).
* 2010-05-14 Chris Johns <chrisj@rtems.org>Chris Johns2010-05-141-20/+49
| | | | * libblock/src/flashdisk.c: Clean up on initialisation errors.
* 2010-02-18 Chris Johns <chrisj@rtems.org>Chris Johns2010-02-181-6/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * libfs/src/rfs/rtems-rfs-bitmaps.c, libfs/src/rfs/rtems-rfs-bitmaps.h, libfs/src/rfs/rtems-rfs-bitmaps-ut.c, libfs/src/rfs/rtems-rfs-block.c, libfs/src/rfs/rtems-rfs-block.h, libfs/src/rfs/rtems-rfs-block-pos.h, libfs/src/rfs/rtems-rfs-buffer-bdbuf.c, libfs/src/rfs/rtems-rfs-buffer.c, libfs/src/rfs/rtems-rfs-buffer-devio.c, libfs/src/rfs/rtems-rfs-buffer.h, libfs/src/rfs/rtems-rfs-data.h, libfs/src/rfs/rtems-rfs-dir.c, libfs/src/rfs/rtems-rfs-dir.h, libfs/src/rfs/rtems-rfs-dir-hash.c, libfs/src/rfs/rtems-rfs-dir-hash.h, libfs/src/rfs/rtems-rfs-file.c, libfs/src/rfs/rtems-rfs-file.h, libfs/src/rfs/rtems-rfs-file-system.c, libfs/src/rfs/rtems-rfs-file-system-fwd.h, libfs/src/rfs/rtems-rfs-file-system.h, libfs/src/rfs/rtems-rfs-format.c, libfs/src/rfs/rtems-rfs-format.h, libfs/src/rfs/rtems-rfs-group.c, libfs/src/rfs/rtems-rfs-group.h, libfs/src/rfs/rtems-rfs.h, libfs/src/rfs/rtems-rfs-inode.c, libfs/src/rfs/rtems-rfs-inode.h, libfs/src/rfs/rtems-rfs-link.c, libfs/src/rfs/rtems-rfs-link.h, libfs/src/rfs/rtems-rfs-mutex.c, libfs/src/rfs/rtems-rfs-mutex.h, libfs/src/rfs/rtems-rfs-rtems.c, libfs/src/rfs/rtems-rfs-rtems-dev.c, libfs/src/rfs/rtems-rfs-rtems-dir.c, libfs/src/rfs/rtems-rfs-rtems-file.c, libfs/src/rfs/rtems-rfs-rtems.h, libfs/src/rfs/rtems-rfs-rtems-utils.c, libfs/src/rfs/rtems-rfs-shell.c, libfs/src/rfs/rtems-rfs-shell.h, libfs/src/rfs/rtems-rfs-trace.c, libfs/src/rfs/rtems-rfs-trace.h: New. * Makefile.am, preinstall.am, libfs/Makefile.am, wrapup/Makefile.am: Updated with the RFS support. * libfs/README: Updated after 10 years. * libblock/src/flashdisk.c, libblock/src/nvdisk.c, libblock/src/ramdisk-driver.c: Updated to the new error reporting in libblock. * libmisc/shell/main_ls.c, libmisc/shell/print-ls.c: Fix printing the size in long mode. * libnetworking/nfs/bootp_subr.c, libnetworking/rtems/rtems_bootp.c, libnetworking/rtems/rtems_bsdnet_internal.h: Return the BOOTP/DHCP to the forever behaviour of 4.9 with the ability to call BOOTP and control the process if required.
* libblock API updateThomas Doerfler2010-01-191-4/+2
|
* Update for block device API changeThomas Doerfler2009-12-181-1/+1
|
* Whitespace removal.Ralf Corsepius2009-11-291-65/+65
|
* * libblock/include/rtems/diskdevs.h: Added driver data pointer to IOThomas Doerfler2009-10-131-4/+5
| | | | | | | | | control function. The IO control handler takes now the disk device as first parameter instead of the physical device number. * cpukit/libblock/include/rtems/blkdev.h, libblock/src/bdbuf.c, libblock/src/blkdev.c, libblock/src/diskdevs.c, libblock/src/nvdisk.c, libblock/src/flashdisk.c, libblock/src/ramdisk.c: Update for block device API change.
* 2009-10-08 Chris Johns <chrisj@rtems.org>Chris Johns2009-10-081-26/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Makefile.am, preinstall.am: Added statvfs.h. * libcsupport/Makefile.am: Add statvfs.c. * libcsupport/include/sys/statvfs.h, libcsupport/src/statvfs.c: New. * libcsupport/include/rtems/libio.h: Add a file system handler for the statvfs call. * libfs/src/devfs/devfs_init.c, libfs/src/dosfs/msdos_init.c, libfs/src/imfs/imfs_init.c, libfs/src/nfsclient/src/nfs.c: Set the statvfs handler to NULL. * include/rtems/fs.h: Add a second node access field for the RFS file system to hold a directory offset while the existing field holds the inode number. This save a rescan of the directory when working with directories. * libblock/include/rtems/bdbuf.h: Added references and user fields to the buffer descriptor. * libblock/src/bdbuf.c: Added dynamic buffer support for different block sizes. Fixed a number of bugs. * libblock/src/blkdev.c: Release the disk device on an error. * libblock/src/diskdevs.c: Set the block size to the media block size during initialisation of the disk device. * libblock/src/flashdisk.c, libblock/src/nvdisk.c, libblock/src/ramdisk.c: Updated the drivers to handle variable block sizes. * libfs/src/dosfs/fat.c, libfs/src/dosfs/fat.h: Release any buffers when an error occurs. The FAT buffer layer hangs onto a single buffer while mounted. This should be fixed. * sapi/inline/rtems/chain.inl: Added rtems_chain_set_off_chain, rtems_chain_is_node_off_chain, and rtems_chain_previous. * score/inline/rtems/score/chain.inl: Added _Chain_Set_off_chain, and _Chain_Is_node_off_chain. * libmisc/shell/main_ln.c, libmisc/shell/main_mknod.c, libmisc/shell/mknod-pack_dev.c, libmisc/shell/mknod-pack_dev.h: New shell commands. * libmisc/Makefile.am, libmisc/shell/shellconfig.h: Added ln and mknod commands. * libmisc/shell/hexdump-display.c: Fixed the reopen bug which showed up as a free with a bad pointer. * libmisc/shell/main_mount.c: List the user adding file system when listing the available file systems to mount. * libmisc/shell/utils-cp.c: Remove the fixed static copy buffer and use a large dynamic buffer. * score/inline/rtems/score/address.inl, score/src/coremsgsubmit.c, score/src/objectallocate.c, score/src/objectfree.c: Remove warnings.
* 2009-08-06 Chris Johns <chrisj@rtems.org>Chris Johns2009-08-061-1/+1
| | | | | | | * libblock/src/bdbuf.c: Fix group user logic. * libblock/include/rtems/blkdev.h, libblock/src/blkdev.c, libblock/src/nvdisk.c, libblock/src/flashdisk.c: Add set block size, and get media block size support.
* 2009-06-12 Joel Sherrill <joel.sherrill@oarcorp.com>Joel Sherrill2009-06-121-2/+2
| | | | | | | | * libblock/src/flashdisk.c, libblock/src/nvdisk.c, libblock/src/ramdisk.c, libfs/src/dosfs/fat.c, libfs/src/dosfs/msdos_format.c: Eliminate using the GNU/Linux specific error numbers EBADRQC and ENOTBLK. Switch to EINVAL and ENOTTY as appropriate.
* 2009-06-12 Chris Johns <chrisj@rtems.org>Chris Johns2009-06-121-3/+2
| | | | | | | * libblock/include/rtems/flashdisk.h, libblock/include/rtems/nvdisk.h, libblock/src/flashdisk.c, libblock/src/nvdisk.c: Change names to match the RAM disk change. * libcsupport/src/eval.c: Remove some warnings.
* Add __attribute__((unused)) to unused function args.Ralf Corsepius2009-01-021-1/+1
|
* Remove bool, true, false.Ralf Corsepius2008-08-211-7/+0
|
* 2008-07-29 Chris Johns <chrisj@rtems.org>Chris Johns2008-07-291-18/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * libblock/Makefile.am: Removed src/show_bdbuf.c. * libblock/src/show_bdbuf.c: Removed. * libblock/include/rtems/bdbuf.h, cpukit/libblock/src/bdbuf.c: Rewritten the bdbuf code. Remove pre-emption disable, score access, fixed many bugs and increased performance. * libblock/include/rtems/blkdev.h: Added RTEMS_BLKDEV_CAPABILITIES block device request. Cleaned up comments. Added block and user fields to the sg buffer request. Move to rtems_* namespace. * libblock/include/rtems/diskdevs.h, cpukit/libblock/src/diskdevs.c: Move to rtems_* namespace. Add a capabilities field for drivers. Change rtems_disk_lookup to rtems_disk_obtain to match the release call. You do not lookup and release a disk, you obtain and release a disk. * libblock/include/rtems/ide_part_table.h, libblock/include/rtems/ramdisk.h, libblock/src/ide_part_table.c: Move to rtems_* namespace. * libblock/include/rtems/nvdisk.h: Formatting change. * libblock/src/blkdev.c: Move to rtems_* namespace. Change rtems_disk_lookup to rtems_disk_obtain * libblock/src/flashdisk.c: Move to rtems_* namespace. Use the new support for the block number in the scatter/grather request struct. This allows non-continuous buffer requests for those drivers that can support increasing performance. * libblock/src/nvdisk.c: Move to rtems_* namespace. Removed warnings. Added better error checking. Fixed some comments. * libblock/src/ramdisk.c: Move to rtems_* namespace. Added some trace functions to help debugging upper layers. Use the new support for the block number in the scatter/grather request struct. This allows non-continuous buffer requests for those drivers that can support increasing performance. * libfs/src/dosfs/fat.c, libfs/src/dosfs/fat.h: Use new chains API. Removed temporary hack and changed set_errno_and_return_minus_one to rtems_set_errno_and_return_minus_one. Move fat_buf_access from header and stopped it being inlined. Updated to libblock changes. * libfs/src/dosfs/fat_fat_operations.c, libfs/src/dosfs/fat_file.c, libfs/src/dosfs/msdos_create.c, libfs/src/dosfs/msdos_dir.c, libfs/src/dosfs/msdos_eval.c, libfs/src/dosfs/msdos_file.c, libfs/src/dosfs/msdos_format.c, libfs/src/dosfs/msdos_free.c, libfs/src/dosfs/msdos_initsupp.c, libfs/src/dosfs/msdos_misc.c, libfs/src/dosfs/msdos_mknod.c: Use new chains API. Removed temporary hack and changed set_errno_and_return_minus_one to rtems_set_errno_and_return_minus_one. Updated to libblock changes. * libmisc/Makefile.am: Add new ls and rm command files. * libmisc/shell/cmp-ls.c, libmisc/shell/extern-ls.h, libmisc/shell/filemode.c, libmisc/shell/print-ls.c, libmisc/shell/pwcache.c, libmisc/shell/utils-ls.c, libmisc/shell/vis.c, shell/vis.h: New. * libmisc/shell/extern-cp.h, libmisc/shell/main_cp.c, libmisc/shell/utils-cp.c: Fixed the usage call bug. * libmisc/shell/main_blksync.c: Updated to the new block IO ioctl command. * libmisc/shell/main_ls.c, libmisc/shell/main_rm.c: Updated to BSD commands with more features. * score/src/coremutex.c: Fix the strick order mutex code. * libmisc/shell/shell.c: Change shell tasks mode to be timeslice and no ASR. * sapi/include/confdefs.h: Change ata_driver_task_priority to rtems_ata_driver_task_priority. Add the new BD buf cache parameters with defaults. * score/src/interr.c: Do not return if the CPU halt call returns.
* 2008-01-05 Chris Johns <chrisj@rtems.org>Chris Johns2008-01-051-243/+340
| | | | | | | | | | | | | | * configure.ac: Fix typo in the strict order mutex CPU OPTs test. * libmisc/shell/shell.c: Handle '#' comment characters correctly. * libblock/include/rtems/flashdisk.h: Add docmentation about the control fields. Add more control fields to handle the flash when full. * libblock/src/flashdisk.c: Fix the descriptor erase test so it detects a descriptor is erased. Add support for unavailable blocks the user can configure. Print the used list as a diag. Fix the bug when a page is detected as failed and present on more than one queue. Add a count to the queues so queue length can be used to manage compaction.
* 2007-12-22 Chris Johns <chrisj@rtems.org>Chris Johns2007-12-221-4/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | * configure.ac: fixed bug that always enabled strict order mutexes. * score/inline/rtems/score/coremutex.inl: Fixed coding standard. * score/src/coremutex.c: Add the holder's thread to the lock_mutex list if the mutex is initialised locked. * libnetworking/rtems/rtems_glue.c: Changed semaphore error message to show the error is an rtems-net error. * libmisc/monitor/mon-network.c: Removed warnings. * telnetd/icmds.c: Changed shell_* to rtems_shell_*. * score/Makefile.am: Fixed typo that stopped 'make tags' working. * libmisc/shell/err.c, libmisc/shell/err.h, libmisc/shell/errx.c, libmisc/shell/extern-cp.h, libmisc/shell/fts.c, libmisc/shell/fts.h, libmisc/shell/main_cp.c, libmisc/shell/utils-cp.c, libmisc/shell/verr.c, libmisc/shell/verrx.c, libmisc/shell/vwarn.c, libmisc/shell/vwarnx.c, libmisc/shell/warn.c, libmisc/shell/warnx.c: New. Ported from BSD. * libmisc/shell/shellconfig.h: Add the cp command. * libmisc/Makefile.am: Add the new files to the shell. * libmisc/shell/shell.c, libmisc/shell/shell.h: Add scripting support. * libblock/src/flashdisk.c: Fixed disk drive count size setting bug.
* 2007-12-12 Chris Johns <chrisj@rtems.org>Chris Johns2007-12-141-0/+4
| | | | | * libblock/include/rtems/flashdisk.h, libblock/src/flashdisk.c: Add RTEMS license details.
* 2007-12-12 Chris Johns <chrisj@rtems.org>Chris Johns2007-12-141-0/+2475
* Makefile.am, preinstall.am: Added libblock/include/rtems/flashdisk.h to the installed header list. * libblock/Makefile.am: Add flashdisk.c to the files to build. * libblock/include/rtems/flashdisk.h, libblock/src/flashdisk.c: New.