<div dir="ltr"><div dir="ltr"><div dir="ltr">Hi Sebastian<div><br></div><div>None of the above, but we used to use rtems_cache_invalidate_entire_instruction / rtems_cache_invalidate_multiple_data_lines but now use arch specific methods instead.</div></div></div></div><br><div class="gmail_quote"><div dir="ltr">On Wed, 14 Nov 2018 at 06:21, Sebastian Huber <<a href="mailto:sebastian.huber@embedded-brains.de">sebastian.huber@embedded-brains.de</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hello,<br>
<br>
are the following cache manager routines used in an application or <br>
device driver code?<br>
<br>
/**<br>
  * @brief Flushes multiple data cache lines for a set of processors<br>
  *<br>
  * Dirty cache lines covering the area are transferred to memory.<br>
  * Depending on the cache implementation this may mark the lines as <br>
invalid.<br>
  *<br>
  * This operation should not be called from interrupt context.<br>
  *<br>
  * @param[in] addr The start address of the area to flush.<br>
  * @param[in] size The size in bytes of the area to flush.<br>
  * @param[in] setsize The size of the processor set.<br>
  * @param[in] set The target processor set.<br>
  */<br>
void rtems_cache_flush_multiple_data_lines_processor_set(<br>
   const void *addr,<br>
   size_t size,<br>
   const size_t setsize,<br>
   const cpu_set_t *set<br>
);<br>
<br>
/**<br>
  * @brief Invalidates multiple data cache lines for a set of processors<br>
  *<br>
  * The cache lines covering the area are marked as invalid.  A later read<br>
  * access in the area will load the data from memory.<br>
  *<br>
  * In case the area is not aligned on cache line boundaries, then this<br>
  * operation may destroy unrelated data.<br>
  *<br>
  * This operation should not be called from interrupt context.<br>
  *<br>
  * @param[in] addr The start address of the area to invalidate.<br>
  * @param[in] size The size in bytes of the area to invalidate.<br>
  * @param[in] setsize The size of the processor set.<br>
  * @param[in] set The target processor set.<br>
  */<br>
void rtems_cache_invalidate_multiple_data_lines_processor_set(<br>
   const void *addr,<br>
   size_t size,<br>
   const size_t setsize,<br>
   const cpu_set_t *set<br>
);<br>
<br>
/**<br>
  * @brief Flushes the entire data cache for a set of processors<br>
  *<br>
  * This operation should not be called from interrupt context.<br>
  *<br>
  * @see rtems_cache_flush_multiple_data_lines().<br>
  *<br>
  * @param[in] setsize The size of the processor set.<br>
  * @param[in] set The target processor set.<br>
  */<br>
void rtems_cache_flush_entire_data_processor_set(<br>
   const size_t setsize,<br>
   const cpu_set_t *set<br>
);<br>
<br>
/**<br>
  * @brief Invalidates the entire cache for a set of processors<br>
  *<br>
  * This function is responsible for performing a data cache<br>
  * invalidate. It invalidates the entire cache for a set of<br>
  * processors.<br>
  *<br>
  * This operation should not be called from interrupt context.<br>
  *<br>
  * @param[in] setsize The size of the processor set.<br>
  * @param[in] set The target processor set.<br>
  */<br>
void rtems_cache_invalidate_entire_data_processor_set(<br>
   const size_t setsize,<br>
   const cpu_set_t *set<br>
);<br>
<br>
I would like to remove these exotic, complex and very hard to use <br>
correctly functions.<br>
<br>
-- <br>
Sebastian Huber, embedded brains GmbH<br>
<br>
Address : Dornierstr. 4, D-82178 Puchheim, Germany<br>
Phone   : +49 89 189 47 41-16<br>
Fax     : +49 89 189 47 41-09<br>
E-Mail  : <a href="mailto:sebastian.huber@embedded-brains.de" target="_blank">sebastian.huber@embedded-brains.de</a><br>
PGP     : Public key available on request.<br>
<br>
Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.<br>
<br>
_______________________________________________<br>
users mailing list<br>
<a href="mailto:users@rtems.org" target="_blank">users@rtems.org</a><br>
<a href="http://lists.rtems.org/mailman/listinfo/users" rel="noreferrer" target="_blank">http://lists.rtems.org/mailman/listinfo/users</a></blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div><br>regards</div><div>---</div><div>Matthew J Fletcher</div><br></div>