# 26.15. Block Device Cache Configuration¶

This section describes configuration options related to the Block Device Cache (bdbuf).

## 26.15.1. CONFIGURE_APPLICATION_NEEDS_LIBBLOCK¶

CONSTANT:

CONFIGURE_APPLICATION_NEEDS_LIBBLOCK

OPTION TYPE:

This configuration option is a boolean feature define.

DEFAULT CONFIGURATION:

If this configuration option is undefined, then the described feature is not enabled.

DESCRIPTION:

In case this configuration option is defined, then the Block Device Cache is initialized during system initialization.

NOTES:

Each option of the Block Device Cache (bdbuf) configuration can be explicitly set by the user with the configuration options below. The Block Device Cache is used for example by the RFS and DOSFS filesystems.

## 26.15.2. CONFIGURE_BDBUF_BUFFER_MAX_SIZE¶

CONSTANT:

CONFIGURE_BDBUF_BUFFER_MAX_SIZE

OPTION TYPE:

This configuration option is an integer define.

DEFAULT VALUE:

The default value is 4096.

DESCRIPTION:

The value of this configuration option defines the maximum size of a buffer in bytes.

CONSTRAINTS:

The following constraints apply to this configuration option:

• The value of the configuration option shall be greater than or equal to zero.

• The value of the configuration option shall be an integral multiple of CONFIGURE_BDBUF_BUFFER_MIN_SIZE.

## 26.15.3. CONFIGURE_BDBUF_BUFFER_MIN_SIZE¶

CONSTANT:

CONFIGURE_BDBUF_BUFFER_MIN_SIZE

OPTION TYPE:

This configuration option is an integer define.

DEFAULT VALUE:

The default value is 512.

DESCRIPTION:

The value of this configuration option defines the minimum size of a buffer in bytes.

CONSTRAINTS:

The following constraints apply to this configuration option:

• The value of the configuration option shall be greater than or equal to zero.

• The value of the configuration option shall be less than or equal to UINT32_MAX.

## 26.15.4. CONFIGURE_BDBUF_CACHE_MEMORY_SIZE¶

CONSTANT:

CONFIGURE_BDBUF_CACHE_MEMORY_SIZE

OPTION TYPE:

This configuration option is an integer define.

DEFAULT VALUE:

The default value is 32768.

DESCRIPTION:

The value of this configuration option defines the size of the cache memory in bytes.

CONSTRAINTS:

The following constraints apply to this configuration option:

• The value of the configuration option shall be greater than or equal to zero.

• The value of the configuration option shall be less than or equal to SIZE_MAX.

CONSTANT:

CONFIGURE_BDBUF_MAX_READ_AHEAD_BLOCKS

OPTION TYPE:

This configuration option is an integer define.

DEFAULT VALUE:

The default value is 0.

DESCRIPTION:

The value of this configuration option defines the maximum blocks per read-ahead request.

NOTES:

CONSTRAINTS:

The following constraints apply to this configuration option:

• The value of the configuration option shall be greater than or equal to zero.

• The value of the configuration option shall be less than or equal to UINT32_MAX.

## 26.15.6. CONFIGURE_BDBUF_MAX_WRITE_BLOCKS¶

CONSTANT:

CONFIGURE_BDBUF_MAX_WRITE_BLOCKS

OPTION TYPE:

This configuration option is an integer define.

DEFAULT VALUE:

The default value is 16.

DESCRIPTION:

The value of this configuration option defines the maximum blocks per write request.

CONSTRAINTS:

The following constraints apply to this configuration option:

• The value of the configuration option shall be greater than or equal to zero.

• The value of the configuration option shall be less than or equal to UINT32_MAX.

CONSTANT:

CONFIGURE_BDBUF_READ_AHEAD_TASK_PRIORITY

OPTION TYPE:

This configuration option is an integer define.

DEFAULT VALUE:

The default value is 15.

DESCRIPTION:

CONSTRAINTS:

The value of the configuration option shall be a valid Classic API task priority. The set of valid task priorities depends on the scheduler configuration.

CONSTANT:

CONFIGURE_BDBUF_TASK_STACK_SIZE

OPTION TYPE:

This configuration option is an integer define.

DEFAULT VALUE:

The default value is RTEMS_MINIMUM_STACK_SIZE.

DESCRIPTION:

The value of this configuration option defines the task stack size of the Block Device Cache tasks in bytes.

CONSTRAINTS:

The following constraints apply to this configuration option:

• The value of the configuration option shall be greater than or equal to CONFIGURE_MINIMUM_TASK_STACK_SIZE.

• The value of the configuration option shall be less than or equal to a BSP-specific and application-specific value which depends on the size of the memory available to the application.

• The value of the configuration option shall be small enough so that the task stack space calculation carried out by <rtems/confdefs.h> does not overflow an integer of type uintptr_t.

## 26.15.9. CONFIGURE_SWAPOUT_BLOCK_HOLD¶

CONSTANT:

CONFIGURE_SWAPOUT_BLOCK_HOLD

OPTION TYPE:

This configuration option is an integer define.

DEFAULT VALUE:

The default value is 1000.

DESCRIPTION:

The value of this configuration option defines the swapout task maximum block hold time in milliseconds.

CONSTRAINTS:

The following constraints apply to this configuration option:

• The value of the configuration option shall be greater than or equal to zero.

• The value of the configuration option shall be less than or equal to UINT32_MAX.

## 26.15.10. CONFIGURE_SWAPOUT_SWAP_PERIOD¶

CONSTANT:

CONFIGURE_SWAPOUT_SWAP_PERIOD

OPTION TYPE:

This configuration option is an integer define.

DEFAULT VALUE:

The default value is 250.

DESCRIPTION:

The value of this configuration option defines the swapout task swap period in milliseconds.

CONSTRAINTS:

The following constraints apply to this configuration option:

• The value of the configuration option shall be greater than or equal to zero.

• The value of the configuration option shall be less than or equal to UINT32_MAX.

CONSTANT:

CONFIGURE_SWAPOUT_TASK_PRIORITY

OPTION TYPE:

This configuration option is an integer define.

DEFAULT VALUE:

The default value is 15.

DESCRIPTION:

The value of this configuration option defines the swapout task priority.

CONSTRAINTS:

The value of the configuration option shall be a valid Classic API task priority. The set of valid task priorities depends on the scheduler configuration.

CONSTANT:

CONFIGURE_SWAPOUT_WORKER_TASKS

OPTION TYPE:

This configuration option is an integer define.

DEFAULT VALUE:

The default value is 0.

DESCRIPTION:

The value of this configuration option defines the swapout worker task count.

CONSTRAINTS:

The following constraints apply to this configuration option:

• The value of the configuration option shall be greater than or equal to zero.

• The value of the configuration option shall be less than or equal to UINT32_MAX.

CONSTANT:

CONFIGURE_SWAPOUT_WORKER_TASK_PRIORITY

OPTION TYPE:

This configuration option is an integer define.

DEFAULT VALUE:

The default value is 15.

DESCRIPTION:

The value of this configuration option defines the swapout worker task priority.

CONSTRAINTS:

The value of the configuration option shall be a valid Classic API task priority. The set of valid task priorities depends on the scheduler configuration.