Cache routines working with a processor set?
Sebastian Huber
sebastian.huber at embedded-brains.de
Wed Nov 14 06:21:34 UTC 2018
Hello,
are the following cache manager routines used in an application or
device driver code?
/**
* @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
);
I would like to remove these exotic, complex and very hard to use
correctly functions.
--
Sebastian Huber, embedded brains GmbH
Address : Dornierstr. 4, D-82178 Puchheim, Germany
Phone : +49 89 189 47 41-16
Fax : +49 89 189 47 41-09
E-Mail : sebastian.huber at embedded-brains.de
PGP : Public key available on request.
Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.
More information about the users
mailing list