mirror of
https://gitlab.rtems.org/rtems/rtos/rtems.git
synced 2026-11-09 08:37:58 +08:00
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.
This commit is contained in:
1 parent
74ee68dd00
commit
a5de1ef5fc
5 files changed
+411
-266
No files matched your search
@@ -1,3 +1,17 @@
|
||||
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-03 Till Straumann <strauman@slac.stanford.edu>
|
||||
|
||||
* score/src/threadhandler.c, sapi/src/exshutdown.c:
|
||||
|
||||
+1
-1
@@ -234,7 +234,7 @@ RTEMS_CPUOPT([__RTEMS_DO_NOT_INLINE_CORE_MUTEX_SEIZE__],
|
||||
|
||||
## This gives the same behavior as 4.8 and older
|
||||
RTEMS_CPUOPT([__STRICT_ORDER_MUTEX__],
|
||||
[test x"${ENABLE_STRICT_ORDER_MUTEX}"= x"1"],
|
||||
[test x"${ENABLE_STRICT_ORDER_MUTEX}" = x"1"],
|
||||
[1],
|
||||
[disable strict order mutex]
|
||||
)
|
||||
|
||||
@@ -57,6 +57,7 @@ typedef struct rtems_fdisk_monitor_data
|
||||
{
|
||||
uint32_t block_size;
|
||||
uint32_t block_count;
|
||||
uint32_t unavail_blocks;
|
||||
uint32_t device_count;
|
||||
uint32_t segment_count;
|
||||
uint32_t page_count;
|
||||
@@ -264,17 +265,47 @@ typedef struct rtems_fdisk_device_desc
|
||||
/**
|
||||
* RTEMS Flash Disk configuration table used to initialise the
|
||||
* driver.
|
||||
*
|
||||
* The unavailable blocks count is the number of blocks less than the
|
||||
* available number of blocks the file system is given. This means there
|
||||
* will always be that number of blocks available when the file system
|
||||
* thinks the disk is full. The compaction code needs blocks to compact
|
||||
* with so you will never be able to have all the blocks allocated to the
|
||||
* file system and be able to full the disk.
|
||||
*
|
||||
* The compacting segment count is the number of segments that are
|
||||
* moved into a new segment. A high number will mean more segments with
|
||||
* low active page counts and high used page counts will be moved into
|
||||
* avaliable pages how-ever this extends the compaction time due to
|
||||
* time it takes the erase the pages. There is no pont making this number
|
||||
* greater than the maximum number of pages in a segment.
|
||||
*
|
||||
* The available compacting segment count is the level when compaction occurs
|
||||
* when writing. If you set this to 0 then compaction will fail because
|
||||
* there will be no segments to compact into.
|
||||
*
|
||||
* The info level can be 0 for off with error, and abort messages allowed.
|
||||
* Level 1 is warning messages, level 1 is informational messages, and level 3
|
||||
* is debugging type prints. The info level can be turned off with a compile
|
||||
* time directive on the command line to the compiler of:
|
||||
*
|
||||
* -DRTEMS_FDISK_TRACE=0
|
||||
*/
|
||||
typedef struct rtems_flashdisk_config
|
||||
{
|
||||
uint32_t block_size; /**< The block size. */
|
||||
uint32_t device_count; /**< The number of devices. */
|
||||
const rtems_fdisk_device_desc* devices; /**< The device descriptions. */
|
||||
uint32_t flags; /**< Set of flags to control
|
||||
driver. */
|
||||
uint32_t compact_segs; /**< Max number of segs to
|
||||
compact in one pass. */
|
||||
uint32_t info_level; /**< Default info level. */
|
||||
uint32_t block_size; /**< The block size. */
|
||||
uint32_t device_count; /**< The number of devices. */
|
||||
const rtems_fdisk_device_desc* devices; /**< The device descriptions. */
|
||||
uint32_t flags; /**< Set of flags to control
|
||||
driver. */
|
||||
uint32_t unavail_blocks; /**< Number of blocks not
|
||||
available to the file sys. */
|
||||
uint32_t compact_segs; /**< Max number of segs to
|
||||
compact in one pass. */
|
||||
uint32_t avail_compact_segs; /**< The number of segments
|
||||
when compaction occurs
|
||||
when writing. */
|
||||
uint32_t info_level; /**< Default info level. */
|
||||
} rtems_flashdisk_config;
|
||||
|
||||
/*
|
||||
|
||||
+353
-256
File diff suppressed because it is too large.
Load diff
@@ -498,8 +498,11 @@ rtems_boolean rtems_shell_main_loop(
|
||||
|
||||
if (*c == '\0') /* empty line */
|
||||
continue;
|
||||
if (*c == '#') /* comment character */
|
||||
|
||||
if (*c == '#') { /* comment character */
|
||||
cmd[0] = 0;
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!strcmp(cmd,"e")) { /* edit last command */
|
||||
strcpy(cmd,last_cmd);
|
||||
|
||||
Reference in new issue
Block a user