summaryrefslogtreecommitdiffstats
path: root/c-user/cache/introduction.rst
blob: 6cae4b2cdd64c226c07756ce31e1cf5975772bdb (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
.. SPDX-License-Identifier: CC-BY-SA-4.0

.. Copyright (C) 2016 Pavel Pisa
.. Copyright (C) 2014, 2021 embedded brains GmbH (http://www.embedded-brains.de)
.. Copyright (C) 2000, 2008 On-Line Applications Research Corporation (OAR)

.. This file is part of the RTEMS quality process and was automatically
.. generated.  If you find something that needs to be fixed or
.. worded better please post a report or patch to an RTEMS mailing list
.. or raise a bug report:
..
.. https://www.rtems.org/bugs.html
..
.. For information on updating and regenerating please refer to the How-To
.. section in the Software Requirements Engineering chapter of the
.. RTEMS Software Engineering manual.  The manual is provided as a part of
.. a release.  For development sources please refer to the online
.. documentation at:
..
.. https://docs.rtems.org

.. Generated from spec:/rtems/cache/if/group

.. _CacheManagerIntroduction:

Introduction
============

.. The following list was generated from:
.. spec:/rtems/cache/if/flush-multiple-data-lines
.. spec:/rtems/cache/if/invalidate-multiple-data-lines
.. spec:/rtems/cache/if/invalidate-multiple-instruction-lines
.. spec:/rtems/cache/if/instruction-sync-after-code-change
.. spec:/rtems/cache/if/get-maximal-line-size
.. spec:/rtems/cache/if/get-data-line-size
.. spec:/rtems/cache/if/get-instruction-line-size
.. spec:/rtems/cache/if/get-data-size
.. spec:/rtems/cache/if/get-instruction-size
.. spec:/rtems/cache/if/flush-entire-data
.. spec:/rtems/cache/if/invalidate-entire-data
.. spec:/rtems/cache/if/invalidate-entire-instruction
.. spec:/rtems/cache/if/enable-data
.. spec:/rtems/cache/if/disable-data
.. spec:/rtems/cache/if/enable-instruction
.. spec:/rtems/cache/if/disable-instruction
.. spec:/rtems/cache/if/aligned-malloc

The Cache Manager provides functions to perform maintenance operations for data
and instruction caches.

The actual actions of the Cache Manager operations depend on the hardware and
the implementation provided by the CPU architecture port or a board support
package.  Cache implementations tend to be highly hardware dependent. The
directives provided by the Cache Manager are:

* :ref:`InterfaceRtemsCacheFlushMultipleDataLines` - Flushes the data cache
  lines covering the memory area.

* :ref:`InterfaceRtemsCacheInvalidateMultipleDataLines` - Invalidates the data
  cache lines covering the memory area.

* :ref:`InterfaceRtemsCacheInvalidateMultipleInstructionLines` - Invalidates
  the instruction cache lines covering the memory area.

* :ref:`InterfaceRtemsCacheInstructionSyncAfterCodeChange` - Ensures necessary
  synchronization required after code changes.

* :ref:`InterfaceRtemsCacheGetMaximalLineSize` - Gets the maximal cache line
  size in bytes of all caches (data, instruction, or unified).

* :ref:`InterfaceRtemsCacheGetDataLineSize` - Gets the data cache line size in
  bytes.

* :ref:`InterfaceRtemsCacheGetInstructionLineSize` - Gets the instruction cache
  line size in bytes.

* :ref:`InterfaceRtemsCacheGetDataCacheSize` - Gets the data cache size in
  bytes for the cache level.

* :ref:`InterfaceRtemsCacheGetInstructionCacheSize` - Gets the instruction
  cache size in bytes for the cache level.

* :ref:`InterfaceRtemsCacheFlushEntireData` - Flushes the entire data cache.

* :ref:`InterfaceRtemsCacheInvalidateEntireData` - Invalidates the entire data
  cache.

* :ref:`InterfaceRtemsCacheInvalidateEntireInstruction` - Invalidates the
  entire instruction cache.

* :ref:`InterfaceRtemsCacheEnableData` - Enables the data cache.

* :ref:`InterfaceRtemsCacheDisableData` - Disables the data cache.

* :ref:`InterfaceRtemsCacheEnableInstruction` - Enables the instruction cache.

* :ref:`InterfaceRtemsCacheDisableInstruction` - Disables the instruction
  cache.

* :ref:`InterfaceRtemsCacheAlignedMalloc` - Allocates memory from the C Program
  Heap which begins at a cache line boundary.