#3622 closed task (fixed)

Remove cache routines working with a processor set

Reported by: Sebastian Huber Owned by: Sebastian Huber
Priority: normal Milestone: 5.1
Component: unspecified Version: 5
Severity: normal Keywords:
Cc: Blocked By:
Blocking:

Description

The following cache manager API functions are exotic, complex, very hard to use correctly, not used in the RTEMS code base, and apparently unused by applications (https://lists.rtems.org/pipermail/users/2018-November/032764.html). Remove these functions

/**
 * @brief Flushes multiple data cache lines for a set of processors
 *
 * Dirty cache lines covering the area are transferred to memory.
 * Depending on the cache implementation this may mark the lines as invalid.
 *
 * This operation should not be called from interrupt context.
 *
 * @param[in] addr The start address of the area to flush.
 * @param[in] size The size in bytes of the area to flush.
 * @param[in] setsize The size of the processor set.
 * @param[in] set The target processor set.
 */
void rtems_cache_flush_multiple_data_lines_processor_set(
  const void *addr,
  size_t size,
  const size_t setsize,
  const cpu_set_t *set
);

/**
 * @brief Invalidates multiple data cache lines for a set of processors
 *
 * The cache lines covering the area are marked as invalid.  A later read
 * access in the area will load the data from memory.
 *
 * In case the area is not aligned on cache line boundaries, then this
 * operation may destroy unrelated data.
 *
 * This operation should not be called from interrupt context.
 *
 * @param[in] addr The start address of the area to invalidate.
 * @param[in] size The size in bytes of the area to invalidate.
 * @param[in] setsize The size of the processor set.
 * @param[in] set The target processor set.
 */
void rtems_cache_invalidate_multiple_data_lines_processor_set(
  const void *addr,
  size_t size,
  const size_t setsize,
  const cpu_set_t *set
);

/**
 * @brief Flushes the entire data cache for a set of processors
 *
 * This operation should not be called from interrupt context.
 *
 * @see rtems_cache_flush_multiple_data_lines().
 *
 * @param[in] setsize The size of the processor set.
 * @param[in] set The target processor set.
 */
void rtems_cache_flush_entire_data_processor_set(
  const size_t setsize,
  const cpu_set_t *set
);

/**
 * @brief Invalidates the entire cache for a set of processors
 *
 * This function is responsible for performing a data cache
 * invalidate. It invalidates the entire cache for a set of
 * processors.
 *
 * This operation should not be called from interrupt context.
 *
 * @param[in] setsize The size of the processor set.
 * @param[in] set The target processor set.
 */
void rtems_cache_invalidate_entire_data_processor_set(
  const size_t setsize,
  const cpu_set_t *set
);

Change History (2)

comment:1 Changed on 11/27/18 at 07:09:13 by Sebastian Huber <sebastian.huber@…>

Resolution: fixed
Status: assignedclosed

In 0a75a4aa/rtems:

Remove rtems_cache_*_processor_set() functions

The following rtems_cache_*_processor_set() cache manager API functions
are exotic, complex, very hard to use correctly, not used in the RTEMS
code base, and apparently unused by applications.

Close #3622.

comment:2 Changed on 11/28/18 at 13:54:28 by Sebastian Huber <sebastian.huber@…>

In 5bf0c1a/rtems:

bsps/sparc: Fix SMP build

Update #3622.

Note: See TracTickets for help on using tickets.