Commit Graph

36 Commits

Author SHA1 Message Date
Chris Johns
c49985691f Change all references of rtems.com to rtems.org. 2014-03-21 08:10:47 +11:00
Gedare Bloom
74d357513f flashdisk: swap arguments to checksum helper
The arguments to rtems_fdisk_calc_crc16() are reversed when called from
rtems_fdisk_page_checksum().

26052 Operands don't affect result
2013-09-05 14:31:14 -04:00
Sebastian Huber
dbdfc78fc7 libblock: PR2040: Avoid NULL pointer access
This partly reverts commit 08b9d53460.

Avoid a NULL pointer access and perform the source segment erase if
necessary.
2013-08-23 09:24:10 +02:00
Mathew Kallada
f6c7bcfe99 libblock: Doxygen Enhancement Task #1 2012-12-21 11:42:39 -06:00
Sebastian Huber
9f0a68ce5a libblock: Block device transfer request API change
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.
2012-11-02 09:40:58 +01:00
Joel Sherrill
9b4422a251 Remove All CVS Id Strings Possible Using a Script
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.
2012-05-11 08:44:13 -05:00
Sebastian Huber
08b9d53460 libblock: PR2040: Fix recycle destination update
Check the availablity of a recycle destination segment only when it is
necessary to avoid missing resycle source segment erasures.
2012-04-16 11:06:45 +02:00
Sebastian Huber
ac50df2304 libblock: PR2040: Add starvation threshold
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.
2012-04-16 11:06:45 +02:00
Sebastian Huber
9f808d1f53 PR2040: libblock: Flash disk starvations statistic 2012-03-14 10:49:49 +01:00
Sebastian Huber
a757d0f80a PR2040: libblock: Flash disk documentation 2012-03-14 10:49:49 +01:00
Sebastian Huber
a309a7941e PR2040: libblock: Fix return status 2012-03-14 10:49:07 +01:00
Sebastian Huber
c08072ce31 PR2040: libblock: Avoid erased blocks starvation
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.
2012-03-14 10:48:54 +01:00
Sebastian Huber
f9fd0c203e PR2040: libblock: Track number of erased blocks 2012-03-14 10:48:39 +01:00
Sebastian Huber
12806cd02f PR2040: libblock: Use segment control as parameter 2012-03-14 10:48:17 +01:00
Ralf Corsepius
da13f46bdb 2011-12-09 Ralf Corsépius <ralf.corsepius@rtems.org>
* libblock/src/flashdisk.c:
	Make rtems_fdisk_crc16_gen_factors static.
	* libblock/src/nvdisk.c:
	Make rtems_nvdisk_crc16_gen_factors static.
2011-12-09 13:04:48 +00:00
Sebastian Huber
fd9537b79d 2011-05-11 Sebastian Huber <sebastian.huber@embedded-brains.de>
PR 1790/cpukit
	* libblock/src/flashdisk.c: Fixed memset() parameters.
2011-05-11 08:28:49 +00:00
Joel Sherrill
bf4766fe69 2010-08-23 Joel Sherrill <joel.sherrill@oarcorp.com>
* libblock/src/flashdisk.c, libblock/src/nvdisk.c,
	libcsupport/src/ioctl.c, libfs/src/dosfs/fat_file.c: Add va_end().
2010-08-23 23:17:42 +00:00
Joel Sherrill
15bcb4113c 2010-06-14 Joel Sherrill <joel.sherrilL@OARcorp.com>
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-06-14 13:01:58 +00:00
Ralf Corsepius
b5926be790 2010-05-22 Ralf Corsépius <ralf.corsepius@rtems.org>
* 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-22 16:43:09 +00:00
Chris Johns
470708dafe 2010-05-14 Chris Johns <chrisj@rtems.org>
* libblock/src/flashdisk.c: Clean up on initialisation errors.
2010-05-14 03:59:11 +00:00
Chris Johns
a9fa9b765d 2010-02-18 Chris Johns <chrisj@rtems.org>
* 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.
2010-02-18 00:24:25 +00:00
Thomas Doerfler
5c587596f0 libblock API update 2010-01-19 09:10:03 +00:00
Thomas Doerfler
1e0a5512fc Update for block device API change 2009-12-18 15:59:30 +00:00
Ralf Corsepius
18daff9b95 Whitespace removal. 2009-11-29 13:35:32 +00:00
Thomas Doerfler
b96e09cb42 * libblock/include/rtems/diskdevs.h: Added driver data pointer to IO
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-13 07:58:33 +00:00
Chris Johns
eb649786c8 2009-10-08 Chris Johns <chrisj@rtems.org>
* 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-10-08 07:07:36 +00:00
Chris Johns
945884fe9f 2009-08-06 Chris Johns <chrisj@rtems.org>
* 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-08-06 03:58:09 +00:00
Joel Sherrill
918a0d8fdd 2009-06-12 Joel Sherrill <joel.sherrill@oarcorp.com>
* 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 17:38:53 +00:00
Chris Johns
7275542171 2009-06-12 Chris Johns <chrisj@rtems.org>
* 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.
2009-06-12 02:59:18 +00:00
Ralf Corsepius
31e2698797 Add __attribute__((unused)) to unused function args. 2009-01-02 12:43:07 +00:00
Ralf Corsepius
5c0d4fd8ab Remove bool, true, false. 2008-08-21 04:32:11 +00:00
Chris Johns
3899a5379f 2008-07-29 Chris Johns <chrisj@rtems.org>
* 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-07-29 02:21:15 +00:00
Chris Johns
a5de1ef5fc 2008-01-05 Chris Johns <chrisj@rtems.org>
* 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.
2008-01-05 06:57:17 +00:00
Chris Johns
1ff9922df0 2007-12-22 Chris Johns <chrisj@rtems.org>
* 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-22 08:27:18 +00:00
Chris Johns
30088aac5b 2007-12-12 Chris Johns <chrisj@rtems.org>
* libblock/include/rtems/flashdisk.h, libblock/src/flashdisk.c:
	Add RTEMS license details.
2007-12-14 06:02:42 +00:00
Chris Johns
3c68c6c8b7 2007-12-12 Chris Johns <chrisj@rtems.org>
* 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.
2007-12-14 04:58:04 +00:00