David Fletcher / Mbed 2 deprecated cc3100_Test_websock_Camera_CM4F

Dependencies:   mbed

Committer:
dflet
Date:
Wed Jun 24 09:54:16 2015 +0000
Revision:
0:50cedd586816
Child:
19:3dd3e7f30f8b
First commit work in progress

Who changed what in which revision?

UserRevisionLine numberNew contents of line
dflet 0:50cedd586816 1 /*
dflet 0:50cedd586816 2 * nonos.h - CC31xx/CC32xx Host Driver Implementation
dflet 0:50cedd586816 3 *
dflet 0:50cedd586816 4 * Copyright (C) 2014 Texas Instruments Incorporated - http://www.ti.com/
dflet 0:50cedd586816 5 *
dflet 0:50cedd586816 6 *
dflet 0:50cedd586816 7 * Redistribution and use in source and binary forms, with or without
dflet 0:50cedd586816 8 * modification, are permitted provided that the following conditions
dflet 0:50cedd586816 9 * are met:
dflet 0:50cedd586816 10 *
dflet 0:50cedd586816 11 * Redistributions of source code must retain the above copyright
dflet 0:50cedd586816 12 * notice, this list of conditions and the following disclaimer.
dflet 0:50cedd586816 13 *
dflet 0:50cedd586816 14 * Redistributions in binary form must reproduce the above copyright
dflet 0:50cedd586816 15 * notice, this list of conditions and the following disclaimer in the
dflet 0:50cedd586816 16 * documentation and/or other materials provided with the
dflet 0:50cedd586816 17 * distribution.
dflet 0:50cedd586816 18 *
dflet 0:50cedd586816 19 * Neither the name of Texas Instruments Incorporated nor the names of
dflet 0:50cedd586816 20 * its contributors may be used to endorse or promote products derived
dflet 0:50cedd586816 21 * from this software without specific prior written permission.
dflet 0:50cedd586816 22 *
dflet 0:50cedd586816 23 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
dflet 0:50cedd586816 24 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
dflet 0:50cedd586816 25 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
dflet 0:50cedd586816 26 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
dflet 0:50cedd586816 27 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
dflet 0:50cedd586816 28 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
dflet 0:50cedd586816 29 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
dflet 0:50cedd586816 30 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
dflet 0:50cedd586816 31 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
dflet 0:50cedd586816 32 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
dflet 0:50cedd586816 33 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
dflet 0:50cedd586816 34 *
dflet 0:50cedd586816 35 */
dflet 0:50cedd586816 36
dflet 0:50cedd586816 37 #ifndef NONOS_H_
dflet 0:50cedd586816 38 #define NONOS_H_
dflet 0:50cedd586816 39
dflet 0:50cedd586816 40 #include "cc3100_simplelink.h"
dflet 0:50cedd586816 41
dflet 0:50cedd586816 42 /*****************************************************************************/
dflet 0:50cedd586816 43 /* Macro declarations */
dflet 0:50cedd586816 44 /*****************************************************************************/
dflet 0:50cedd586816 45
dflet 0:50cedd586816 46 #ifndef SL_PLATFORM_MULTI_THREADED
dflet 0:50cedd586816 47
dflet 0:50cedd586816 48 namespace mbed_cc3100 {
dflet 0:50cedd586816 49
dflet 0:50cedd586816 50 /* This function call the user defined function, if defined, from the sync wait loop */
dflet 0:50cedd586816 51 /* The use case of this function is to allow nonos system to call a user function to put the device into sleep */
dflet 0:50cedd586816 52 /* The wake up should be activated after getting an interrupt from the device to Host */
dflet 0:50cedd586816 53 /* The user function must return without blocking to prevent a delay on the event handling */
dflet 0:50cedd586816 54 /*
dflet 0:50cedd586816 55 #define _SlSyncWaitLoopCallback UserSleepFunction
dflet 0:50cedd586816 56 */
dflet 0:50cedd586816 57
dflet 0:50cedd586816 58 const uint8_t NONOS_WAIT_FOREVER = 0xFF;
dflet 0:50cedd586816 59 const uint8_t NONOS_NO_WAIT = 0x00;
dflet 0:50cedd586816 60
dflet 0:50cedd586816 61 const uint8_t NONOS_RET_OK = 0;
dflet 0:50cedd586816 62 const int8_t NONOS_RET_ERR = 0xFF;
dflet 0:50cedd586816 63 //const uint8_t OSI_OK = 0;
dflet 0:50cedd586816 64
dflet 0:50cedd586816 65 const uint8_t NON_OS_SYNC_OBJ_CLEAR_VALUE = 0x11;
dflet 0:50cedd586816 66 const uint8_t NON_OS_SYNC_OBJ_SIGNAL_VALUE = 0x22;
dflet 0:50cedd586816 67 const uint8_t NON_OS_LOCK_OBJ_UNLOCK_VALUE = 0x33;
dflet 0:50cedd586816 68 const uint8_t NON_OS_LOCK_OBJ_LOCK_VALUE = 0x44;
dflet 0:50cedd586816 69
dflet 0:50cedd586816 70 #define _SlTime_t _SlNonOsTime_t
dflet 0:50cedd586816 71
dflet 0:50cedd586816 72 #define _SlSyncObj_t _SlNonOsSemObj_t
dflet 0:50cedd586816 73
dflet 0:50cedd586816 74 #define _SlLockObj_t _SlNonOsSemObj_t
dflet 0:50cedd586816 75
dflet 0:50cedd586816 76 const uint8_t SL_OS_WAIT_FOREVER = NONOS_WAIT_FOREVER;
dflet 0:50cedd586816 77
dflet 0:50cedd586816 78 const uint8_t SL_OS_RET_CODE_OK = NONOS_RET_OK;
dflet 0:50cedd586816 79
dflet 0:50cedd586816 80 const uint8_t SL_OS_NO_WAIT = NONOS_NO_WAIT;
dflet 0:50cedd586816 81
dflet 0:50cedd586816 82
dflet 0:50cedd586816 83 /*****************************************************************************/
dflet 0:50cedd586816 84 /* Function prototypes */
dflet 0:50cedd586816 85 /*****************************************************************************/
dflet 0:50cedd586816 86
dflet 0:50cedd586816 87 /*!
dflet 0:50cedd586816 88 \brief This function creates a sync object
dflet 0:50cedd586816 89
dflet 0:50cedd586816 90 The sync object is used for synchronization between different thread or ISR and
dflet 0:50cedd586816 91 a thread.
dflet 0:50cedd586816 92
dflet 0:50cedd586816 93 \param pSyncObj - pointer to the sync object control block
dflet 0:50cedd586816 94
dflet 0:50cedd586816 95 \return upon successful creation the function return 0
dflet 0:50cedd586816 96 Otherwise, a negative value indicating the error code shall be returned
dflet 0:50cedd586816 97 \note
dflet 0:50cedd586816 98 \warning
dflet 0:50cedd586816 99 */
dflet 0:50cedd586816 100 #define _SlNonOsSyncObjCreate(pSyncObj) _SlNonOsSemSet(pSyncObj,NON_OS_SYNC_OBJ_CLEAR_VALUE)
dflet 0:50cedd586816 101
dflet 0:50cedd586816 102 /*!
dflet 0:50cedd586816 103 \brief This function deletes a sync object
dflet 0:50cedd586816 104
dflet 0:50cedd586816 105 \param pSyncObj - pointer to the sync object control block
dflet 0:50cedd586816 106
dflet 0:50cedd586816 107 \return upon successful deletion the function should return 0
dflet 0:50cedd586816 108 Otherwise, a negative value indicating the error code shall be returned
dflet 0:50cedd586816 109 \note
dflet 0:50cedd586816 110 \warning
dflet 0:50cedd586816 111 */
dflet 0:50cedd586816 112 #define _SlNonOsSyncObjDelete(pSyncObj) _SlNonOsSemSet(pSyncObj,0)//
dflet 0:50cedd586816 113
dflet 0:50cedd586816 114 /*!
dflet 0:50cedd586816 115 \brief This function generates a sync signal for the object.
dflet 0:50cedd586816 116
dflet 0:50cedd586816 117 All suspended threads waiting on this sync object are resumed
dflet 0:50cedd586816 118
dflet 0:50cedd586816 119 \param pSyncObj - pointer to the sync object control block
dflet 0:50cedd586816 120
dflet 0:50cedd586816 121 \return upon successful signaling the function should return 0
dflet 0:50cedd586816 122 Otherwise, a negative value indicating the error code shall be returned
dflet 0:50cedd586816 123 \note the function could be called from ISR context
dflet 0:50cedd586816 124 \warning
dflet 0:50cedd586816 125 */
dflet 0:50cedd586816 126 #define _SlNonOsSyncObjSignal(pSyncObj) _SlNonOsSemSet(pSyncObj,NON_OS_SYNC_OBJ_SIGNAL_VALUE)//
dflet 0:50cedd586816 127
dflet 0:50cedd586816 128 /*!
dflet 0:50cedd586816 129 \brief This function waits for a sync signal of the specific sync object
dflet 0:50cedd586816 130
dflet 0:50cedd586816 131 \param pSyncObj - pointer to the sync object control block
dflet 0:50cedd586816 132 \param Timeout - numeric value specifies the maximum number of mSec to
dflet 0:50cedd586816 133 stay suspended while waiting for the sync signal
dflet 0:50cedd586816 134 Currently, the simple link driver uses only two values:
dflet 0:50cedd586816 135 - NONOS_WAIT_FOREVER
dflet 0:50cedd586816 136 - NONOS_NO_WAIT
dflet 0:50cedd586816 137
dflet 0:50cedd586816 138 \return upon successful reception of the signal within the timeout window return 0
dflet 0:50cedd586816 139 Otherwise, a negative value indicating the error code shall be returned
dflet 0:50cedd586816 140 \note
dflet 0:50cedd586816 141 \warning
dflet 0:50cedd586816 142 */
dflet 0:50cedd586816 143 #define _SlNonOsSyncObjWait(pSyncObj,Timeout) _SlNonOsSemGet(pSyncObj,NON_OS_SYNC_OBJ_SIGNAL_VALUE,NON_OS_SYNC_OBJ_CLEAR_VALUE,Timeout)//
dflet 0:50cedd586816 144
dflet 0:50cedd586816 145 /*!
dflet 0:50cedd586816 146 \brief This function clears a sync object
dflet 0:50cedd586816 147
dflet 0:50cedd586816 148 \param pSyncObj - pointer to the sync object control block
dflet 0:50cedd586816 149
dflet 0:50cedd586816 150 \return upon successful clearing the function should return 0
dflet 0:50cedd586816 151 Otherwise, a negative value indicating the error code shall be returned
dflet 0:50cedd586816 152 \note
dflet 0:50cedd586816 153 \warning
dflet 0:50cedd586816 154 */
dflet 0:50cedd586816 155 #define _SlNonOsSyncObjClear(pSyncObj) _SlNonOsSemSet(pSyncObj,NON_OS_SYNC_OBJ_CLEAR_VALUE)//
dflet 0:50cedd586816 156
dflet 0:50cedd586816 157 /*!
dflet 0:50cedd586816 158 \brief This function creates a locking object.
dflet 0:50cedd586816 159
dflet 0:50cedd586816 160 The locking object is used for protecting a shared resources between different
dflet 0:50cedd586816 161 threads.
dflet 0:50cedd586816 162
dflet 0:50cedd586816 163 \param pLockObj - pointer to the locking object control block
dflet 0:50cedd586816 164
dflet 0:50cedd586816 165 \return upon successful creation the function should return 0
dflet 0:50cedd586816 166 Otherwise, a negative value indicating the error code shall be returned
dflet 0:50cedd586816 167 \note
dflet 0:50cedd586816 168 \warning
dflet 0:50cedd586816 169 */
dflet 0:50cedd586816 170 #define _SlNonOsLockObjCreate(pLockObj) _SlNonOsSemSet(pLockObj,NON_OS_LOCK_OBJ_UNLOCK_VALUE)
dflet 0:50cedd586816 171
dflet 0:50cedd586816 172 /*!
dflet 0:50cedd586816 173 \brief This function deletes a locking object.
dflet 0:50cedd586816 174
dflet 0:50cedd586816 175 \param pLockObj - pointer to the locking object control block
dflet 0:50cedd586816 176
dflet 0:50cedd586816 177 \return upon successful deletion the function should return 0
dflet 0:50cedd586816 178 Otherwise, a negative value indicating the error code shall be returned
dflet 0:50cedd586816 179 \note
dflet 0:50cedd586816 180 \warning
dflet 0:50cedd586816 181 */
dflet 0:50cedd586816 182 #define _SlNonOsLockObjDelete(pLockObj) _SlNonOsSemSet(pLockObj,0)//
dflet 0:50cedd586816 183
dflet 0:50cedd586816 184 /*!
dflet 0:50cedd586816 185 \brief This function locks a locking object.
dflet 0:50cedd586816 186
dflet 0:50cedd586816 187 All other threads that call this function before this thread calls
dflet 0:50cedd586816 188 the _SlNonOsLockObjUnlock would be suspended
dflet 0:50cedd586816 189
dflet 0:50cedd586816 190 \param pLockObj - pointer to the locking object control block
dflet 0:50cedd586816 191 \param Timeout - numeric value specifies the maximum number of mSec to
dflet 0:50cedd586816 192 stay suspended while waiting for the locking object
dflet 0:50cedd586816 193 Currently, the simple link driver uses only two values:
dflet 0:50cedd586816 194 - NONOS_WAIT_FOREVER
dflet 0:50cedd586816 195 - NONOS_NO_WAIT
dflet 0:50cedd586816 196
dflet 0:50cedd586816 197
dflet 0:50cedd586816 198 \return upon successful reception of the locking object the function should return 0
dflet 0:50cedd586816 199 Otherwise, a negative value indicating the error code shall be returned
dflet 0:50cedd586816 200 \note
dflet 0:50cedd586816 201 \warning
dflet 0:50cedd586816 202 */
dflet 0:50cedd586816 203 #define _SlNonOsLockObjLock(pLockObj,Timeout) _SlNonOsSemGet(pLockObj,NON_OS_LOCK_OBJ_UNLOCK_VALUE,NON_OS_LOCK_OBJ_LOCK_VALUE,Timeout)//
dflet 0:50cedd586816 204
dflet 0:50cedd586816 205 /*!
dflet 0:50cedd586816 206 \brief This function unlock a locking object.
dflet 0:50cedd586816 207
dflet 0:50cedd586816 208 \param pLockObj - pointer to the locking object control block
dflet 0:50cedd586816 209
dflet 0:50cedd586816 210 \return upon successful unlocking the function should return 0
dflet 0:50cedd586816 211 Otherwise, a negative value indicating the error code shall be returned
dflet 0:50cedd586816 212 \note
dflet 0:50cedd586816 213 \warning
dflet 0:50cedd586816 214 */
dflet 0:50cedd586816 215 #define _SlNonOsLockObjUnlock(pLockObj) _SlNonOsSemSet(pLockObj,NON_OS_LOCK_OBJ_UNLOCK_VALUE)//
dflet 0:50cedd586816 216
dflet 0:50cedd586816 217 /*****************************************************************************
dflet 0:50cedd586816 218
dflet 0:50cedd586816 219 Overwrite SimpleLink driver OS adaptation functions
dflet 0:50cedd586816 220
dflet 0:50cedd586816 221
dflet 0:50cedd586816 222 *****************************************************************************/
dflet 0:50cedd586816 223
dflet 0:50cedd586816 224 //class cc3100_nonos _nonos;
dflet 0:50cedd586816 225
dflet 0:50cedd586816 226 #undef sl_SyncObjCreate
dflet 0:50cedd586816 227 #define sl_SyncObjCreate(pSyncObj,pName) _SlNonOsSemSet(pSyncObj,NON_OS_SYNC_OBJ_CLEAR_VALUE)
dflet 0:50cedd586816 228
dflet 0:50cedd586816 229 #undef sl_SyncObjDelete
dflet 0:50cedd586816 230 #define sl_SyncObjDelete(pSyncObj) _SlNonOsSemSet(pSyncObj,0)
dflet 0:50cedd586816 231
dflet 0:50cedd586816 232 #undef sl_SyncObjSignal
dflet 0:50cedd586816 233 #define sl_SyncObjSignal(pSyncObj) _SlNonOsSemSet(pSyncObj,NON_OS_SYNC_OBJ_SIGNAL_VALUE)
dflet 0:50cedd586816 234
dflet 0:50cedd586816 235 #undef sl_SyncObjSignalFromIRQ
dflet 0:50cedd586816 236 #define sl_SyncObjSignalFromIRQ(pSyncObj) _SlNonOsSemSet(pSyncObj,NON_OS_SYNC_OBJ_SIGNAL_VALUE)
dflet 0:50cedd586816 237
dflet 0:50cedd586816 238 #undef sl_SyncObjWait
dflet 0:50cedd586816 239 #define sl_SyncObjWait(pSyncObj,Timeout) _SlNonOsSemGet(pSyncObj,NON_OS_SYNC_OBJ_SIGNAL_VALUE,NON_OS_SYNC_OBJ_CLEAR_VALUE,Timeout)
dflet 0:50cedd586816 240
dflet 0:50cedd586816 241 #undef sl_LockObjCreate
dflet 0:50cedd586816 242 #define sl_LockObjCreate(pLockObj,pName) _SlNonOsSemSet(pLockObj,NON_OS_LOCK_OBJ_UNLOCK_VALUE)
dflet 0:50cedd586816 243
dflet 0:50cedd586816 244 #undef sl_LockObjDelete
dflet 0:50cedd586816 245 #define sl_LockObjDelete(pLockObj) _SlNonOsSemSet(pLockObj,0)
dflet 0:50cedd586816 246
dflet 0:50cedd586816 247 #undef sl_LockObjLock
dflet 0:50cedd586816 248 #define sl_LockObjLock(pLockObj,Timeout) _SlNonOsSemGet(pLockObj,NON_OS_LOCK_OBJ_UNLOCK_VALUE,NON_OS_LOCK_OBJ_LOCK_VALUE,Timeout)
dflet 0:50cedd586816 249
dflet 0:50cedd586816 250 #undef sl_LockObjUnlock
dflet 0:50cedd586816 251 #define sl_LockObjUnlock(pLockObj) _SlNonOsSemSet(pLockObj,NON_OS_LOCK_OBJ_UNLOCK_VALUE)
dflet 0:50cedd586816 252 /*
dflet 0:50cedd586816 253 #undef sl_Spawn
dflet 0:50cedd586816 254 #define sl_Spawn(pEntry,pValue,flags) _nonos._SlNonOsSpawn(pEntry,pValue,flags)
dflet 0:50cedd586816 255
dflet 0:50cedd586816 256 #undef _SlTaskEntry
dflet 0:50cedd586816 257 #define _SlTaskEntry _nonos._SlNonOsMainLoopTask
dflet 0:50cedd586816 258 */
dflet 0:50cedd586816 259 /*!
dflet 0:50cedd586816 260 \brief type definition for the return values of this adaptation layer
dflet 0:50cedd586816 261 */
dflet 0:50cedd586816 262 typedef int8_t _SlNonOsRetVal_t;
dflet 0:50cedd586816 263
dflet 0:50cedd586816 264 /*!
dflet 0:50cedd586816 265 \brief type definition for a time value
dflet 0:50cedd586816 266 */
dflet 0:50cedd586816 267 typedef uint8_t _SlNonOsTime_t;
dflet 0:50cedd586816 268
dflet 0:50cedd586816 269 /*!
dflet 0:50cedd586816 270 \brief type definition for a sync object container
dflet 0:50cedd586816 271
dflet 0:50cedd586816 272 Sync object is object used to synchronize between two threads or thread and interrupt handler.
dflet 0:50cedd586816 273 One thread is waiting on the object and the other thread send a signal, which then
dflet 0:50cedd586816 274 release the waiting thread.
dflet 0:50cedd586816 275 The signal must be able to be sent from interrupt context.
dflet 0:50cedd586816 276 This object is generally implemented by binary semaphore or events.
dflet 0:50cedd586816 277 */
dflet 0:50cedd586816 278 typedef uint8_t _SlNonOsSemObj_t;
dflet 0:50cedd586816 279
dflet 0:50cedd586816 280 class cc3100_driver;
dflet 0:50cedd586816 281
dflet 0:50cedd586816 282 class cc3100_nonos
dflet 0:50cedd586816 283 {
dflet 0:50cedd586816 284
dflet 0:50cedd586816 285 public:
dflet 0:50cedd586816 286
dflet 0:50cedd586816 287 cc3100_nonos(cc3100_driver &driver);
dflet 0:50cedd586816 288
dflet 0:50cedd586816 289 ~cc3100_nonos();
dflet 0:50cedd586816 290
dflet 0:50cedd586816 291 /*!
dflet 0:50cedd586816 292 \brief This function call the pEntry callback from a different context
dflet 0:50cedd586816 293
dflet 0:50cedd586816 294 \param pEntry - pointer to the entry callback function
dflet 0:50cedd586816 295
dflet 0:50cedd586816 296 \param pValue - pointer to any type of memory structure that would be
dflet 0:50cedd586816 297 passed to pEntry callback from the execution thread.
dflet 0:50cedd586816 298
dflet 0:50cedd586816 299 \param flags - execution flags - reserved for future usage
dflet 0:50cedd586816 300
dflet 0:50cedd586816 301 \return upon successful registration of the spawn the function return 0
dflet 0:50cedd586816 302 (the function is not blocked till the end of the execution of the function
dflet 0:50cedd586816 303 and could be returned before the execution is actually completed)
dflet 0:50cedd586816 304 Otherwise, a negative value indicating the error code shall be returned
dflet 0:50cedd586816 305 \note
dflet 0:50cedd586816 306 \warning
dflet 0:50cedd586816 307 */
dflet 0:50cedd586816 308 _SlNonOsRetVal_t _SlNonOsSpawn(_SlSpawnEntryFunc_t pEntry , void* pValue , uint32_t flags);
dflet 0:50cedd586816 309
dflet 0:50cedd586816 310
dflet 0:50cedd586816 311 /*!
dflet 0:50cedd586816 312 \brief This function must be called from the main loop in non-os paltforms
dflet 0:50cedd586816 313
dflet 0:50cedd586816 314 \param None
dflet 0:50cedd586816 315
dflet 0:50cedd586816 316 \return 0 - No more activities
dflet 0:50cedd586816 317 1 - Activity still in progress
dflet 0:50cedd586816 318 \note
dflet 0:50cedd586816 319 \warning
dflet 0:50cedd586816 320 */
dflet 0:50cedd586816 321 _SlNonOsRetVal_t _SlNonOsMainLoopTask(void);
dflet 0:50cedd586816 322
dflet 0:50cedd586816 323 _SlNonOsRetVal_t _SlNonOsSemGet(_SlNonOsSemObj_t* pSyncObj, _SlNonOsSemObj_t WaitValue, _SlNonOsSemObj_t SetValue, _SlNonOsTime_t Timeout);
dflet 0:50cedd586816 324 _SlNonOsRetVal_t _SlNonOsSemSet(_SlNonOsSemObj_t* pSemObj , _SlNonOsSemObj_t Value);
dflet 0:50cedd586816 325
dflet 0:50cedd586816 326
dflet 0:50cedd586816 327 #if (defined(_SlSyncWaitLoopCallback))
dflet 0:50cedd586816 328 void _SlSyncWaitLoopCallback(void);
dflet 0:50cedd586816 329 #endif
dflet 0:50cedd586816 330
dflet 0:50cedd586816 331 private:
dflet 0:50cedd586816 332
dflet 0:50cedd586816 333 cc3100_driver &_driver;
dflet 0:50cedd586816 334
dflet 0:50cedd586816 335 };//class
dflet 0:50cedd586816 336
dflet 0:50cedd586816 337 //extern _SlNonOsRetVal_t _SlNonOsSpawn(_SlSpawnEntryFunc_t pEntry , void* pValue , uint32_t flags);
dflet 0:50cedd586816 338
dflet 0:50cedd586816 339 }//namespace mbed_cc3100
dflet 0:50cedd586816 340
dflet 0:50cedd586816 341 #endif /* !SL_PLATFORM_MULTI_THREADED */
dflet 0:50cedd586816 342
dflet 0:50cedd586816 343
dflet 0:50cedd586816 344
dflet 0:50cedd586816 345 #endif
dflet 0:50cedd586816 346