Jarda Pajskr / freemaster_lib

Dependents:   FreeMASTER_HelloWorld FreeMASTER_HelloWorld2 FreeMASTER_HelloWorld3

Fork of freemaster_lib by Jarda Pajskr

Committer:
JardaPajskr
Date:
Sun Nov 16 21:22:03 2014 +0000
Revision:
20:355a9738a180
Parent:
18:28874b4ebc97
updated header files

Who changed what in which revision?

UserRevisionLine numberNew contents of line
JardaPajskr 0:fb135bf60f82 1 /*******************************************************************************
JardaPajskr 0:fb135bf60f82 2 *
JardaPajskr 20:355a9738a180 3 * Copyright 2004-2014 Freescale Semiconductor, Inc.
JardaPajskr 0:fb135bf60f82 4 *
JardaPajskr 0:fb135bf60f82 5 *******************************************************************************/
JardaPajskr 0:fb135bf60f82 6 #ifndef __FREEMASTER_TSA_H
JardaPajskr 0:fb135bf60f82 7 #define __FREEMASTER_TSA_H
JardaPajskr 0:fb135bf60f82 8
JardaPajskr 0:fb135bf60f82 9 /*****************************************************************************
JardaPajskr 0:fb135bf60f82 10 Target-side Address translation structures and macros
JardaPajskr 0:fb135bf60f82 11 ******************************************************************************/
JardaPajskr 0:fb135bf60f82 12
JardaPajskr 0:fb135bf60f82 13 /* current TSA version */
JardaPajskr 0:fb135bf60f82 14 #define FMSTR_TSA_VERSION 2U
JardaPajskr 0:fb135bf60f82 15
JardaPajskr 0:fb135bf60f82 16 /* TSA flags carried in TSA_ENTRY.info (except the first entry in table) */
JardaPajskr 0:fb135bf60f82 17 #define FMSTR_TSA_INFO_ENTRYTYPE_MASK 0x0003U /* flags reserved for TSA_ENTRY use */
JardaPajskr 0:fb135bf60f82 18 #define FMSTR_TSA_INFO_STRUCT 0x0000U /* ENTRYTYPE: structure parent type */
JardaPajskr 0:fb135bf60f82 19 #define FMSTR_TSA_INFO_RO_VAR 0x0001U /* ENTRYTYPE: read-only variable */
JardaPajskr 0:fb135bf60f82 20 #define FMSTR_TSA_INFO_MEMBER 0x0002U /* ENTRYTYPE: structure member */
JardaPajskr 0:fb135bf60f82 21 #define FMSTR_TSA_INFO_RW_VAR 0x0003U /* ENTRYTYPE: read-write variable */
JardaPajskr 0:fb135bf60f82 22 #define FMSTR_TSA_INFO_VAR_FLAG 0x0001U /* ENTRYTYPE: FLAG: any variable */
JardaPajskr 0:fb135bf60f82 23 #define FMSTR_TSA_INFO_RWV_FLAG 0x0002U /* ENTRYTYPE: FLAG: R/W access */
JardaPajskr 0:fb135bf60f82 24
JardaPajskr 0:fb135bf60f82 25 /* TSA table index and size (both unsigned, at least 16 bit wide) */
JardaPajskr 0:fb135bf60f82 26 typedef FMSTR_SIZE FMSTR_TSA_TINDEX;
JardaPajskr 0:fb135bf60f82 27 typedef FMSTR_SIZE FMSTR_TSA_TSIZE;
JardaPajskr 0:fb135bf60f82 28
JardaPajskr 0:fb135bf60f82 29 /* pointer types used in TSA tables can be overridden in freemaster.h */
JardaPajskr 0:fb135bf60f82 30 /* (this is why macros are used instead of typedefs) */
JardaPajskr 0:fb135bf60f82 31 #ifndef FMSTR_TSATBL_STRPTR
JardaPajskr 0:fb135bf60f82 32 #define FMSTR_TSATBL_STRPTR const char*
JardaPajskr 0:fb135bf60f82 33 #endif
JardaPajskr 0:fb135bf60f82 34 #ifndef FMSTR_TSATBL_STRPTR_CAST
JardaPajskr 0:fb135bf60f82 35 #define FMSTR_TSATBL_STRPTR_CAST(x) ((FMSTR_TSATBL_STRPTR)(x))
JardaPajskr 0:fb135bf60f82 36 #endif
JardaPajskr 0:fb135bf60f82 37 #ifndef FMSTR_TSATBL_STRPTR_ENTRY
JardaPajskr 0:fb135bf60f82 38 #define FMSTR_TSATBL_STRPTR_ENTRY(x) FMSTR_TSATBL_STRPTR_CAST(x)
JardaPajskr 0:fb135bf60f82 39 #endif
JardaPajskr 0:fb135bf60f82 40 #ifndef FMSTR_TSATBL_VOIDPTR
JardaPajskr 0:fb135bf60f82 41 #define FMSTR_TSATBL_VOIDPTR const void*
JardaPajskr 0:fb135bf60f82 42 #endif
JardaPajskr 0:fb135bf60f82 43 #ifndef FMSTR_TSATBL_VOIDPTR_CAST
JardaPajskr 0:fb135bf60f82 44 #define FMSTR_TSATBL_VOIDPTR_CAST(x) ((FMSTR_TSATBL_VOIDPTR)(x))
JardaPajskr 0:fb135bf60f82 45 #endif
JardaPajskr 0:fb135bf60f82 46 #ifndef FMSTR_TSATBL_VOIDPTR_ENTRY
JardaPajskr 0:fb135bf60f82 47 #define FMSTR_TSATBL_VOIDPTR_ENTRY(x) FMSTR_TSATBL_VOIDPTR_CAST(x)
JardaPajskr 0:fb135bf60f82 48 #endif
JardaPajskr 0:fb135bf60f82 49
JardaPajskr 0:fb135bf60f82 50 /* TSA table entry. The unions inside assures variables sized enough to */
JardaPajskr 0:fb135bf60f82 51 /* accommodate both the C-pointer and the user-requested size (FMSTR_ADDR) */
JardaPajskr 0:fb135bf60f82 52 #if defined(__S12Z__)
JardaPajskr 0:fb135bf60f82 53 typedef struct
JardaPajskr 0:fb135bf60f82 54 {
JardaPajskr 0:fb135bf60f82 55 FMSTR_DUMMY dummy0;
JardaPajskr 0:fb135bf60f82 56 union { FMSTR_ADDR p; FMSTR_ADDR n; } name;
JardaPajskr 0:fb135bf60f82 57 FMSTR_DUMMY dummy1;
JardaPajskr 0:fb135bf60f82 58 union { FMSTR_ADDR p; FMSTR_ADDR n; } type;
JardaPajskr 0:fb135bf60f82 59 FMSTR_DUMMY dummy2;
JardaPajskr 0:fb135bf60f82 60 union { FMSTR_ADDR p; FMSTR_ADDR n; } addr;
JardaPajskr 0:fb135bf60f82 61 FMSTR_DUMMY dummy3;
JardaPajskr 0:fb135bf60f82 62 union { FMSTR_ADDR p; FMSTR_ADDR n; } info;
JardaPajskr 0:fb135bf60f82 63 } FMSTR_TSA_ENTRY;
JardaPajskr 0:fb135bf60f82 64 #else
JardaPajskr 0:fb135bf60f82 65 typedef struct
JardaPajskr 0:fb135bf60f82 66 {
JardaPajskr 0:fb135bf60f82 67 union { FMSTR_TSATBL_STRPTR p; FMSTR_ADDR n; } name;
JardaPajskr 0:fb135bf60f82 68 union { FMSTR_TSATBL_STRPTR p; FMSTR_ADDR n; } type;
JardaPajskr 0:fb135bf60f82 69 union { FMSTR_TSATBL_VOIDPTR p; FMSTR_ADDR n; } addr;
JardaPajskr 0:fb135bf60f82 70 union { FMSTR_TSATBL_VOIDPTR p; FMSTR_ADDR n; } info;
JardaPajskr 0:fb135bf60f82 71 } FMSTR_TSA_ENTRY;
JardaPajskr 0:fb135bf60f82 72 #endif
JardaPajskr 0:fb135bf60f82 73
JardaPajskr 15:24a63ac82fc3 74 /*****************************************************************************
JardaPajskr 15:24a63ac82fc3 75 * TSA table definition
JardaPajskr 15:24a63ac82fc3 76 *
JardaPajskr 15:24a63ac82fc3 77 *//*! @addtogroup fmstr_tsa_table
JardaPajskr 15:24a63ac82fc3 78 * @{
JardaPajskr 15:24a63ac82fc3 79 *******************************************************************************/
JardaPajskr 15:24a63ac82fc3 80
JardaPajskr 0:fb135bf60f82 81 /* list of available types for TSA table definition */
JardaPajskr 15:24a63ac82fc3 82 /*****************************************************************************
JardaPajskr 15:24a63ac82fc3 83 *//*!
JardaPajskr 15:24a63ac82fc3 84 * @brief Register name of structure
JardaPajskr 15:24a63ac82fc3 85 * @param name Name of the structure.
JardaPajskr 15:24a63ac82fc3 86 ******************************************************************************/
JardaPajskr 0:fb135bf60f82 87 #define FMSTR_TSA_STRUCT_CFG(name) \
JardaPajskr 0:fb135bf60f82 88 FMSTR_TSATBL_STRPTR_ENTRY(#name), FMSTR_TSATBL_STRPTR_ENTRY(NULL), FMSTR_TSATBL_VOIDPTR_ENTRY(NULL), FMSTR_TSA_INFO1(name, FMSTR_TSA_INFO_STRUCT)
JardaPajskr 0:fb135bf60f82 89
JardaPajskr 15:24a63ac82fc3 90 /*****************************************************************************
JardaPajskr 15:24a63ac82fc3 91 *//*!
JardaPajskr 15:24a63ac82fc3 92 * @brief Register member of structure
JardaPajskr 15:24a63ac82fc3 93 * @param parenttype Name of the structure.
JardaPajskr 15:24a63ac82fc3 94 * @param name Name of member in structure.
JardaPajskr 15:24a63ac82fc3 95 * @param type Type of member in strucutre. @ref fmstr_tsa_types "FMSTR_TSA_xxx" constants.
JardaPajskr 15:24a63ac82fc3 96 ******************************************************************************/
JardaPajskr 0:fb135bf60f82 97 #define FMSTR_TSA_MEMBER_CFG(parenttype,name,type) \
JardaPajskr 0:fb135bf60f82 98 FMSTR_TSATBL_STRPTR_ENTRY(#name), FMSTR_TSATBL_STRPTR_ENTRY(type), FMSTR_TSATBL_VOIDPTR_ENTRY(&((parenttype*)0)->name), FMSTR_TSA_INFO1(((parenttype*)0)->name, FMSTR_TSA_INFO_MEMBER)
JardaPajskr 0:fb135bf60f82 99
JardaPajskr 15:24a63ac82fc3 100 /*****************************************************************************
JardaPajskr 15:24a63ac82fc3 101 *//*!
JardaPajskr 15:24a63ac82fc3 102 * @brief Register variable
JardaPajskr 15:24a63ac82fc3 103 * @param name Name of variable.
JardaPajskr 15:24a63ac82fc3 104 * @param type Type of member in strucutre. @ref fmstr_tsa_types "FMSTR_TSA_xxx" constants.
JardaPajskr 15:24a63ac82fc3 105 ******************************************************************************/
JardaPajskr 0:fb135bf60f82 106 #define FMSTR_TSA_RO_VAR_CFG(name,type) \
JardaPajskr 0:fb135bf60f82 107 FMSTR_TSATBL_STRPTR_ENTRY(#name), FMSTR_TSATBL_STRPTR_ENTRY(type), FMSTR_TSATBL_VOIDPTR_ENTRY(&(name)), FMSTR_TSA_INFO1(name, FMSTR_TSA_INFO_RO_VAR)
JardaPajskr 0:fb135bf60f82 108
JardaPajskr 15:24a63ac82fc3 109 /*****************************************************************************
JardaPajskr 15:24a63ac82fc3 110 *//*!
JardaPajskr 15:24a63ac82fc3 111 * @brief Register variable
JardaPajskr 15:24a63ac82fc3 112 * @param name Name of variable.
JardaPajskr 15:24a63ac82fc3 113 * @param type Type of member in strucutre. @ref fmstr_tsa_types "FMSTR_TSA_xxx" constants.
JardaPajskr 15:24a63ac82fc3 114 ******************************************************************************/
JardaPajskr 0:fb135bf60f82 115 #define FMSTR_TSA_RW_VAR_CFG(name,type) \
JardaPajskr 0:fb135bf60f82 116 FMSTR_TSATBL_STRPTR_ENTRY(#name), FMSTR_TSATBL_STRPTR_ENTRY(type), FMSTR_TSATBL_VOIDPTR_ENTRY(&(name)), FMSTR_TSA_INFO1(name, FMSTR_TSA_INFO_RW_VAR)
JardaPajskr 0:fb135bf60f82 117
JardaPajskr 15:24a63ac82fc3 118 /*****************************************************************************
JardaPajskr 15:24a63ac82fc3 119 *//*!
JardaPajskr 15:24a63ac82fc3 120 * @brief Register variable
JardaPajskr 15:24a63ac82fc3 121 * @param name Name of variable.
JardaPajskr 15:24a63ac82fc3 122 * @param type Type of member in strucutre. @ref fmstr_tsa_types "FMSTR_TSA_xxx" constants.
JardaPajskr 15:24a63ac82fc3 123 * @param addr Address of variable.
JardaPajskr 15:24a63ac82fc3 124 * @param size Size of variable.
JardaPajskr 15:24a63ac82fc3 125 ******************************************************************************/
JardaPajskr 0:fb135bf60f82 126 #define FMSTR_TSA_RO_MEM_CFG(name,type,addr,size) \
JardaPajskr 0:fb135bf60f82 127 FMSTR_TSATBL_STRPTR_ENTRY(#name), FMSTR_TSATBL_STRPTR_ENTRY(type), FMSTR_TSATBL_VOIDPTR_ENTRY(addr), FMSTR_TSA_INFO2(size, FMSTR_TSA_INFO_RO_VAR)
JardaPajskr 0:fb135bf60f82 128
JardaPajskr 15:24a63ac82fc3 129 /*****************************************************************************
JardaPajskr 15:24a63ac82fc3 130 *//*!
JardaPajskr 15:24a63ac82fc3 131 * @brief Register variable
JardaPajskr 15:24a63ac82fc3 132 * @param name Name of variable.
JardaPajskr 15:24a63ac82fc3 133 * @param type Type of member in strucutre. @ref fmstr_tsa_types "FMSTR_TSA_xxx" constants.
JardaPajskr 15:24a63ac82fc3 134 * @param addr Address of variable.
JardaPajskr 15:24a63ac82fc3 135 * @param size Size of variable.
JardaPajskr 15:24a63ac82fc3 136 ******************************************************************************/
JardaPajskr 0:fb135bf60f82 137 #define FMSTR_TSA_RW_MEM_CFG(name,type,addr,size) \
JardaPajskr 0:fb135bf60f82 138 FMSTR_TSATBL_STRPTR_ENTRY(#name), FMSTR_TSATBL_STRPTR_ENTRY(type), FMSTR_TSATBL_VOIDPTR_ENTRY(addr), FMSTR_TSA_INFO2(size, FMSTR_TSA_INFO_RW_VAR)
JardaPajskr 0:fb135bf60f82 139
JardaPajskr 0:fb135bf60f82 140
JardaPajskr 0:fb135bf60f82 141 /*//////////////////////////////////////////////// */
JardaPajskr 0:fb135bf60f82 142 /* single table-building macros */
JardaPajskr 0:fb135bf60f82 143
JardaPajskr 15:24a63ac82fc3 144
JardaPajskr 0:fb135bf60f82 145 #define FMSTR_TSA_FUNC(id) FMSTR_TsaGetTable_##id
JardaPajskr 0:fb135bf60f82 146 #define FMSTR_TSA_FUNC_PROTO(id) const FMSTR_TSA_ENTRY* FMSTR_TSA_FUNC(id) (FMSTR_TSA_TSIZE* pTableSize)
JardaPajskr 15:24a63ac82fc3 147 /*****************************************************************************
JardaPajskr 15:24a63ac82fc3 148 *//*!
JardaPajskr 15:24a63ac82fc3 149 * @brief Begins of the TSA table
JardaPajskr 15:24a63ac82fc3 150 * @details This macro is used to begin the TSA table with unique ID.
JardaPajskr 15:24a63ac82fc3 151 * @param id Identifier of the TSA table.
JardaPajskr 15:24a63ac82fc3 152 ******************************************************************************/
JardaPajskr 0:fb135bf60f82 153 #define FMSTR_TSA_TABLE_BEGIN(id) \
JardaPajskr 0:fb135bf60f82 154 FMSTR_TSA_FUNC_PROTO(id); \
JardaPajskr 0:fb135bf60f82 155 FMSTR_TSA_FUNC_PROTO(id) { \
JardaPajskr 0:fb135bf60f82 156 static FMSTR_TSA_CDECL FMSTR_TSA_ENTRY fmstr_tsatable[] = {
JardaPajskr 0:fb135bf60f82 157
JardaPajskr 0:fb135bf60f82 158 /* entry info */
JardaPajskr 0:fb135bf60f82 159 #define FMSTR_TSA_INFO1(elem, flags) FMSTR_TSATBL_VOIDPTR_ENTRY(((sizeof(elem))<<2)|(flags))
JardaPajskr 0:fb135bf60f82 160 #define FMSTR_TSA_INFO2(size, flags) FMSTR_TSATBL_VOIDPTR_ENTRY(((size)<<2)|(flags))
JardaPajskr 0:fb135bf60f82 161
JardaPajskr 15:24a63ac82fc3 162
JardaPajskr 0:fb135bf60f82 163 #define FMSTR_TSA_STRUCT(name) \
JardaPajskr 0:fb135bf60f82 164 { FMSTR_TSA_STRUCT_CFG(name) },
JardaPajskr 15:24a63ac82fc3 165
JardaPajskr 0:fb135bf60f82 166 #define FMSTR_TSA_MEMBER(parenttype,name,type) \
JardaPajskr 0:fb135bf60f82 167 { FMSTR_TSA_MEMBER_CFG(parenttype,name,type) },
JardaPajskr 0:fb135bf60f82 168
JardaPajskr 0:fb135bf60f82 169 #define FMSTR_TSA_RO_VAR(name,type) \
JardaPajskr 0:fb135bf60f82 170 { FMSTR_TSA_RO_VAR_CFG(name,type) },
JardaPajskr 0:fb135bf60f82 171
JardaPajskr 0:fb135bf60f82 172 #define FMSTR_TSA_RW_VAR(name,type) \
JardaPajskr 0:fb135bf60f82 173 { FMSTR_TSA_RW_VAR_CFG(name,type) },
JardaPajskr 0:fb135bf60f82 174
JardaPajskr 0:fb135bf60f82 175 #define FMSTR_TSA_RO_MEM(name,type,addr,size) \
JardaPajskr 0:fb135bf60f82 176 { FMSTR_TSA_RO_MEM_CFG(name,type,addr,size) },
JardaPajskr 0:fb135bf60f82 177
JardaPajskr 0:fb135bf60f82 178 #define FMSTR_TSA_RW_MEM(name,type,addr,size) \
JardaPajskr 0:fb135bf60f82 179 { FMSTR_TSA_RW_MEM_CFG(name,type,addr,size) },
JardaPajskr 0:fb135bf60f82 180
JardaPajskr 0:fb135bf60f82 181 #define FMSTR_TSA_TABLE_END() }; \
JardaPajskr 0:fb135bf60f82 182 if(pTableSize) *pTableSize = sizeof(fmstr_tsatable); \
JardaPajskr 0:fb135bf60f82 183 return fmstr_tsatable; }
JardaPajskr 0:fb135bf60f82 184
JardaPajskr 15:24a63ac82fc3 185 /*! @} End of fmstr_tsa_table */
JardaPajskr 0:fb135bf60f82 186
JardaPajskr 16:be9b137b888c 187 /*///////////////////////////////////////////////////////////////////// */
JardaPajskr 16:be9b137b888c 188 /* TSA "Base Types", all are implemented as a one-char strings */
JardaPajskr 16:be9b137b888c 189 /* retrieved by PC and parsed according to the binary scheme */
JardaPajskr 16:be9b137b888c 190 /* "111STTZZ" where TT=type[int,frac,fp,x] S=signed ZZ=size[1,2,4,8] */
JardaPajskr 16:be9b137b888c 191 /*****************************************************************************
JardaPajskr 16:be9b137b888c 192 * TSA types used by FMSTR_TSA_MEMBER(), FMSTR_TSA_RO_VAR(), FMSTR_TSA_RW_VAR(), FMSTR_TSA_RO_MEM() and FMSTR_TSA_RW_MEM() macros
JardaPajskr 16:be9b137b888c 193 *
JardaPajskr 16:be9b137b888c 194 *//*! @addtogroup fmstr_tsa_types
JardaPajskr 16:be9b137b888c 195 * @{
JardaPajskr 16:be9b137b888c 196 *******************************************************************************/
JardaPajskr 18:28874b4ebc97 197 #define FMSTR_TSA_UINT8 "\xE0" /// Unsigned Int8 type
JardaPajskr 18:28874b4ebc97 198 #define FMSTR_TSA_UINT16 "\xE1" /// Unsigned Int16 type
JardaPajskr 18:28874b4ebc97 199 #define FMSTR_TSA_UINT32 "\xE2" /// Unsigned Int32 type
JardaPajskr 18:28874b4ebc97 200 #define FMSTR_TSA_UINT64 "\xE3" /// Unsigned Int64 type
JardaPajskr 18:28874b4ebc97 201 #define FMSTR_TSA_SINT8 "\xF0" /// Signed Int8 type
JardaPajskr 18:28874b4ebc97 202 #define FMSTR_TSA_SINT16 "\xF1" /// Signed Int16 type
JardaPajskr 18:28874b4ebc97 203 #define FMSTR_TSA_SINT32 "\xF2" /// Signed Int32 type
JardaPajskr 18:28874b4ebc97 204 #define FMSTR_TSA_SINT64 "\xF3" /// Signed Int64 type
JardaPajskr 18:28874b4ebc97 205 #define FMSTR_TSA_UFRAC16 "\xE5" /// Unsigned Fractional 16 type
JardaPajskr 18:28874b4ebc97 206 #define FMSTR_TSA_UFRAC32 "\xE6" /// Unsigned Fractional 32 type
JardaPajskr 18:28874b4ebc97 207 #define FMSTR_TSA_FRAC16 "\xF5" /// Signed Fractional 16 type
JardaPajskr 18:28874b4ebc97 208 #define FMSTR_TSA_FRAC32 "\xF6" /// Signed Fractional 32 type
JardaPajskr 18:28874b4ebc97 209 #define FMSTR_TSA_FLOAT "\xFA" /// Float type
JardaPajskr 18:28874b4ebc97 210 #define FMSTR_TSA_DOUBLE "\xFB" /// Double type
JardaPajskr 16:be9b137b888c 211 /*! @} End of fmstr_tsa_types */
JardaPajskr 0:fb135bf60f82 212 /* macro used to describe "User Type" */
JardaPajskr 0:fb135bf60f82 213 #define FMSTR_TSA_USERTYPE(type) #type
JardaPajskr 0:fb135bf60f82 214
JardaPajskr 0:fb135bf60f82 215 /* macro used to describe pure memory space */
JardaPajskr 0:fb135bf60f82 216 #define FMSTR_TSA_MEMORY NULL
JardaPajskr 0:fb135bf60f82 217
JardaPajskr 0:fb135bf60f82 218
JardaPajskr 0:fb135bf60f82 219 /*//////////////////////////////////////////////// */
JardaPajskr 0:fb135bf60f82 220 /* master TSA table-retrieval building macros */
JardaPajskr 0:fb135bf60f82 221
JardaPajskr 0:fb135bf60f82 222 #ifdef __cplusplus
JardaPajskr 0:fb135bf60f82 223 extern "C" {
JardaPajskr 0:fb135bf60f82 224 #endif
JardaPajskr 0:fb135bf60f82 225
JardaPajskr 0:fb135bf60f82 226 #define FMSTR_TSA_TABLE_LIST_BEGIN() \
JardaPajskr 0:fb135bf60f82 227 const FMSTR_TSA_ENTRY* FMSTR_TsaGetTable(FMSTR_TSA_TINDEX nTableIndex, FMSTR_TSA_TSIZE* pTableSize) {
JardaPajskr 0:fb135bf60f82 228
JardaPajskr 0:fb135bf60f82 229 #define FMSTR_TSA_TABLE(id) \
JardaPajskr 11:d1de61dc3766 230 if(!(nTableIndex--)) { \
JardaPajskr 0:fb135bf60f82 231 FMSTR_TSA_FUNC_PROTO(id); \
JardaPajskr 0:fb135bf60f82 232 return FMSTR_TSA_FUNC(id)(pTableSize); \
JardaPajskr 0:fb135bf60f82 233 } else
JardaPajskr 0:fb135bf60f82 234
JardaPajskr 8:17470feaa6be 235 #if (FMSTR_USE_TSA_DYNAMIC)
JardaPajskr 10:ee28cf2ae687 236
JardaPajskr 0:fb135bf60f82 237 #define FMSTR_TSA_TABLE_LIST_END() \
JardaPajskr 11:d1de61dc3766 238 if(!(nTableIndex--)) { \
JardaPajskr 0:fb135bf60f82 239 FMSTR_TSA_FUNC_PROTO(dynamic_tsa); \
JardaPajskr 0:fb135bf60f82 240 return FMSTR_TSA_FUNC(dynamic_tsa)(pTableSize); \
JardaPajskr 0:fb135bf60f82 241 } else \
JardaPajskr 0:fb135bf60f82 242 { return NULL; } }
JardaPajskr 0:fb135bf60f82 243 #else
JardaPajskr 0:fb135bf60f82 244 #define FMSTR_TSA_TABLE_LIST_END() \
JardaPajskr 0:fb135bf60f82 245 { return NULL; } }
JardaPajskr 0:fb135bf60f82 246 #endif
JardaPajskr 0:fb135bf60f82 247
JardaPajskr 0:fb135bf60f82 248 /*****************************************************************************
JardaPajskr 0:fb135bf60f82 249 Target-side Address translation functions
JardaPajskr 0:fb135bf60f82 250 ******************************************************************************/
JardaPajskr 0:fb135bf60f82 251
JardaPajskr 0:fb135bf60f82 252 /* master TSA table-retrieval function */
JardaPajskr 0:fb135bf60f82 253 const FMSTR_TSA_ENTRY* FMSTR_TsaGetTable(FMSTR_TSA_TINDEX nTableIndex, FMSTR_TSA_TSIZE* pTableSize);
JardaPajskr 0:fb135bf60f82 254 FMSTR_TSA_FUNC_PROTO(dynamic_tsa);
JardaPajskr 0:fb135bf60f82 255 #ifdef __cplusplus
JardaPajskr 0:fb135bf60f82 256 }
JardaPajskr 0:fb135bf60f82 257 #endif
JardaPajskr 0:fb135bf60f82 258
JardaPajskr 0:fb135bf60f82 259 #endif /* __FREEMASTER_TSA_H */
JardaPajskr 0:fb135bf60f82 260