Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependents: FreeMASTER_HelloWorld FreeMASTER_HelloWorld2 FreeMASTER_HelloWorld3
Fork of freemaster_lib by
freemaster_tsa.h@20:355a9738a180, 2014-11-16 (annotated)
- 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?
| User | Revision | Line number | New 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 |
