Exportable version of WizziLab's modem driver.
include/hal_types.h@46:9b83866cef2c, 2019-07-31 (annotated)
- Committer:
- Jeej
- Date:
- Wed Jul 31 16:48:48 2019 +0000
- Revision:
- 46:9b83866cef2c
- Parent:
- 37:f5424d109c6d
- Child:
- 47:cf4519ba56d9
Updated for mbed-os 5.13
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Jeej | 19:701d5669f2e9 | 1 | /// @copyright |
Jeej | 19:701d5669f2e9 | 2 | /// ========================================================================={{{ |
Jeej | 19:701d5669f2e9 | 3 | /// Copyright (c) 2012-2013 WizziLab / |
Jeej | 19:701d5669f2e9 | 4 | /// All rights reserved / |
Jeej | 19:701d5669f2e9 | 5 | /// / |
Jeej | 19:701d5669f2e9 | 6 | /// IMPORTANT: This Software may not be modified, copied or distributed unless / |
Jeej | 19:701d5669f2e9 | 7 | /// embedded on a WizziLab product. Other than for the foregoing purpose, this / |
Jeej | 19:701d5669f2e9 | 8 | /// Software and/or its documentation may not be used, reproduced, copied, / |
Jeej | 19:701d5669f2e9 | 9 | /// prepared derivative works of, modified, performed, distributed, displayed / |
Jeej | 19:701d5669f2e9 | 10 | /// or sold for any purpose. For the sole purpose of embedding this Software / |
Jeej | 19:701d5669f2e9 | 11 | /// on a WizziLab product, copy, modification and distribution of this / |
Jeej | 19:701d5669f2e9 | 12 | /// Software is granted provided that the following conditions are respected: / |
Jeej | 19:701d5669f2e9 | 13 | /// / |
Jeej | 19:701d5669f2e9 | 14 | /// * Redistributions of source code must retain the above copyright notice, / |
Jeej | 19:701d5669f2e9 | 15 | /// this list of conditions and the following disclaimer / |
Jeej | 19:701d5669f2e9 | 16 | /// / |
Jeej | 19:701d5669f2e9 | 17 | /// * Redistributions in binary form must reproduce the above copyright / |
Jeej | 19:701d5669f2e9 | 18 | /// notice, this list of conditions and the following disclaimer in the / |
Jeej | 19:701d5669f2e9 | 19 | /// documentation and/or other materials provided with the distribution. / |
Jeej | 19:701d5669f2e9 | 20 | /// / |
Jeej | 19:701d5669f2e9 | 21 | /// * The name of WizziLab can not be used to endorse or promote products / |
Jeej | 19:701d5669f2e9 | 22 | /// derived from this software without specific prior written permission. / |
Jeej | 19:701d5669f2e9 | 23 | /// / |
Jeej | 19:701d5669f2e9 | 24 | /// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS / |
Jeej | 19:701d5669f2e9 | 25 | /// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED / |
Jeej | 19:701d5669f2e9 | 26 | /// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR / |
Jeej | 19:701d5669f2e9 | 27 | /// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR / |
Jeej | 19:701d5669f2e9 | 28 | /// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, / |
Jeej | 19:701d5669f2e9 | 29 | /// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, / |
Jeej | 19:701d5669f2e9 | 30 | /// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, / |
Jeej | 19:701d5669f2e9 | 31 | /// OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY / |
Jeej | 19:701d5669f2e9 | 32 | /// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING / |
Jeej | 19:701d5669f2e9 | 33 | /// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS / |
Jeej | 19:701d5669f2e9 | 34 | /// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. / |
Jeej | 19:701d5669f2e9 | 35 | /// WIZZILAB HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, / |
Jeej | 19:701d5669f2e9 | 36 | /// ENHANCEMENTS OR MODIFICATIONS. / |
Jeej | 19:701d5669f2e9 | 37 | /// / |
Jeej | 19:701d5669f2e9 | 38 | /// Should you have any questions regarding your right to use this Software, / |
Jeej | 19:701d5669f2e9 | 39 | /// contact WizziLab at www.wizzilab.com. / |
Jeej | 19:701d5669f2e9 | 40 | /// / |
Jeej | 19:701d5669f2e9 | 41 | /// =========================================================================}}} |
Jeej | 19:701d5669f2e9 | 42 | /// @endcopyright |
Jeej | 19:701d5669f2e9 | 43 | |
Jeej | 19:701d5669f2e9 | 44 | // ==================================================================== |
Jeej | 19:701d5669f2e9 | 45 | /// @file hal_types.h |
Jeej | 19:701d5669f2e9 | 46 | /// @brief platform types definitions |
Jeej | 19:701d5669f2e9 | 47 | /// @ingroup HAL |
Jeej | 19:701d5669f2e9 | 48 | /// @defgroup HAL_TYPES HAL Types |
Jeej | 19:701d5669f2e9 | 49 | /// @{ |
Jeej | 19:701d5669f2e9 | 50 | // ==================================================================== |
Jeej | 19:701d5669f2e9 | 51 | |
Jeej | 19:701d5669f2e9 | 52 | #ifndef __HAL_TYPES_H__ |
Jeej | 19:701d5669f2e9 | 53 | #define __HAL_TYPES_H__ |
Jeej | 19:701d5669f2e9 | 54 | |
Jeej | 19:701d5669f2e9 | 55 | //====================================================================== |
Jeej | 19:701d5669f2e9 | 56 | // Common Types |
Jeej | 19:701d5669f2e9 | 57 | //====================================================================== |
Jeej | 19:701d5669f2e9 | 58 | typedef signed long s32; |
Jeej | 19:701d5669f2e9 | 59 | typedef signed short s16; |
Jeej | 19:701d5669f2e9 | 60 | typedef signed char s8; |
Jeej | 19:701d5669f2e9 | 61 | |
Jeej | 19:701d5669f2e9 | 62 | typedef unsigned long u32; |
Jeej | 19:701d5669f2e9 | 63 | typedef unsigned short u16; |
Jeej | 19:701d5669f2e9 | 64 | typedef unsigned char u8; |
Jeej | 19:701d5669f2e9 | 65 | |
Jeej | 19:701d5669f2e9 | 66 | typedef volatile signed long vs32; |
Jeej | 19:701d5669f2e9 | 67 | typedef volatile signed short vs16; |
Jeej | 19:701d5669f2e9 | 68 | typedef volatile signed char vs8; |
Jeej | 19:701d5669f2e9 | 69 | |
Jeej | 19:701d5669f2e9 | 70 | typedef volatile unsigned long vu32; |
Jeej | 19:701d5669f2e9 | 71 | typedef volatile unsigned short vu16; |
Jeej | 19:701d5669f2e9 | 72 | typedef volatile unsigned char vu8; |
Jeej | 19:701d5669f2e9 | 73 | |
Jeej | 19:701d5669f2e9 | 74 | typedef signed long const sc32; |
Jeej | 19:701d5669f2e9 | 75 | typedef signed short const sc16; |
Jeej | 19:701d5669f2e9 | 76 | typedef signed char const sc8; |
Jeej | 19:701d5669f2e9 | 77 | |
Jeej | 19:701d5669f2e9 | 78 | typedef unsigned long const uc32; |
Jeej | 19:701d5669f2e9 | 79 | typedef unsigned short const uc16; |
Jeej | 19:701d5669f2e9 | 80 | typedef unsigned char const uc8; |
Jeej | 19:701d5669f2e9 | 81 | |
Jeej | 19:701d5669f2e9 | 82 | typedef volatile signed long const vsc32; |
Jeej | 19:701d5669f2e9 | 83 | typedef volatile signed short const vsc16; |
Jeej | 19:701d5669f2e9 | 84 | typedef volatile signed char const vsc8; |
Jeej | 19:701d5669f2e9 | 85 | |
Jeej | 19:701d5669f2e9 | 86 | typedef volatile unsigned long const vuc32; |
Jeej | 19:701d5669f2e9 | 87 | typedef volatile unsigned short const vuc16; |
Jeej | 19:701d5669f2e9 | 88 | typedef volatile unsigned char const vuc8; |
Jeej | 19:701d5669f2e9 | 89 | |
Jeej | 19:701d5669f2e9 | 90 | typedef unsigned int uint; |
Jeej | 19:701d5669f2e9 | 91 | typedef int sint; |
Jeej | 19:701d5669f2e9 | 92 | |
Jeej | 19:701d5669f2e9 | 93 | typedef volatile unsigned int vuint; |
Jeej | 19:701d5669f2e9 | 94 | typedef volatile int vsint; |
Jeej | 19:701d5669f2e9 | 95 | |
Jeej | 19:701d5669f2e9 | 96 | typedef unsigned int const cuint; |
Jeej | 19:701d5669f2e9 | 97 | typedef int const csint; |
Jeej | 19:701d5669f2e9 | 98 | |
Jeej | 19:701d5669f2e9 | 99 | //typedef unsigned int size_t; |
Jeej | 19:701d5669f2e9 | 100 | //typedef unsigned long int uint32_t; |
Jeej | 19:701d5669f2e9 | 101 | |
Jeej | 19:701d5669f2e9 | 102 | typedef struct { |
Jeej | 19:701d5669f2e9 | 103 | s16 I; |
Jeej | 19:701d5669f2e9 | 104 | s16 Q; |
Jeej | 19:701d5669f2e9 | 105 | } complex_t; |
Jeej | 19:701d5669f2e9 | 106 | |
Jeej | 19:701d5669f2e9 | 107 | typedef struct { |
Jeej | 19:701d5669f2e9 | 108 | u8 m; |
Jeej | 19:701d5669f2e9 | 109 | u8 e; |
Jeej | 19:701d5669f2e9 | 110 | } mant_exp_t; |
Jeej | 19:701d5669f2e9 | 111 | |
Jeej | 19:701d5669f2e9 | 112 | typedef struct { |
Jeej | 19:701d5669f2e9 | 113 | s16 x; |
Jeej | 19:701d5669f2e9 | 114 | s16 y; |
Jeej | 19:701d5669f2e9 | 115 | s16 z; |
Jeej | 19:701d5669f2e9 | 116 | } v3d_t; |
Jeej | 19:701d5669f2e9 | 117 | |
Jeej | 19:701d5669f2e9 | 118 | //====================================================================== |
Jeej | 19:701d5669f2e9 | 119 | // Common Enum / Defines |
Jeej | 19:701d5669f2e9 | 120 | //====================================================================== |
Jeej | 19:701d5669f2e9 | 121 | #ifndef bool |
Jeej | 19:701d5669f2e9 | 122 | //typedef u8 bool; |
Jeej | 19:701d5669f2e9 | 123 | #endif |
Jeej | 19:701d5669f2e9 | 124 | |
Jeej | 19:701d5669f2e9 | 125 | #ifndef false |
Jeej | 19:701d5669f2e9 | 126 | #define false 0 |
Jeej | 19:701d5669f2e9 | 127 | #endif |
Jeej | 19:701d5669f2e9 | 128 | #ifndef true |
Jeej | 19:701d5669f2e9 | 129 | #define true 1 |
Jeej | 19:701d5669f2e9 | 130 | #endif |
Jeej | 19:701d5669f2e9 | 131 | #ifndef FALSE |
Jeej | 19:701d5669f2e9 | 132 | #define FALSE 0 |
Jeej | 19:701d5669f2e9 | 133 | #endif |
Jeej | 19:701d5669f2e9 | 134 | #ifndef TRUE |
Jeej | 19:701d5669f2e9 | 135 | #define TRUE 1 |
Jeej | 19:701d5669f2e9 | 136 | #endif |
Jeej | 19:701d5669f2e9 | 137 | |
Jeej | 19:701d5669f2e9 | 138 | #ifndef NULL |
Jeej | 19:701d5669f2e9 | 139 | #define NULL (void*)0 |
Jeej | 19:701d5669f2e9 | 140 | #endif |
Jeej | 19:701d5669f2e9 | 141 | |
Jeej | 19:701d5669f2e9 | 142 | #define typeof(s) __typeof__(s) |
Jeej | 19:701d5669f2e9 | 143 | |
Jeej | 19:701d5669f2e9 | 144 | #define U8_MAX ((u8)255) |
Jeej | 19:701d5669f2e9 | 145 | #define S8_MAX ((s8)127) |
Jeej | 19:701d5669f2e9 | 146 | #define S8_MIN ((s8)-128) |
Jeej | 19:701d5669f2e9 | 147 | #define U16_MAX ((u16)65535u) |
Jeej | 19:701d5669f2e9 | 148 | #define S16_MAX ((s16)32767) |
Jeej | 19:701d5669f2e9 | 149 | #define S16_MIN ((s16)-32768) |
Jeej | 19:701d5669f2e9 | 150 | #define U32_MAX ((u32)4294967295uL) |
Jeej | 19:701d5669f2e9 | 151 | #define S32_MAX ((s32)2147483647) |
Jeej | 19:701d5669f2e9 | 152 | #define S32_MIN ((s32)-2147483648) |
Jeej | 19:701d5669f2e9 | 153 | |
Jeej | 19:701d5669f2e9 | 154 | //====================================================================== |
Jeej | 19:701d5669f2e9 | 155 | // Common Endianness cast & conversion Macros |
Jeej | 19:701d5669f2e9 | 156 | //====================================================================== |
Jeej | 19:701d5669f2e9 | 157 | #define HAL_U16_B0(a) ((u8)(((u16)(a) >> 0) & 0xFF)) |
Jeej | 19:701d5669f2e9 | 158 | #define HAL_U16_B1(a) ((u8)(((u16)(a) >> 8) & 0xFF)) |
Jeej | 19:701d5669f2e9 | 159 | #define HAL_U16_LO(a) ((u8)((a) >> 0)) |
Jeej | 19:701d5669f2e9 | 160 | #define HAL_U16_HI(a) ((u8)((a) >> 8)) |
Jeej | 19:701d5669f2e9 | 161 | #define HAL_TO_U16(a,b) ((u16)((u16)(a) << 8)|(u16)(b)) |
Jeej | 19:701d5669f2e9 | 162 | #define HAL_TO_U32(a,b,c,d) ((u32)((u32)(a) <<24)|((u32)(b) <<16)|((u32)(c) << 8)|(u32)(d)) |
Jeej | 19:701d5669f2e9 | 163 | #define HAL_U32_LO(a) ((u16)((a) >> 0)) |
Jeej | 19:701d5669f2e9 | 164 | #define HAL_U32_HI(a) ((u16)((a) >> 16)) |
Jeej | 19:701d5669f2e9 | 165 | #define HAL_U32_B0(a) ((u8)(((u32)(a) >> 0) & 0xFF)) |
Jeej | 19:701d5669f2e9 | 166 | #define HAL_U32_B1(a) ((u8)(((u32)(a) >> 8) & 0xFF)) |
Jeej | 19:701d5669f2e9 | 167 | #define HAL_U32_B2(a) ((u8)(((u32)(a) >> 16) & 0xFF)) |
Jeej | 19:701d5669f2e9 | 168 | #define HAL_U32_B3(a) ((u8)(((u32)(a) >> 24) & 0xFF)) |
Jeej | 19:701d5669f2e9 | 169 | // This should generate a REV instruction |
Jeej | 19:701d5669f2e9 | 170 | #define HAL_U32_BYTE_SWAP(a) ( (((a) & 0x000000ff) << 24) | \ |
Jeej | 19:701d5669f2e9 | 171 | (((a) & 0x0000ff00) << 8) | \ |
Jeej | 19:701d5669f2e9 | 172 | (((a) & 0x00ff0000) >> 8) | \ |
Jeej | 19:701d5669f2e9 | 173 | (((a) & 0xff000000) >> 24)) |
Jeej | 19:701d5669f2e9 | 174 | // This should generate a REV16 instruction |
Jeej | 19:701d5669f2e9 | 175 | #define HAL_U16_BYTE_SWAP(a) ((((a) & 0x00ff) << 8) | (((a) & 0xff00) >> 8)) |
Jeej | 19:701d5669f2e9 | 176 | // Byte array deposit |
Jeej | 19:701d5669f2e9 | 177 | #define HAL_U16_DEPOSIT(a) HAL_U16_B0(a),HAL_U16_B1(a) |
Jeej | 19:701d5669f2e9 | 178 | #define HAL_U24_DEPOSIT(a) HAL_U32_B0(a),HAL_U32_B1(a),HAL_U32_B2(a) |
Jeej | 19:701d5669f2e9 | 179 | #define HAL_U32_DEPOSIT(a) HAL_U32_B0(a),HAL_U32_B1(a),HAL_U32_B2(a),HAL_U32_B3(a) |
Jeej | 19:701d5669f2e9 | 180 | #define HAL_U16_BE_DEPOSIT(a) HAL_U16_B1(a),HAL_U16_B0(a) |
Jeej | 19:701d5669f2e9 | 181 | #define HAL_U24_BE_DEPOSIT(a) HAL_U32_B2(a),HAL_U32_B1(a),HAL_U32_B0(a) |
Jeej | 19:701d5669f2e9 | 182 | #define HAL_U32_BE_DEPOSIT(a) HAL_U32_B3(a),HAL_U32_B2(a),HAL_U32_B1(a),HAL_U32_B0(a) |
Jeej | 19:701d5669f2e9 | 183 | #define HAL_U32_PUSH(p,a) do{ \ |
Jeej | 19:701d5669f2e9 | 184 | *(p)++ = HAL_U32_B0(a); \ |
Jeej | 19:701d5669f2e9 | 185 | *(p)++ = HAL_U32_B1(a); \ |
Jeej | 19:701d5669f2e9 | 186 | *(p)++ = HAL_U32_B2(a); \ |
Jeej | 19:701d5669f2e9 | 187 | *(p)++ = HAL_U32_B3(a); } while(0) |
Jeej | 19:701d5669f2e9 | 188 | #define HAL_U16_PUSH(p,a) do{ \ |
Jeej | 19:701d5669f2e9 | 189 | *(p)++ = HAL_U16_B0(a); \ |
Jeej | 19:701d5669f2e9 | 190 | *(p)++ = HAL_U16_B1(a); } while(0) |
Jeej | 19:701d5669f2e9 | 191 | #define HAL_U32_BE_PUSH(p,a) do{ \ |
Jeej | 19:701d5669f2e9 | 192 | *(p)++ = HAL_U32_B3(a); \ |
Jeej | 19:701d5669f2e9 | 193 | *(p)++ = HAL_U32_B2(a); \ |
Jeej | 19:701d5669f2e9 | 194 | *(p)++ = HAL_U32_B1(a); \ |
Jeej | 19:701d5669f2e9 | 195 | *(p)++ = HAL_U32_B0(a); } while(0) |
Jeej | 19:701d5669f2e9 | 196 | #define HAL_U16_BE_PUSH(p,a) do{ \ |
Jeej | 19:701d5669f2e9 | 197 | *(p)++ = HAL_U16_B1(a); \ |
Jeej | 19:701d5669f2e9 | 198 | *(p)++ = HAL_U16_B0(a); } while(0) |
Jeej | 19:701d5669f2e9 | 199 | |
Jeej | 19:701d5669f2e9 | 200 | // Aliases |
Jeej | 19:701d5669f2e9 | 201 | //====================================================================== |
Jeej | 19:701d5669f2e9 | 202 | #define U32_BYTE_SWAP(a) HAL_U32_BYTE_SWAP(a) |
Jeej | 19:701d5669f2e9 | 203 | #define U16_BYTE_SWAP(a) HAL_U16_BYTE_SWAP(a) |
Jeej | 19:701d5669f2e9 | 204 | #define U16_MSB(a) HAL_U16_B1(a) |
Jeej | 19:701d5669f2e9 | 205 | #define U16_LSB(a) HAL_U16_B0(a) |
Jeej | 19:701d5669f2e9 | 206 | #define U32_MSB(a) HAL_U32_HI(a) |
Jeej | 19:701d5669f2e9 | 207 | #define U32_LSB(a) HAL_U32_LO(a) |
Jeej | 19:701d5669f2e9 | 208 | #define U16_TO_BE(a) U16_BYTE_SWAP(a) |
Jeej | 19:701d5669f2e9 | 209 | #define U32_TO_BE(a) U32_BYTE_SWAP(a) |
Jeej | 19:701d5669f2e9 | 210 | |
Jeej | 19:701d5669f2e9 | 211 | #ifndef htonl |
Jeej | 19:701d5669f2e9 | 212 | #define htonl(a) U32_BYTE_SWAP(a) |
Jeej | 19:701d5669f2e9 | 213 | #endif |
Jeej | 19:701d5669f2e9 | 214 | |
Jeej | 19:701d5669f2e9 | 215 | #ifndef ntohl |
Jeej | 19:701d5669f2e9 | 216 | #define ntohl(a) htonl((a)) |
Jeej | 19:701d5669f2e9 | 217 | #endif |
Jeej | 19:701d5669f2e9 | 218 | |
Jeej | 19:701d5669f2e9 | 219 | #ifndef htons |
Jeej | 19:701d5669f2e9 | 220 | #define htons(a) U16_BYTE_SWAP(a) |
Jeej | 19:701d5669f2e9 | 221 | #endif |
Jeej | 19:701d5669f2e9 | 222 | |
Jeej | 19:701d5669f2e9 | 223 | #ifndef ntohs |
Jeej | 19:701d5669f2e9 | 224 | #define ntohs(a) htons((a)) |
Jeej | 19:701d5669f2e9 | 225 | #endif |
Jeej | 19:701d5669f2e9 | 226 | |
Jeej | 19:701d5669f2e9 | 227 | # define weak_alias(name, aliasname) _weak_alias (name, aliasname) |
Jeej | 19:701d5669f2e9 | 228 | # define _weak_alias(name, aliasname) \ |
Jeej | 19:701d5669f2e9 | 229 | extern __typeof (name) aliasname __attribute__ ((weak, alias (#name))); |
Jeej | 19:701d5669f2e9 | 230 | |
Jeej | 19:701d5669f2e9 | 231 | //====================================================================== |
Jeej | 19:701d5669f2e9 | 232 | // Attributes and macros |
Jeej | 19:701d5669f2e9 | 233 | //====================================================================== |
Jeej | 19:701d5669f2e9 | 234 | #define TYPEDEF_STRUCT_PACKED typedef struct __attribute__((packed)) |
Jeej | 19:701d5669f2e9 | 235 | |
Jeej | 19:701d5669f2e9 | 236 | #define IN_SECTION(sec) __attribute__((section(#sec))) |
Jeej | 19:701d5669f2e9 | 237 | |
Jeej | 19:701d5669f2e9 | 238 | #define WEAK_SYM __attribute__((weak)) |
Jeej | 19:701d5669f2e9 | 239 | |
Jeej | 19:701d5669f2e9 | 240 | #define IN_RAM __attribute__((section(".data"),no_instrument_function)) |
Jeej | 19:701d5669f2e9 | 241 | |
Jeej | 19:701d5669f2e9 | 242 | #define NOINSTRUMENT __attribute__((no_instrument_function)) |
Jeej | 19:701d5669f2e9 | 243 | |
Jeej | 37:f5424d109c6d | 244 | #define _UNUSED __attribute__((unused)) |
Jeej | 19:701d5669f2e9 | 245 | |
Jeej | 19:701d5669f2e9 | 246 | #define NOINLINE __attribute__((noinline)) |
Jeej | 19:701d5669f2e9 | 247 | #define INLINE static inline __attribute__((always_inline,no_instrument_function)) |
Jeej | 19:701d5669f2e9 | 248 | |
Jeej | 19:701d5669f2e9 | 249 | //====================================================================== |
Jeej | 19:701d5669f2e9 | 250 | // hal_callback_t |
Jeej | 19:701d5669f2e9 | 251 | //---------------------------------------------------------------------- |
Jeej | 19:701d5669f2e9 | 252 | /// @typedef hal_callback_t |
Jeej | 19:701d5669f2e9 | 253 | /// signal : an event enumerator |
Jeej | 19:701d5669f2e9 | 254 | /// param : pointer to the parameter structure or buffer |
Jeej | 19:701d5669f2e9 | 255 | /// looks like : void callback(u16 signal, u16 plen, void* param) |
Jeej | 19:701d5669f2e9 | 256 | //====================================================================== |
Jeej | 19:701d5669f2e9 | 257 | typedef void (*hal_callback_t)(u16, void*); |
Jeej | 19:701d5669f2e9 | 258 | |
Jeej | 19:701d5669f2e9 | 259 | #define private static |
Jeej | 19:701d5669f2e9 | 260 | #define protected |
Jeej | 19:701d5669f2e9 | 261 | #define public |
Jeej | 19:701d5669f2e9 | 262 | #define global |
Jeej | 19:701d5669f2e9 | 263 | |
Jeej | 19:701d5669f2e9 | 264 | /// @} HAL_TYPES |
Jeej | 19:701d5669f2e9 | 265 | |
Jeej | 19:701d5669f2e9 | 266 | #endif // __HAL_TYPES_H__ |
Jeej | 19:701d5669f2e9 | 267 |