Sebastian Huber
53da07e436
Filesystem: PR1255: Move offset update to handlers
...
It is now the responsibility of the read() and write() handler to update
the offset field of the IO descriptor (rtems_libio_t). This change
makes it possible to protect the IO descriptor from concurrent access by
per file locks.
2012-05-15 10:01:42 +02:00
Sebastian Huber
3c462734ba
libblock: Fix purge device tree traversal
2012-05-14 16:57:59 +02: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
84ab4fce24
libblock: Add RTEMS_BLKIO_PURGEDEV
2012-05-11 13:58:43 +02:00
Sebastian Huber
30d412469c
Filesystem: PR1398: Fix lseek() mechanic
...
According to POSIX the lseek() function shall not, by itself, extend the
size of a file.
Remove the size field of rtems_libio_t. A file has only one size but
may have multiple open file descriptors. Thus a file size field in the
file descriptor may lead to inconsistencies.
New default handlers rtems_filesystem_default_lseek_file() and
rtems_filesystem_default_lseek_directory().
2012-05-11 13:58:43 +02:00
Joel Sherrill
33a105fb69
Revert: Remove CVS Ids
...
See http://www.rtems.org/pipermail/rtems-devel/2012-May/001006.html
for details.
2012-05-07 11:08:48 -05:00
Ralf Corsépius
ee32f67a6f
Remove CVS-Ids.
2012-05-04 09:36:25 +02: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
b467782b53
libblock: Add rtems_bdbuf_set_block_size()
...
The new function rtems_bdbuf_set_block_size() must be used to set the
block size of a disk device. It will check if the block size is valid
and set the new fields block_to_media_block_shift and bds_per_group of
the rtems_disk_device structure. This helps to avoid complex arithmetic
operations in the block device buffer get and read path.
2012-04-12 10:42:43 +02:00
Sebastian Huber
3d60c1b22a
libblock: Change error status to fatal error
...
Calling the bdbuf API functions in the not configured state is now a
fatal error.
2012-04-12 10:42:43 +02:00
Sebastian Huber
462ee70f9b
libblock: Use unprotected chain operations
...
The transfer chain is accessed by at most one thread at a time.
2012-04-12 10:42:43 +02:00
Sebastian Huber
89a84c0fa3
libblock: Use unprotected chain operations
...
The chains are protected by the bdbuf cache lock.
2012-04-12 10:42:42 +02:00
Sebastian Huber
5b045eb6f8
Filesystem: Change type of ioctl_return
...
Change the ioctl_return type of rtems_libio_ioctl_args_t to match the
ioctl() return value type.
2012-04-03 15:03:18 +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
Sebastian Huber
3ab9c76d3f
libblock: Use new API for disk media
2012-03-13 12:24:19 +01:00
Sebastian Huber
01211720ec
libblock: Add generic IMFS block device nodes
...
New functions
o rtems_blkdev_create(), and
o rtems_blkdev_create_partition().
New test libtests/block11.
2012-03-13 12:24:18 +01:00
Sebastian Huber
291c926449
libblock: Split file and simplify
2012-03-13 12:24:18 +01:00
Sebastian Huber
3ee7b84394
libblock: New support functions
...
Add
o rtems_disk_get_block_size(),
o rtems_disk_get_block_begin(), and
o rtems_disk_get_block_count().
2012-03-13 12:24:18 +01:00
Sebastian Huber
796967c3df
libblock: Change bdbuf API
...
The functions
o rtems_bdbuf_get(),
o rtems_bdbuf_read(),
o rtems_bdbuf_syncdev(), and
o rtems_bdbuf_purge_dev(),
use now the disk device instead of the device identifier. This makes
bdbuf independent of rtems_disk_obtain() and rtems_disk_release(). It
is the responsiblity of the file system to obtain the disk device. This
also reduces the overhead to get a buffer.
The key for the AVL tree uses now the disk device instead of the device
identifier. The pointer is interpreted as an unsigned integer. This
reduces the memory overhead and makes the comparison operation a bit
faster.
Removed function rtems_bdbuf_purge_major(). This function was too
destructive and could have unpredictable side effects.
2012-03-13 12:24:18 +01:00
Sebastian Huber
1024561f19
libblock: Documentation
2012-03-13 12:24:18 +01:00
Sebastian Huber
c42b03f498
libblock: Remove superfluous volatile qualifier
...
All these variables are protected by the bdbuf cache mutex.
2012-03-13 12:24:18 +01:00
Sebastian Huber
a3170f70b6
libblock: Discard extended partitions
...
Discard the extended partitions after evaluation. This prevents logical
disks that contain other logical disks.
2012-03-13 12:24:17 +01:00
Sebastian Huber
c93fc2b36b
libblock: rtems_ide_part_table_initialize() API
2012-03-13 12:24:17 +01:00
Sebastian Huber
c649976859
libblock: New block IO control support functions
2012-03-13 12:24:17 +01:00
Sebastian Huber
4f3cbd9240
libblock: New IO control RTEMS_BLKIO_GETDISKDEV
2012-03-13 12:24:17 +01:00
Sebastian Huber
03ad6b1d85
libblock: Avoid bdbuf API
2012-03-13 12:24:17 +01:00
Sebastian Huber
5e88538f97
libblock: Split file
2012-03-13 12:24:17 +01:00
Sebastian Huber
beea58072d
libblock: Add optional free at delete request
2012-03-13 12:24:16 +01:00
Joel Sherrill
61250b4ce9
Remove all .cvsignore files.
2012-02-01 10:59:44 -06: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
Chris Johns
97ae192a23
2011-11-03 Chris Johns <chrisj@rtems.org>
...
PR 1948/filesystem
* libfs/src/rfs/rtems-rfs-file-system.c,
libfs/src/rfs/rtems-rfs-file-system.h,
libfs/src/rfs/rtems-rfs-format.c, libfs/src/rfs/rtems-rfs-rtems.c:
Add support for mount passing an ASCIIZ string containing
configuration options. Remove the hardcoded dir string and
size. Fix comments.
* libblock/src/bdbuf.c: Fix state labels in trace output.
2011-11-03 06:32:42 +00:00
Joel Sherrill
0d23caa93c
2011-07-07 Joel Sherrill <joel.sherrill@oarcorp.com>
...
* libblock/src/nvdisk-sram.c, libi2c/libi2c.c,
libmisc/shell/main_msdosfmt.c: Eliminate use of GNU old-style field
designator extension as recommended by clang.
2011-07-07 22:15:00 +00:00
Joel Sherrill
21242c252a
2011-06-24 Joel Sherrill <joel.sherrill@oarcorp.com>
...
* include/rtems/bspIo.h, include/rtems/concat.h,
include/rtems/endian.h, include/rtems/fs.h, include/rtems/irq.h,
include/rtems/pci.h, include/rtems/userenv.h,
libblock/include/rtems/flashdisk.h,
libblock/include/rtems/nvdisk-sram.h,
libblock/include/rtems/nvdisk.h, libcsupport/include/clockdrv.h,
libcsupport/include/console.h, libcsupport/include/iosupp.h,
libcsupport/include/spurious.h,
libcsupport/include/motorola/mc68230.h,
libcsupport/include/rtems/assoc.h, libcsupport/include/rtems/error.h,
libcsupport/include/rtems/framebuffer.h,
libcsupport/include/rtems/gxx_wrappers.h,
libcsupport/include/rtems/libcsupport.h,
libcsupport/include/rtems/libio_.h,
libcsupport/include/rtems/malloc.h,
libcsupport/include/rtems/termiostypes.h,
libcsupport/include/sys/statvfs.h, libcsupport/include/sys/termios.h,
libcsupport/include/sys/utsname.h, libcsupport/include/zilog/z8036.h,
libcsupport/include/zilog/z8530.h, libcsupport/include/zilog/z8536.h,
libfs/src/imfs/imfs.h, libfs/src/pipe/pipe.h,
libmisc/capture/capture-cli.h, libmisc/capture/capture.h,
libmisc/cpuuse/cpuuse.h, libmisc/devnull/devnull.h,
libmisc/devnull/devzero.h, libmisc/dumpbuf/dumpbuf.h,
libmisc/fb/fb.h, libmisc/fb/mw_uid.h, libmisc/mouse/mouse_parser.h,
libmisc/shell/shellconfig.h, libmisc/stringto/stringto.h,
libmisc/untar/untar.h, libnetworking/memory.h, posix/include/aio.h,
posix/include/mqueue.h, posix/include/semaphore.h,
posix/include/rtems/posix/aio_misc.h,
posix/include/rtems/posix/barrier.h,
posix/include/rtems/posix/cond.h, posix/include/rtems/posix/config.h,
posix/include/rtems/posix/key.h, posix/include/rtems/posix/mqueue.h,
posix/include/rtems/posix/mutex.h,
posix/include/rtems/posix/posixapi.h,
posix/include/rtems/posix/priority.h,
posix/include/rtems/posix/psignal.h,
posix/include/rtems/posix/pthread.h,
posix/include/rtems/posix/ptimer.h,
posix/include/rtems/posix/rwlock.h,
posix/include/rtems/posix/semaphore.h,
posix/include/rtems/posix/sigset.h,
posix/include/rtems/posix/spinlock.h,
posix/include/rtems/posix/threadsup.h,
posix/include/rtems/posix/time.h, posix/include/rtems/posix/timer.h,
posix/inline/rtems/posix/barrier.inl,
posix/inline/rtems/posix/cond.inl,
posix/inline/rtems/posix/mqueue.inl,
posix/inline/rtems/posix/mutex.inl,
posix/inline/rtems/posix/priority.inl,
posix/inline/rtems/posix/pthread.inl,
posix/inline/rtems/posix/rwlock.inl,
posix/inline/rtems/posix/semaphore.inl,
posix/inline/rtems/posix/spinlock.inl,
posix/inline/rtems/posix/timer.inl, rtems/mainpage.h,
rtems/include/rtems/rtems/barrier.h,
rtems/include/rtems/rtems/object.h,
rtems/include/rtems/rtems/timer.h,
rtems/inline/rtems/rtems/barrier.inl,
rtems/inline/rtems/rtems/timer.inl,
rtems/src/semtranslatereturncode.c, sapi/include/rtems/config.h,
sapi/include/rtems/fatal.h, sapi/include/rtems/mptables.h,
score/include/rtems/score/object.h,
score/include/rtems/score/priority.h,
score/inline/rtems/score/object.inl,
score/inline/rtems/score/priority.inl: Add @file Doxygen directives
and descriptions to files which originated with RTEMS. This improves
the file list page generated by Doxygen.
2011-06-24 17:52:58 +00:00
Sebastian Huber
f3ea49920f
2011-05-11 Sebastian Huber <sebastian.huber@embedded-brains.de>
...
* libblock/include/rtems/bdbuf.h: Documentation.
2011-05-11 09:38:01 +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
Ralf Corsepius
b907b479e5
2011-02-22 Ralf Corsépius <ralf.corsepius@rtems.org>
...
* libblock/src/media-path.c: Remove warnings.
2011-02-22 15:11:06 +00:00
Sebastian Huber
a8afce3872
2011-02-17 Sebastian Huber <sebastian.huber@embedded-brains.de>
...
* libblock/include/rtems/bdpart.h (rtems_bdpart_format):
Preserve previous API.
* libblock/src/bdpart-create.c, libblock/src/bdpart-read.c,
libblock/src/bdpart-write.c: Reflect changes above.
* libmisc/shell/fdisk.c: Reflect changes above.
2011-02-17 16:25:43 +00:00
Ralf Corsepius
fc658e4e69
2011-02-10 Ralf Corsépius <ralf.corsepius@rtems.org>
...
* libblock/include/rtems/bdpart.h (rtems_bdpart_format):
Eliminate unnamed union (Non c99-compliant).
* libblock/src/bdpart-create.c, libblock/src/bdpart-read.c,
libblock/src/bdpart-write.c: Reflect changes above.
2011-02-10 23:34:58 +00:00
Sebastian Huber
1680638ab6
2011-01-21 Sebastian Huber <sebastian.huber@embedded-brains.de>
...
* libblock/src/blkdev-ops.c: New file.
* libblock/Makefile.am: Reflect change from above.
* libblock/include/rtems/blkdev.h: Declare rtems_blkdev_generic_ops.
2011-01-21 09:43:24 +00:00
Sebastian Huber
61380a5451
2011-01-20 Sebastian Huber <sebastian.huber@embedded-brains.de>
...
* libblock/src/show_bdbuf.c, score/src/objectmp.c: Avoid chain API
violations.
2011-01-20 08:16:15 +00:00
Sebastian Huber
d4d6bd813f
2010-08-25 Sebastian Huber <sebastian.huber@embedded-brains.de>
...
* libblock/include/rtems/media.h, libblock/src/media-server.c: Use
chains instead of a message queue.
2010-08-25 08:44:14 +00:00
Sebastian Huber
6ef96da17e
2010-08-25 Sebastian Huber <sebastian.huber@embedded-brains.de>
...
CID 114/SECURE_CODING
* libblock/src/media.c: Avoid strcpy().
2010-08-25 08:31:43 +00:00
Sebastian Huber
2b5bd836ce
2010-08-25 Sebastian Huber <sebastian.huber@embedded-brains.de>
...
CID 113/SECURE_CODING
* libblock/src/media-path.c: Avoid strcpy(). Style. Use assert() to
avoid dead code.
2010-08-25 08:26:21 +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