source: rtems/cpukit/rtems/include/rtems/rtems/cache.h @ 277cc95

4.104.114.84.95
Last change on this file since 277cc95 was 277cc95, checked in by Joel Sherrill <joel.sherrill@…>, on 09/04/03 at 18:54:32

2003-09-04 Joel Sherrill <joel@…>

  • include/rtems.h, include/rtems/rtems/asr.h, include/rtems/rtems/attr.h, include/rtems/rtems/cache.h, include/rtems/rtems/clock.h, include/rtems/rtems/config.h, include/rtems/rtems/dpmem.h, include/rtems/rtems/event.h, include/rtems/rtems/eventmp.h, include/rtems/rtems/eventset.h, include/rtems/rtems/intr.h, include/rtems/rtems/message.h, include/rtems/rtems/modes.h, include/rtems/rtems/mp.h, include/rtems/rtems/msgmp.h, include/rtems/rtems/options.h, include/rtems/rtems/part.h, include/rtems/rtems/partmp.h, include/rtems/rtems/ratemon.h, include/rtems/rtems/region.h, include/rtems/rtems/regionmp.h, include/rtems/rtems/rtemsapi.h, include/rtems/rtems/sem.h, include/rtems/rtems/semmp.h, include/rtems/rtems/signal.h, include/rtems/rtems/signalmp.h, include/rtems/rtems/status.h, include/rtems/rtems/support.h, include/rtems/rtems/taskmp.h, include/rtems/rtems/tasks.h, include/rtems/rtems/timer.h, include/rtems/rtems/types.h, inline/rtems/rtems/asr.inl, inline/rtems/rtems/attr.inl, inline/rtems/rtems/dpmem.inl, inline/rtems/rtems/event.inl, inline/rtems/rtems/eventset.inl, inline/rtems/rtems/message.inl, inline/rtems/rtems/modes.inl, inline/rtems/rtems/options.inl, inline/rtems/rtems/part.inl, inline/rtems/rtems/ratemon.inl, inline/rtems/rtems/region.inl, inline/rtems/rtems/sem.inl, inline/rtems/rtems/status.inl, inline/rtems/rtems/support.inl, inline/rtems/rtems/tasks.inl, inline/rtems/rtems/timer.inl, macros/rtems/rtems/asr.inl, macros/rtems/rtems/attr.inl, macros/rtems/rtems/dpmem.inl, macros/rtems/rtems/event.inl, macros/rtems/rtems/eventset.inl, macros/rtems/rtems/message.inl, macros/rtems/rtems/modes.inl, macros/rtems/rtems/options.inl, macros/rtems/rtems/part.inl, macros/rtems/rtems/ratemon.inl, macros/rtems/rtems/region.inl, macros/rtems/rtems/sem.inl, macros/rtems/rtems/status.inl, macros/rtems/rtems/support.inl, macros/rtems/rtems/tasks.inl, macros/rtems/rtems/timer.inl, src/attr.c, src/clockget.c, src/clockset.c, src/clocktick.c, src/dpmem.c, src/dpmemcreate.c, src/dpmemdelete.c, src/dpmemexternal2internal.c, src/dpmemident.c, src/dpmeminternal2external.c, src/event.c, src/eventmp.c, src/eventreceive.c, src/eventseize.c, src/eventsend.c, src/eventsurrender.c, src/eventtimeout.c, src/intr.c, src/intrbody.c, src/intrcatch.c, src/mp.c, src/msg.c, src/msgmp.c, src/msgqallocate.c, src/msgqbroadcast.c, src/msgqcreate.c, src/msgqdelete.c, src/msgqflush.c, src/msgqgetnumberpending.c, src/msgqident.c, src/msgqreceive.c, src/msgqsend.c, src/msgqsubmit.c, src/msgqtranslatereturncode.c, src/msgqurgent.c, src/part.c, src/partcreate.c, src/partdelete.c, src/partgetbuffer.c, src/partident.c, src/partmp.c, src/partreturnbuffer.c, src/ratemon.c, src/ratemoncancel.c, src/ratemoncreate.c, src/ratemondelete.c, src/ratemongetstatus.c, src/ratemonident.c, src/ratemonperiod.c, src/ratemontimeout.c, src/region.c, src/regioncreate.c, src/regiondelete.c, src/regionextend.c, src/regiongetinfo.c, src/regiongetsegment.c, src/regiongetsegmentsize.c, src/regionident.c, src/regionmp.c, src/regionreturnsegment.c, src/rtclock.c, src/rtemsidtoname.c, src/rtemstimer.c, src/sem.c, src/semcreate.c, src/semdelete.c, src/semflush.c, src/semident.c, src/semmp.c, src/semobtain.c, src/semrelease.c, src/semtranslatereturncode.c, src/signal.c, src/signalcatch.c, src/signalmp.c, src/signalsend.c, src/taskcreate.c, src/taskdelete.c, src/taskgetnote.c, src/taskident.c, src/taskinitusers.c, src/taskissuspended.c, src/taskmode.c, src/taskmp.c, src/taskrestart.c, src/taskresume.c, src/tasks.c, src/tasksetnote.c, src/tasksetpriority.c, src/taskstart.c, src/tasksuspend.c, src/taskvariableadd.c, src/taskvariabledelete.c, src/taskvariableget.c, src/taskwakeafter.c, src/taskwakewhen.c, src/timercancel.c, src/timercreate.c, src/timerdelete.c, src/timerfireafter.c, src/timerfirewhen.c, src/timergetinfo.c, src/timerident.c, src/timerreset.c, src/timerserver.c, src/timerserverfireafter.c, src/timerserverfirewhen.c: URL for license changed.
  • Property mode set to 100644
File size: 3.7 KB
Line 
1/*  cache.h
2 *
3 *  Cache Manager
4 *
5 *  COPYRIGHT (c) 1989-1999.
6 *  On-Line Applications Research Corporation (OAR).
7 *
8 *  The license and distribution terms for this file may be
9 *  found in the file LICENSE in this distribution or at
10 *  http://www.rtems.com/license/LICENSE.
11 *
12 *
13 *  The functions in this file define the API to the RTEMS Cache Manager and
14 *  are divided into data cache and instruction cache functions. Data cache
15 *  functions are only meaningful if a data cache is supported. Instruction
16 *  cache functions are only meaningful if an instruction cache is supported.
17 * 
18 *  The functions below are implemented with CPU dependent support routines
19 *  implemented as part of libcpu. In the event that a CPU does not support a
20 *  specific function, the CPU dependent routine does nothing (but does exist).
21 * 
22 *  At this point, the Cache Manager makes no considerations, and provides no
23 *  support for BSP specific issues such as a secondary cache. In such a system,
24 *  the CPU dependent routines would have to be modified, or a BSP layer added
25 *  to this Manager.
26 */
27
28#ifndef __CACHE_h
29#define __CACHE_h
30
31#ifdef __cplusplus
32extern "C" {
33#endif
34
35#include <rtems/system.h>
36#include <sys/types.h>
37
38/*
39 *  These functions will ONLY do something if the
40 *  libcpu support includes data cache routines AND
41 *  the CPU model supports data caching.
42 */
43
44/*
45 * This function is called to flush the data cache by performing cache
46 * copybacks. It must determine how many cache lines need to be copied
47 * back and then perform the copybacks.
48 */
49void rtems_cache_flush_multiple_data_lines( const void *, size_t );
50
51/*
52 * This function is responsible for performing a data cache invalidate.
53 * It must determine how many cache lines need to be invalidated and then
54 * perform the invalidations.
55 */
56void rtems_cache_invalidate_multiple_data_lines( const void *, size_t );
57
58/*
59 * This function is responsible for performing a data cache flush.
60 * It flushes the entire cache.
61 */
62void rtems_cache_flush_entire_data( void );
63
64/*
65 * This function is responsible for performing a data cache
66 * invalidate. It invalidates the entire cache.
67 */
68void rtems_cache_invalidate_entire_data( void );
69
70/*
71 * This function returns the data cache granularity.
72 */
73int rtems_cache_get_data_line_size( void );
74
75/*
76 * This function freezes the data cache.
77 */
78void rtems_cache_freeze_data( void );
79
80/*
81 * This function unfreezes the data cache.
82 */
83void rtems_cache_unfreeze_data( void );
84
85/*
86 * These functions enable/disable the data cache.
87 */
88void rtems_cache_enable_data( void );
89void rtems_cache_disable_data( void );
90
91/*
92 *  These functions will ONLY do something if the
93 *  libcpu support includes instruction cache routines AND
94 *  the CPU model supports instruction caching.
95 */
96
97/*
98 * This function is responsible for performing an instruction cache
99 * invalidate. It must determine how many cache lines need to be invalidated
100 * and then perform the invalidations.
101 */
102void rtems_cache_invalidate_multiple_instruction_lines( const void *, size_t );
103
104/*
105 * This function is responsible for performing an instruction cache
106 * invalidate. It invalidates the entire cache.
107 */
108void rtems_cache_invalidate_entire_instruction( void );
109
110/*
111 * This function returns the instruction cache granularity.
112 */
113int rtems_cache_get_instruction_line_size( void );
114
115/*
116 * This function freezes the instruction cache.
117 */
118void rtems_cache_freeze_instruction( void );
119
120/*
121 * This function unfreezes the instruction cache.
122 */
123void rtems_cache_unfreeze_instruction( void );
124
125/*
126 * These functions enable/disable the instruction cache.
127 */
128void rtems_cache_enable_instruction( void );
129void rtems_cache_disable_instruction( void );
130
131
132#ifdef __cplusplus
133}
134#endif
135
136#endif
137/* end of include file */
Note: See TracBrowser for help on using the repository browser.