Main Page | Alphabetical List | Data Structures | Directories | File List | Data Fields | Globals

Cache.h

Go to the documentation of this file.
00001 /** 
00002  *  @file   Cache.h
00003  *
00004  *  @brief      Defines Cache API interface.
00005  *
00006  *
00007  *  @ver        02.00.00.68_beta1
00008  *  
00009  *  ============================================================================
00010  *  
00011  *  Copyright (c) 2008-2009, Texas Instruments Incorporated
00012  *
00013  *  Redistribution and use in source and binary forms, with or without
00014  *  modification, are permitted provided that the following conditions
00015  *  are met:
00016  *  
00017  *  *  Redistributions of source code must retain the above copyright
00018  *     notice, this list of conditions and the following disclaimer.
00019  *  
00020  *  *  Redistributions in binary form must reproduce the above copyright
00021  *     notice, this list of conditions and the following disclaimer in the
00022  *     documentation and/or other materials provided with the distribution.
00023  *  
00024  *  *  Neither the name of Texas Instruments Incorporated nor the names of
00025  *     its contributors may be used to endorse or promote products derived
00026  *     from this software without specific prior written permission.
00027  *  
00028  *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
00029  *  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
00030  *  THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
00031  *  PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
00032  *  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
00033  *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
00034  *  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
00035  *  OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
00036  *  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
00037  *  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
00038  *  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00039  *  Contact information for paper mail:
00040  *  Texas Instruments
00041  *  Post Office Box 655303
00042  *  Dallas, Texas 75265
00043  *  Contact information: 
00044  *  http://www-k.ext.ti.com/sc/technical-support/product-information-centers.htm?
00045  *  DCMP=TIHomeTracking&HQS=Other+OT+home_d_contact
00046  *  ============================================================================
00047  *  
00048  */
00049 
00050 
00051 #ifndef CACHE_H
00052 #define CACHE_H
00053 
00054 
00055 #if defined (__cplusplus)
00056 extern "C" {
00057 #endif /* defined (__cplusplus) */
00058 
00059 /* =============================================================================
00060  *  All success and failure codes for the module
00061  * =============================================================================
00062  */
00063 
00064 /*!
00065  *  @def    Cache_S_SUCCESS
00066  *  @brief  Operation is successful.
00067  */
00068 #define Cache_S_SUCCESS              0
00069 
00070 /*!
00071  *  @def    Cache_E_FAIL
00072  *  @brief  Generic failure.
00073  */
00074 #define Cache_E_FAIL                -1
00075 
00076 
00077 /* ================================
00078  *  Enums for the module
00079  * ================================
00080  */
00081 /*! Lists of bitmask cache types */
00082 enum Cache_Type {
00083     Cache_Type_L1P = 0x1,         /*! Level 1 Program cache */
00084     Cache_Type_L1D = 0x2,         /*! Level 1 Data cache */
00085     Cache_Type_L1  = 0x3,         /*! Level 1 caches */
00086     Cache_Type_L2P = 0x4,         /*! Level 2 Program cache */
00087     Cache_Type_L2D = 0x8,         /*! Level 2 Data cache */
00088     Cache_Type_L2  = 0xC,         /*! Level 2 caches */
00089     Cache_Type_ALL = 0xffff       /*! All caches */
00090 };
00091 
00092 /*! Lists of cache modes */
00093 enum Cache_Mode {
00094     Cache_Mode_FREEZE,
00095     Cache_Mode_BYPASS,
00096     Cache_Mode_NORMAL
00097 };
00098 
00099 /*!
00100  *  @brief      Invalidate the Cache module.
00101  *
00102  *  @sa         Cache_inv
00103  */
00104 Void Cache_inv(Ptr blockPtr, UInt32 byteCnt, Bits16 type, Bool wait);
00105 
00106 /*!
00107  *  @brief      Writeback the Cache module.
00108  *
00109  *  @sa         Cache_wb
00110  */
00111 Void Cache_wb(Ptr blockPtr, UInt32 byteCnt, Bits16 type, Bool wait);
00112 
00113 /*!
00114  *  @brief      Write Back and Invalidate the Cache module.
00115  *
00116  *  @sa         Cache_wbInv
00117  */
00118 Void Cache_wbInv(Ptr blockPtr, UInt32 byteCnt, Bits16 type, Bool wait);
00119 
00120 /*!
00121  *  @brief      Wait for cache operation to complete.
00122  *
00123  *  @sa         Cache_wait
00124  */
00125 Void Cache_wait(Void);
00126 
00127 /*!
00128  *  @brief      Set the mode of Cache module.
00129  *
00130  *  @sa         Cache_setMode
00131  */
00132 enum Cache_Mode Cache_setMode(Bits16 type, enum Cache_Mode mode);
00133 
00134 #if defined (__cplusplus)
00135 }
00136 #endif /* defined (__cplusplus) */
00137 
00138 
00139 #endif /* CACHE_H */

Generated on Mon Mar 14 11:59:44 2011 for Syslink by  doxygen 1.4.4