Update revision to use TI's mqtt and Freertos.
Dependencies: mbed client server
Fork of cc3100_Test_mqtt_CM3 by
oslib/osi.h@3:a8c249046181, 2015-09-03 (annotated)
- Committer:
- dflet
- Date:
- Thu Sep 03 14:02:37 2015 +0000
- Revision:
- 3:a8c249046181
- Parent:
- 0:dbe5e7db3c45
SPI Mode change 1 to 0
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
dflet | 0:dbe5e7db3c45 | 1 | //***************************************************************************** |
dflet | 0:dbe5e7db3c45 | 2 | // osi.h |
dflet | 0:dbe5e7db3c45 | 3 | // |
dflet | 0:dbe5e7db3c45 | 4 | // MACRO and Function prototypes for TI-RTOS and Free-RTOS API calls |
dflet | 0:dbe5e7db3c45 | 5 | // |
dflet | 0:dbe5e7db3c45 | 6 | // Copyright (C) 2014 Texas Instruments Incorporated - http://www.ti.com/ |
dflet | 0:dbe5e7db3c45 | 7 | // |
dflet | 0:dbe5e7db3c45 | 8 | // |
dflet | 0:dbe5e7db3c45 | 9 | // Redistribution and use in source and binary forms, with or without |
dflet | 0:dbe5e7db3c45 | 10 | // modification, are permitted provided that the following conditions |
dflet | 0:dbe5e7db3c45 | 11 | // are met: |
dflet | 0:dbe5e7db3c45 | 12 | // |
dflet | 0:dbe5e7db3c45 | 13 | // Redistributions of source code must retain the above copyright |
dflet | 0:dbe5e7db3c45 | 14 | // notice, this list zof conditions and the following disclaimer. |
dflet | 0:dbe5e7db3c45 | 15 | // |
dflet | 0:dbe5e7db3c45 | 16 | // Redistributions in binary form must reproduce the above copyright |
dflet | 0:dbe5e7db3c45 | 17 | // notice, this list of conditions and the following disclaimer in the |
dflet | 0:dbe5e7db3c45 | 18 | // documentation and/or other materials provided with the |
dflet | 0:dbe5e7db3c45 | 19 | // distribution. |
dflet | 0:dbe5e7db3c45 | 20 | // |
dflet | 0:dbe5e7db3c45 | 21 | // Neither the name of Texas Instruments Incorporated nor the names of |
dflet | 0:dbe5e7db3c45 | 22 | // its contributors may be used to endorse or promote products derived |
dflet | 0:dbe5e7db3c45 | 23 | // from this software without specific prior written permission. |
dflet | 0:dbe5e7db3c45 | 24 | // |
dflet | 0:dbe5e7db3c45 | 25 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
dflet | 0:dbe5e7db3c45 | 26 | // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
dflet | 0:dbe5e7db3c45 | 27 | // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
dflet | 0:dbe5e7db3c45 | 28 | // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |
dflet | 0:dbe5e7db3c45 | 29 | // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
dflet | 0:dbe5e7db3c45 | 30 | // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
dflet | 0:dbe5e7db3c45 | 31 | // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
dflet | 0:dbe5e7db3c45 | 32 | // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
dflet | 0:dbe5e7db3c45 | 33 | // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
dflet | 0:dbe5e7db3c45 | 34 | // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
dflet | 0:dbe5e7db3c45 | 35 | // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
dflet | 0:dbe5e7db3c45 | 36 | // |
dflet | 0:dbe5e7db3c45 | 37 | //***************************************************************************** |
dflet | 0:dbe5e7db3c45 | 38 | |
dflet | 0:dbe5e7db3c45 | 39 | #ifndef __OSI_H__ |
dflet | 0:dbe5e7db3c45 | 40 | #define __OSI_H__ |
dflet | 0:dbe5e7db3c45 | 41 | |
dflet | 0:dbe5e7db3c45 | 42 | #ifdef __cplusplus |
dflet | 0:dbe5e7db3c45 | 43 | extern "C" { |
dflet | 0:dbe5e7db3c45 | 44 | #endif |
dflet | 0:dbe5e7db3c45 | 45 | |
dflet | 0:dbe5e7db3c45 | 46 | #include "portable.h" |
dflet | 0:dbe5e7db3c45 | 47 | |
dflet | 0:dbe5e7db3c45 | 48 | #define OSI_WAIT_FOREVER (0xFFFFFFFF) |
dflet | 0:dbe5e7db3c45 | 49 | |
dflet | 0:dbe5e7db3c45 | 50 | #define OSI_NO_WAIT (0) |
dflet | 0:dbe5e7db3c45 | 51 | |
dflet | 0:dbe5e7db3c45 | 52 | typedef int OsiReturnVal_e; |
dflet | 0:dbe5e7db3c45 | 53 | |
dflet | 0:dbe5e7db3c45 | 54 | #define OSI_OK (0) |
dflet | 0:dbe5e7db3c45 | 55 | #define OSI_FAILURE (-1) |
dflet | 0:dbe5e7db3c45 | 56 | #define OSI_OPERATION_FAILED (-2) |
dflet | 0:dbe5e7db3c45 | 57 | #define OSI_ABORTED (-3) |
dflet | 0:dbe5e7db3c45 | 58 | #define OSI_INVALID_PARAMS (-4) |
dflet | 0:dbe5e7db3c45 | 59 | #define OSI_MEMORY_ALLOCATION_FAILURE (-5) |
dflet | 0:dbe5e7db3c45 | 60 | #define OSI_TIMEOUT (-6) |
dflet | 0:dbe5e7db3c45 | 61 | #define OSI_EVENTS_IN_USE (-7) |
dflet | 0:dbe5e7db3c45 | 62 | #define OSI_EVENT_OPEARTION_FAILURE (-8) |
dflet | 0:dbe5e7db3c45 | 63 | |
dflet | 0:dbe5e7db3c45 | 64 | /*typedef enum |
dflet | 0:dbe5e7db3c45 | 65 | { |
dflet | 0:dbe5e7db3c45 | 66 | OSI_OK = 0, |
dflet | 0:dbe5e7db3c45 | 67 | OSI_FAILURE = -1, |
dflet | 0:dbe5e7db3c45 | 68 | OSI_OPERATION_FAILED = -2, |
dflet | 0:dbe5e7db3c45 | 69 | OSI_ABORTED = -3, |
dflet | 0:dbe5e7db3c45 | 70 | OSI_INVALID_PARAMS = -4, |
dflet | 0:dbe5e7db3c45 | 71 | OSI_MEMORY_ALLOCATION_FAILURE = -5, |
dflet | 0:dbe5e7db3c45 | 72 | OSI_TIMEOUT = -6, |
dflet | 0:dbe5e7db3c45 | 73 | OSI_EVENTS_IN_USE = -7, |
dflet | 0:dbe5e7db3c45 | 74 | OSI_EVENT_OPEARTION_FAILURE = -8 |
dflet | 0:dbe5e7db3c45 | 75 | }OsiReturnVal_e;*/ |
dflet | 0:dbe5e7db3c45 | 76 | |
dflet | 0:dbe5e7db3c45 | 77 | |
dflet | 0:dbe5e7db3c45 | 78 | //#define ENTER_CRITICAL_SECTION osi_EnterCritical() |
dflet | 0:dbe5e7db3c45 | 79 | //#define EXIT_CRITICAL_SECTION osi_ExitCritical() |
dflet | 0:dbe5e7db3c45 | 80 | |
dflet | 0:dbe5e7db3c45 | 81 | typedef void* OsiMsgQ_t; |
dflet | 0:dbe5e7db3c45 | 82 | |
dflet | 0:dbe5e7db3c45 | 83 | /*! |
dflet | 0:dbe5e7db3c45 | 84 | \brief type definition for a time value |
dflet | 0:dbe5e7db3c45 | 85 | |
dflet | 0:dbe5e7db3c45 | 86 | \note On each porting or platform the type could be whatever is needed - integer, pointer to structure etc. |
dflet | 0:dbe5e7db3c45 | 87 | */ |
dflet | 0:dbe5e7db3c45 | 88 | typedef uint32_t OsiTime_t; |
dflet | 0:dbe5e7db3c45 | 89 | //typedef unsigned long OsiTime_t; |
dflet | 0:dbe5e7db3c45 | 90 | /*! |
dflet | 0:dbe5e7db3c45 | 91 | \brief type definition for a sync object container |
dflet | 0:dbe5e7db3c45 | 92 | |
dflet | 0:dbe5e7db3c45 | 93 | Sync object is object used to synchronize between two threads or thread and interrupt handler. |
dflet | 0:dbe5e7db3c45 | 94 | One thread is waiting on the object and the other thread send a signal, which then |
dflet | 0:dbe5e7db3c45 | 95 | release the waiting thread. |
dflet | 0:dbe5e7db3c45 | 96 | The signal must be able to be sent from interrupt context. |
dflet | 0:dbe5e7db3c45 | 97 | This object is generally implemented by binary semaphore or events. |
dflet | 0:dbe5e7db3c45 | 98 | |
dflet | 0:dbe5e7db3c45 | 99 | \note On each porting or platform the type could be whatever is needed - integer, structure etc. |
dflet | 0:dbe5e7db3c45 | 100 | */ |
dflet | 0:dbe5e7db3c45 | 101 | //typedef unsigned int OsiSyncObj_t; |
dflet | 0:dbe5e7db3c45 | 102 | typedef void * OsiSyncObj_t; |
dflet | 0:dbe5e7db3c45 | 103 | |
dflet | 0:dbe5e7db3c45 | 104 | /*! |
dflet | 0:dbe5e7db3c45 | 105 | \brief type definition for a locking object container |
dflet | 0:dbe5e7db3c45 | 106 | |
dflet | 0:dbe5e7db3c45 | 107 | Locking object are used to protect a resource from mutual accesses of two or more threads. |
dflet | 0:dbe5e7db3c45 | 108 | The locking object should support re-entrant locks by a signal thread. |
dflet | 0:dbe5e7db3c45 | 109 | This object is generally implemented by mutex semaphore |
dflet | 0:dbe5e7db3c45 | 110 | |
dflet | 0:dbe5e7db3c45 | 111 | \note On each porting or platform the type could be whatever is needed - integer, structure etc. |
dflet | 0:dbe5e7db3c45 | 112 | */ |
dflet | 0:dbe5e7db3c45 | 113 | //typedef unsigned int OsiLockObj_t; |
dflet | 0:dbe5e7db3c45 | 114 | typedef void * OsiLockObj_t; |
dflet | 0:dbe5e7db3c45 | 115 | |
dflet | 0:dbe5e7db3c45 | 116 | /*! |
dflet | 0:dbe5e7db3c45 | 117 | \brief type definition for a spawn entry callback |
dflet | 0:dbe5e7db3c45 | 118 | |
dflet | 0:dbe5e7db3c45 | 119 | the spawn mechanism enable to run a function on different context. |
dflet | 0:dbe5e7db3c45 | 120 | This mechanism allow to transfer the execution context from interrupt context to thread context |
dflet | 0:dbe5e7db3c45 | 121 | or changing the context from an unknown user thread to general context. |
dflet | 0:dbe5e7db3c45 | 122 | The implementation of the spawn mechanism depends on the user's system requirements and could varies |
dflet | 0:dbe5e7db3c45 | 123 | from implementation of serialized execution using single thread to creating thread per call |
dflet | 0:dbe5e7db3c45 | 124 | |
dflet | 0:dbe5e7db3c45 | 125 | \note The stack size of the execution thread must be at least of TBD bytes! |
dflet | 0:dbe5e7db3c45 | 126 | */ |
dflet | 0:dbe5e7db3c45 | 127 | typedef void (*P_OSI_SPAWN_ENTRY)(void* pValue); |
dflet | 0:dbe5e7db3c45 | 128 | |
dflet | 0:dbe5e7db3c45 | 129 | typedef void (*P_OSI_EVENT_HANDLER)(void* pValue); |
dflet | 0:dbe5e7db3c45 | 130 | |
dflet | 0:dbe5e7db3c45 | 131 | typedef void (*P_OSI_TASK_ENTRY)(void* pValue); |
dflet | 0:dbe5e7db3c45 | 132 | |
dflet | 0:dbe5e7db3c45 | 133 | typedef void (*P_OSI_INTR_ENTRY)(void); |
dflet | 0:dbe5e7db3c45 | 134 | |
dflet | 0:dbe5e7db3c45 | 135 | typedef void* OsiTaskHandle; |
dflet | 0:dbe5e7db3c45 | 136 | |
dflet | 0:dbe5e7db3c45 | 137 | /*! |
dflet | 0:dbe5e7db3c45 | 138 | \brief This function registers an interrupt in NVIC table |
dflet | 0:dbe5e7db3c45 | 139 | |
dflet | 0:dbe5e7db3c45 | 140 | The sync object is used for synchronization between different thread or ISR and |
dflet | 0:dbe5e7db3c45 | 141 | a thread. |
dflet | 0:dbe5e7db3c45 | 142 | |
dflet | 0:dbe5e7db3c45 | 143 | \param iIntrNum - Interrupt number to register |
dflet | 0:dbe5e7db3c45 | 144 | \param pEntry - Pointer to the interrupt handler |
dflet | 0:dbe5e7db3c45 | 145 | |
dflet | 0:dbe5e7db3c45 | 146 | \return upon successful creation the function should return 0 |
dflet | 0:dbe5e7db3c45 | 147 | Otherwise, a negative value indicating the error code shall be returned |
dflet | 0:dbe5e7db3c45 | 148 | \note |
dflet | 0:dbe5e7db3c45 | 149 | \warning |
dflet | 0:dbe5e7db3c45 | 150 | */ |
dflet | 0:dbe5e7db3c45 | 151 | OsiReturnVal_e osi_InterruptRegister(int iIntrNum,P_OSI_INTR_ENTRY pEntry,unsigned char ucPriority); |
dflet | 0:dbe5e7db3c45 | 152 | |
dflet | 0:dbe5e7db3c45 | 153 | /*! |
dflet | 0:dbe5e7db3c45 | 154 | \brief This function De-registers an interrupt in NVIC table |
dflet | 0:dbe5e7db3c45 | 155 | |
dflet | 0:dbe5e7db3c45 | 156 | \param iIntrNum - Interrupt number to register |
dflet | 0:dbe5e7db3c45 | 157 | \param pEntry - Pointer to the interrupt handler |
dflet | 0:dbe5e7db3c45 | 158 | |
dflet | 0:dbe5e7db3c45 | 159 | \return upon successful creation the function should return Positive number |
dflet | 0:dbe5e7db3c45 | 160 | Otherwise, a negative value indicating the error code shall be returned |
dflet | 0:dbe5e7db3c45 | 161 | \note |
dflet | 0:dbe5e7db3c45 | 162 | \warning |
dflet | 0:dbe5e7db3c45 | 163 | */ |
dflet | 0:dbe5e7db3c45 | 164 | void osi_InterruptDeRegister(int iIntrNum); |
dflet | 0:dbe5e7db3c45 | 165 | |
dflet | 0:dbe5e7db3c45 | 166 | |
dflet | 0:dbe5e7db3c45 | 167 | /*! |
dflet | 0:dbe5e7db3c45 | 168 | \brief This function creates a sync object |
dflet | 0:dbe5e7db3c45 | 169 | |
dflet | 0:dbe5e7db3c45 | 170 | The sync object is used for synchronization between different thread or ISR and |
dflet | 0:dbe5e7db3c45 | 171 | a thread. |
dflet | 0:dbe5e7db3c45 | 172 | |
dflet | 0:dbe5e7db3c45 | 173 | \param pSyncObj - pointer to the sync object control block |
dflet | 0:dbe5e7db3c45 | 174 | |
dflet | 0:dbe5e7db3c45 | 175 | \return upon successful creation the function should return 0 |
dflet | 0:dbe5e7db3c45 | 176 | Otherwise, a negative value indicating the error code shall be returned |
dflet | 0:dbe5e7db3c45 | 177 | \note |
dflet | 0:dbe5e7db3c45 | 178 | \warning |
dflet | 0:dbe5e7db3c45 | 179 | */ |
dflet | 0:dbe5e7db3c45 | 180 | OsiReturnVal_e osi_SyncObjCreate(OsiSyncObj_t* pSyncObj); |
dflet | 0:dbe5e7db3c45 | 181 | |
dflet | 0:dbe5e7db3c45 | 182 | |
dflet | 0:dbe5e7db3c45 | 183 | /*! |
dflet | 0:dbe5e7db3c45 | 184 | \brief This function deletes a sync object |
dflet | 0:dbe5e7db3c45 | 185 | |
dflet | 0:dbe5e7db3c45 | 186 | \param pSyncObj - pointer to the sync object control block |
dflet | 0:dbe5e7db3c45 | 187 | |
dflet | 0:dbe5e7db3c45 | 188 | \return upon successful deletion the function should return 0 |
dflet | 0:dbe5e7db3c45 | 189 | Otherwise, a negative value indicating the error code shall be returned |
dflet | 0:dbe5e7db3c45 | 190 | \note |
dflet | 0:dbe5e7db3c45 | 191 | \warning |
dflet | 0:dbe5e7db3c45 | 192 | */ |
dflet | 0:dbe5e7db3c45 | 193 | OsiReturnVal_e osi_SyncObjDelete(OsiSyncObj_t* pSyncObj); |
dflet | 0:dbe5e7db3c45 | 194 | |
dflet | 0:dbe5e7db3c45 | 195 | /*! |
dflet | 0:dbe5e7db3c45 | 196 | \brief This function generates a sync signal for the object. |
dflet | 0:dbe5e7db3c45 | 197 | |
dflet | 0:dbe5e7db3c45 | 198 | All suspended threads waiting on this sync object are resumed |
dflet | 0:dbe5e7db3c45 | 199 | |
dflet | 0:dbe5e7db3c45 | 200 | \param pSyncObj - pointer to the sync object control block |
dflet | 0:dbe5e7db3c45 | 201 | |
dflet | 0:dbe5e7db3c45 | 202 | \return upon successful signalling the function should return 0 |
dflet | 0:dbe5e7db3c45 | 203 | Otherwise, a negative value indicating the error code shall be returned |
dflet | 0:dbe5e7db3c45 | 204 | \note the function could be called from ISR context |
dflet | 0:dbe5e7db3c45 | 205 | \warning |
dflet | 0:dbe5e7db3c45 | 206 | */ |
dflet | 0:dbe5e7db3c45 | 207 | OsiReturnVal_e osi_SyncObjSignal(OsiSyncObj_t* pSyncObj); |
dflet | 0:dbe5e7db3c45 | 208 | |
dflet | 0:dbe5e7db3c45 | 209 | /*! |
dflet | 0:dbe5e7db3c45 | 210 | \brief This function generates a sync signal for the object. |
dflet | 0:dbe5e7db3c45 | 211 | from ISR context. |
dflet | 0:dbe5e7db3c45 | 212 | |
dflet | 0:dbe5e7db3c45 | 213 | All suspended threads waiting on this sync object are resumed |
dflet | 0:dbe5e7db3c45 | 214 | |
dflet | 0:dbe5e7db3c45 | 215 | \param pSyncObj - pointer to the sync object control block |
dflet | 0:dbe5e7db3c45 | 216 | |
dflet | 0:dbe5e7db3c45 | 217 | \return upon successful signalling the function should return 0 |
dflet | 0:dbe5e7db3c45 | 218 | Otherwise, a negative value indicating the error code shall be returned |
dflet | 0:dbe5e7db3c45 | 219 | \note the function is called from ISR context |
dflet | 0:dbe5e7db3c45 | 220 | \warning |
dflet | 0:dbe5e7db3c45 | 221 | */ |
dflet | 0:dbe5e7db3c45 | 222 | OsiReturnVal_e osi_SyncObjSignalFromISR(OsiSyncObj_t* pSyncObj); |
dflet | 0:dbe5e7db3c45 | 223 | |
dflet | 0:dbe5e7db3c45 | 224 | /*! |
dflet | 0:dbe5e7db3c45 | 225 | \brief This function waits for a sync signal of the specific sync object |
dflet | 0:dbe5e7db3c45 | 226 | |
dflet | 0:dbe5e7db3c45 | 227 | \param pSyncObj - pointer to the sync object control block |
dflet | 0:dbe5e7db3c45 | 228 | \param Timeout - numeric value specifies the maximum number of mSec to |
dflet | 0:dbe5e7db3c45 | 229 | stay suspended while waiting for the sync signal |
dflet | 0:dbe5e7db3c45 | 230 | Currently, the simple link driver uses only two values: |
dflet | 0:dbe5e7db3c45 | 231 | - OSI_WAIT_FOREVER |
dflet | 0:dbe5e7db3c45 | 232 | - OSI_NO_WAIT |
dflet | 0:dbe5e7db3c45 | 233 | |
dflet | 0:dbe5e7db3c45 | 234 | \return upon successful reception of the signal within the timeout window return 0 |
dflet | 0:dbe5e7db3c45 | 235 | Otherwise, a negative value indicating the error code shall be returned |
dflet | 0:dbe5e7db3c45 | 236 | \note |
dflet | 0:dbe5e7db3c45 | 237 | \warning |
dflet | 0:dbe5e7db3c45 | 238 | */ |
dflet | 0:dbe5e7db3c45 | 239 | OsiReturnVal_e osi_SyncObjWait(OsiSyncObj_t* pSyncObj , OsiTime_t Timeout); |
dflet | 0:dbe5e7db3c45 | 240 | |
dflet | 0:dbe5e7db3c45 | 241 | /*! |
dflet | 0:dbe5e7db3c45 | 242 | \brief This function clears a sync object |
dflet | 0:dbe5e7db3c45 | 243 | |
dflet | 0:dbe5e7db3c45 | 244 | \param pSyncObj - pointer to the sync object control block |
dflet | 0:dbe5e7db3c45 | 245 | |
dflet | 0:dbe5e7db3c45 | 246 | \return upon successful clearing the function should return 0 |
dflet | 0:dbe5e7db3c45 | 247 | Otherwise, a negative value indicating the error code shall be returned |
dflet | 0:dbe5e7db3c45 | 248 | \note |
dflet | 0:dbe5e7db3c45 | 249 | \warning |
dflet | 0:dbe5e7db3c45 | 250 | */ |
dflet | 0:dbe5e7db3c45 | 251 | OsiReturnVal_e osi_SyncObjClear(OsiSyncObj_t* pSyncObj); |
dflet | 0:dbe5e7db3c45 | 252 | |
dflet | 0:dbe5e7db3c45 | 253 | /*! |
dflet | 0:dbe5e7db3c45 | 254 | \brief This function creates a locking object. |
dflet | 0:dbe5e7db3c45 | 255 | |
dflet | 0:dbe5e7db3c45 | 256 | The locking object is used for protecting a shared resources between different |
dflet | 0:dbe5e7db3c45 | 257 | threads. |
dflet | 0:dbe5e7db3c45 | 258 | |
dflet | 0:dbe5e7db3c45 | 259 | \param pLockObj - pointer to the locking object control block |
dflet | 0:dbe5e7db3c45 | 260 | |
dflet | 0:dbe5e7db3c45 | 261 | \return upon successful creation the function should return 0 |
dflet | 0:dbe5e7db3c45 | 262 | Otherwise, a negative value indicating the error code shall be returned |
dflet | 0:dbe5e7db3c45 | 263 | \note |
dflet | 0:dbe5e7db3c45 | 264 | \warning |
dflet | 0:dbe5e7db3c45 | 265 | */ |
dflet | 0:dbe5e7db3c45 | 266 | OsiReturnVal_e osi_LockObjCreate(OsiLockObj_t* pLockObj); |
dflet | 0:dbe5e7db3c45 | 267 | |
dflet | 0:dbe5e7db3c45 | 268 | /*! |
dflet | 0:dbe5e7db3c45 | 269 | \brief This function deletes a locking object. |
dflet | 0:dbe5e7db3c45 | 270 | |
dflet | 0:dbe5e7db3c45 | 271 | \param pLockObj - pointer to the locking object control block |
dflet | 0:dbe5e7db3c45 | 272 | |
dflet | 0:dbe5e7db3c45 | 273 | \return upon successful deletion the function should return 0 |
dflet | 0:dbe5e7db3c45 | 274 | Otherwise, a negative value indicating the error code shall be returned |
dflet | 0:dbe5e7db3c45 | 275 | \note |
dflet | 0:dbe5e7db3c45 | 276 | \warning |
dflet | 0:dbe5e7db3c45 | 277 | */ |
dflet | 0:dbe5e7db3c45 | 278 | OsiReturnVal_e osi_LockObjDelete(OsiLockObj_t* pLockObj); |
dflet | 0:dbe5e7db3c45 | 279 | |
dflet | 0:dbe5e7db3c45 | 280 | /*! |
dflet | 0:dbe5e7db3c45 | 281 | \brief This function locks a locking object. |
dflet | 0:dbe5e7db3c45 | 282 | |
dflet | 0:dbe5e7db3c45 | 283 | All other threads that call this function before this thread calls |
dflet | 0:dbe5e7db3c45 | 284 | the osi_LockObjUnlock would be suspended |
dflet | 0:dbe5e7db3c45 | 285 | |
dflet | 0:dbe5e7db3c45 | 286 | \param pLockObj - pointer to the locking object control block |
dflet | 0:dbe5e7db3c45 | 287 | \param Timeout - numeric value specifies the maximum number of mSec to |
dflet | 0:dbe5e7db3c45 | 288 | stay suspended while waiting for the locking object |
dflet | 0:dbe5e7db3c45 | 289 | Currently, the simple link driver uses only two values: |
dflet | 0:dbe5e7db3c45 | 290 | - OSI_WAIT_FOREVER |
dflet | 0:dbe5e7db3c45 | 291 | - OSI_NO_WAIT |
dflet | 0:dbe5e7db3c45 | 292 | |
dflet | 0:dbe5e7db3c45 | 293 | |
dflet | 0:dbe5e7db3c45 | 294 | \return upon successful reception of the locking object the function should return 0 |
dflet | 0:dbe5e7db3c45 | 295 | Otherwise, a negative value indicating the error code shall be returned |
dflet | 0:dbe5e7db3c45 | 296 | \note |
dflet | 0:dbe5e7db3c45 | 297 | \warning |
dflet | 0:dbe5e7db3c45 | 298 | */ |
dflet | 0:dbe5e7db3c45 | 299 | OsiReturnVal_e osi_LockObjLock(OsiLockObj_t* pLockObj , OsiTime_t Timeout); |
dflet | 0:dbe5e7db3c45 | 300 | |
dflet | 0:dbe5e7db3c45 | 301 | /*! |
dflet | 0:dbe5e7db3c45 | 302 | \brief This function unlock a locking object. |
dflet | 0:dbe5e7db3c45 | 303 | |
dflet | 0:dbe5e7db3c45 | 304 | \param pLockObj - pointer to the locking object control block |
dflet | 0:dbe5e7db3c45 | 305 | |
dflet | 0:dbe5e7db3c45 | 306 | \return upon successful unlocking the function should return 0 |
dflet | 0:dbe5e7db3c45 | 307 | Otherwise, a negative value indicating the error code shall be returned |
dflet | 0:dbe5e7db3c45 | 308 | \note |
dflet | 0:dbe5e7db3c45 | 309 | \warning |
dflet | 0:dbe5e7db3c45 | 310 | */ |
dflet | 0:dbe5e7db3c45 | 311 | OsiReturnVal_e osi_LockObjUnlock(OsiLockObj_t* pLockObj); |
dflet | 0:dbe5e7db3c45 | 312 | |
dflet | 0:dbe5e7db3c45 | 313 | |
dflet | 0:dbe5e7db3c45 | 314 | /*! |
dflet | 0:dbe5e7db3c45 | 315 | \brief This function call the pEntry callback from a different context |
dflet | 0:dbe5e7db3c45 | 316 | |
dflet | 0:dbe5e7db3c45 | 317 | \param pEntry - pointer to the entry callback function |
dflet | 0:dbe5e7db3c45 | 318 | |
dflet | 0:dbe5e7db3c45 | 319 | \param pValue - pointer to any type of memory structure that would be |
dflet | 0:dbe5e7db3c45 | 320 | passed to pEntry callback from the execution thread. |
dflet | 0:dbe5e7db3c45 | 321 | |
dflet | 0:dbe5e7db3c45 | 322 | \param flags - execution flags - reserved for future usage |
dflet | 0:dbe5e7db3c45 | 323 | |
dflet | 0:dbe5e7db3c45 | 324 | \return upon successful registration of the spawn the function should return 0 |
dflet | 0:dbe5e7db3c45 | 325 | (the function is not blocked till the end of the execution of the function |
dflet | 0:dbe5e7db3c45 | 326 | and could be returned before the execution is actually completed) |
dflet | 0:dbe5e7db3c45 | 327 | Otherwise, a negative value indicating the error code shall be returned |
dflet | 0:dbe5e7db3c45 | 328 | \note |
dflet | 0:dbe5e7db3c45 | 329 | \warning |
dflet | 0:dbe5e7db3c45 | 330 | */ |
dflet | 0:dbe5e7db3c45 | 331 | /*! |
dflet | 0:dbe5e7db3c45 | 332 | \brief This function creates a Task. |
dflet | 0:dbe5e7db3c45 | 333 | |
dflet | 0:dbe5e7db3c45 | 334 | Creates a new Task and add it to the last of tasks that are ready to run |
dflet | 0:dbe5e7db3c45 | 335 | |
dflet | 0:dbe5e7db3c45 | 336 | \param pEntry - pointer to the Task Function |
dflet | 0:dbe5e7db3c45 | 337 | \param pcName - Task Name String |
dflet | 0:dbe5e7db3c45 | 338 | \param usStackDepth - Stack Size Stack Size in 32-bit long words |
dflet | 0:dbe5e7db3c45 | 339 | \param pvParameters - pointer to structure to be passed to the Task Function |
dflet | 0:dbe5e7db3c45 | 340 | \param uxPriority - Task Priority |
dflet | 0:dbe5e7db3c45 | 341 | |
dflet | 0:dbe5e7db3c45 | 342 | \return upon successful unlocking the function should return 0 |
dflet | 0:dbe5e7db3c45 | 343 | Otherwise, a negative value indicating the error code shall be returned |
dflet | 0:dbe5e7db3c45 | 344 | \note |
dflet | 0:dbe5e7db3c45 | 345 | \warning |
dflet | 0:dbe5e7db3c45 | 346 | */ |
dflet | 0:dbe5e7db3c45 | 347 | OsiReturnVal_e osi_TaskCreate(P_OSI_TASK_ENTRY pEntry,const signed char * const pcName,unsigned short usStackDepth,void *pvParameters,uint32_t uxPriority,OsiTaskHandle *pTaskHandle); |
dflet | 0:dbe5e7db3c45 | 348 | |
dflet | 0:dbe5e7db3c45 | 349 | /*! |
dflet | 0:dbe5e7db3c45 | 350 | \brief This function Deletes a Task. |
dflet | 0:dbe5e7db3c45 | 351 | |
dflet | 0:dbe5e7db3c45 | 352 | Deletes a Task and remove it from list of running task |
dflet | 0:dbe5e7db3c45 | 353 | |
dflet | 0:dbe5e7db3c45 | 354 | \param pTaskHandle - Task Handle |
dflet | 0:dbe5e7db3c45 | 355 | |
dflet | 0:dbe5e7db3c45 | 356 | \note |
dflet | 0:dbe5e7db3c45 | 357 | \warning |
dflet | 0:dbe5e7db3c45 | 358 | */ |
dflet | 0:dbe5e7db3c45 | 359 | void osi_TaskDelete(OsiTaskHandle* pTaskHandle); |
dflet | 0:dbe5e7db3c45 | 360 | |
dflet | 0:dbe5e7db3c45 | 361 | /*! |
dflet | 0:dbe5e7db3c45 | 362 | \brief This function call the pEntry callback from a different context |
dflet | 0:dbe5e7db3c45 | 363 | |
dflet | 0:dbe5e7db3c45 | 364 | \param pEntry - pointer to the entry callback function |
dflet | 0:dbe5e7db3c45 | 365 | |
dflet | 0:dbe5e7db3c45 | 366 | \param pValue - pointer to any type of memory structure that would be |
dflet | 0:dbe5e7db3c45 | 367 | passed to pEntry callback from the execution thread. |
dflet | 0:dbe5e7db3c45 | 368 | |
dflet | 0:dbe5e7db3c45 | 369 | \param flags - execution flags - reserved for future usage |
dflet | 0:dbe5e7db3c45 | 370 | |
dflet | 0:dbe5e7db3c45 | 371 | \return upon successful registration of the spawn the function should return 0 |
dflet | 0:dbe5e7db3c45 | 372 | (the function is not blocked till the end of the execution of the function |
dflet | 0:dbe5e7db3c45 | 373 | and could be returned before the execution is actually completed) |
dflet | 0:dbe5e7db3c45 | 374 | Otherwise, a negative value indicating the error code shall be returned |
dflet | 0:dbe5e7db3c45 | 375 | \note |
dflet | 0:dbe5e7db3c45 | 376 | \warning |
dflet | 0:dbe5e7db3c45 | 377 | */ |
dflet | 0:dbe5e7db3c45 | 378 | OsiReturnVal_e osi_Spawn(P_OSI_SPAWN_ENTRY pEntry , void* pValue , uint32_t flags); |
dflet | 0:dbe5e7db3c45 | 379 | |
dflet | 0:dbe5e7db3c45 | 380 | |
dflet | 0:dbe5e7db3c45 | 381 | /******************************************************************************* |
dflet | 0:dbe5e7db3c45 | 382 | |
dflet | 0:dbe5e7db3c45 | 383 | This function creates a message queue that is typically used for inter thread |
dflet | 0:dbe5e7db3c45 | 384 | communication. |
dflet | 0:dbe5e7db3c45 | 385 | |
dflet | 0:dbe5e7db3c45 | 386 | Parameters: |
dflet | 0:dbe5e7db3c45 | 387 | |
dflet | 0:dbe5e7db3c45 | 388 | pMsgQ - pointer to the message queue control block |
dflet | 0:dbe5e7db3c45 | 389 | pMsgQName - pointer to the name of the message queue |
dflet | 0:dbe5e7db3c45 | 390 | MsgSize - the size of the message. |
dflet | 0:dbe5e7db3c45 | 391 | |
dflet | 0:dbe5e7db3c45 | 392 | NOTICE: THE MESSGAE SIZE MUST BE SMALLER THAN 16 |
dflet | 0:dbe5e7db3c45 | 393 | |
dflet | 0:dbe5e7db3c45 | 394 | MaxMsgs - maximum number of messages. |
dflet | 0:dbe5e7db3c45 | 395 | |
dflet | 0:dbe5e7db3c45 | 396 | Please note that this function allocates the entire memory required |
dflet | 0:dbe5e7db3c45 | 397 | for the maximum number of messages (MsgSize * MaxMsgs). |
dflet | 0:dbe5e7db3c45 | 398 | |
dflet | 0:dbe5e7db3c45 | 399 | ********************************************************************************/ |
dflet | 0:dbe5e7db3c45 | 400 | OsiReturnVal_e osi_MsgQCreate(OsiMsgQ_t* pMsgQ , |
dflet | 0:dbe5e7db3c45 | 401 | char* pMsgQName, |
dflet | 0:dbe5e7db3c45 | 402 | uint32_t MsgSize, |
dflet | 0:dbe5e7db3c45 | 403 | uint32_t MaxMsgs); |
dflet | 0:dbe5e7db3c45 | 404 | |
dflet | 0:dbe5e7db3c45 | 405 | /******************************************************************************* |
dflet | 0:dbe5e7db3c45 | 406 | |
dflet | 0:dbe5e7db3c45 | 407 | This function deletes a specific message queue. |
dflet | 0:dbe5e7db3c45 | 408 | All threads suspended waiting for a message from this queue are resumed with |
dflet | 0:dbe5e7db3c45 | 409 | an error return value. |
dflet | 0:dbe5e7db3c45 | 410 | |
dflet | 0:dbe5e7db3c45 | 411 | Parameters: |
dflet | 0:dbe5e7db3c45 | 412 | |
dflet | 0:dbe5e7db3c45 | 413 | pMsgQ - pointer to the message queue control block |
dflet | 0:dbe5e7db3c45 | 414 | |
dflet | 0:dbe5e7db3c45 | 415 | ********************************************************************************/ |
dflet | 0:dbe5e7db3c45 | 416 | OsiReturnVal_e osi_MsgQDelete(OsiMsgQ_t* pMsgQ); |
dflet | 0:dbe5e7db3c45 | 417 | |
dflet | 0:dbe5e7db3c45 | 418 | |
dflet | 0:dbe5e7db3c45 | 419 | /******************************************************************************* |
dflet | 0:dbe5e7db3c45 | 420 | |
dflet | 0:dbe5e7db3c45 | 421 | This function writes a message to a specific message queue. |
dflet | 0:dbe5e7db3c45 | 422 | |
dflet | 0:dbe5e7db3c45 | 423 | Notice that the message is copied to the queue from the memory area specified |
dflet | 0:dbe5e7db3c45 | 424 | by pMsg pointer. |
dflet | 0:dbe5e7db3c45 | 425 | |
dflet | 0:dbe5e7db3c45 | 426 | -------------------------------------------------------------------------------- |
dflet | 0:dbe5e7db3c45 | 427 | THIS FUNCTION COULD BE CALLED FROM ISR AS LONG AS THE TIMEOUT PARAMETER IS |
dflet | 0:dbe5e7db3c45 | 428 | SET TO "OSI_NO_WAIT" |
dflet | 0:dbe5e7db3c45 | 429 | -------------------------------------------------------------------------------- |
dflet | 0:dbe5e7db3c45 | 430 | |
dflet | 0:dbe5e7db3c45 | 431 | Parameters: |
dflet | 0:dbe5e7db3c45 | 432 | |
dflet | 0:dbe5e7db3c45 | 433 | pMsgQ - pointer to the message queue control block |
dflet | 0:dbe5e7db3c45 | 434 | pMsg - pointer to the message |
dflet | 0:dbe5e7db3c45 | 435 | Timeout - numeric value specifies the maximum number of mSec to stay |
dflet | 0:dbe5e7db3c45 | 436 | suspended while waiting for available space for the message |
dflet | 0:dbe5e7db3c45 | 437 | |
dflet | 0:dbe5e7db3c45 | 438 | ********************************************************************************/ |
dflet | 0:dbe5e7db3c45 | 439 | OsiReturnVal_e osi_MsgQWrite(OsiMsgQ_t* pMsgQ, void* pMsg , OsiTime_t Timeout); |
dflet | 0:dbe5e7db3c45 | 440 | |
dflet | 0:dbe5e7db3c45 | 441 | |
dflet | 0:dbe5e7db3c45 | 442 | /******************************************************************************* |
dflet | 0:dbe5e7db3c45 | 443 | |
dflet | 0:dbe5e7db3c45 | 444 | This function retrieves a message from the specified message queue. The |
dflet | 0:dbe5e7db3c45 | 445 | retrieved message is copied from the queue into the memory area specified by |
dflet | 0:dbe5e7db3c45 | 446 | the pMsg pointer |
dflet | 0:dbe5e7db3c45 | 447 | |
dflet | 0:dbe5e7db3c45 | 448 | Parameters: |
dflet | 0:dbe5e7db3c45 | 449 | |
dflet | 0:dbe5e7db3c45 | 450 | pMsgQ - pointer to the message queue control block |
dflet | 0:dbe5e7db3c45 | 451 | pMsg - pointer that specify the location where to copy the message |
dflet | 0:dbe5e7db3c45 | 452 | Timeout - numeric value specifies the maximum number of mSec to stay |
dflet | 0:dbe5e7db3c45 | 453 | suspended while waiting for a message to be available |
dflet | 0:dbe5e7db3c45 | 454 | |
dflet | 0:dbe5e7db3c45 | 455 | ********************************************************************************/ |
dflet | 0:dbe5e7db3c45 | 456 | OsiReturnVal_e osi_MsgQRead(OsiMsgQ_t* pMsgQ, void* pMsg , OsiTime_t Timeout); |
dflet | 0:dbe5e7db3c45 | 457 | |
dflet | 0:dbe5e7db3c45 | 458 | /*! |
dflet | 0:dbe5e7db3c45 | 459 | \brief This function starts the OS Scheduler |
dflet | 0:dbe5e7db3c45 | 460 | \param - void |
dflet | 0:dbe5e7db3c45 | 461 | \return - void |
dflet | 0:dbe5e7db3c45 | 462 | \note |
dflet | 0:dbe5e7db3c45 | 463 | \warning |
dflet | 0:dbe5e7db3c45 | 464 | */ |
dflet | 0:dbe5e7db3c45 | 465 | void osi_start(); |
dflet | 0:dbe5e7db3c45 | 466 | |
dflet | 0:dbe5e7db3c45 | 467 | /*! |
dflet | 0:dbe5e7db3c45 | 468 | \brief Allocates Memory on Heap |
dflet | 0:dbe5e7db3c45 | 469 | \param Size - Size of the Buffer to be allocated |
dflet | 0:dbe5e7db3c45 | 470 | \sa |
dflet | 0:dbe5e7db3c45 | 471 | \note |
dflet | 0:dbe5e7db3c45 | 472 | \warning |
dflet | 0:dbe5e7db3c45 | 473 | */ |
dflet | 0:dbe5e7db3c45 | 474 | void * mem_Malloc(uint32_t Size); |
dflet | 0:dbe5e7db3c45 | 475 | |
dflet | 0:dbe5e7db3c45 | 476 | |
dflet | 0:dbe5e7db3c45 | 477 | /*! |
dflet | 0:dbe5e7db3c45 | 478 | \brief Deallocates Memory |
dflet | 0:dbe5e7db3c45 | 479 | \param pMem - Pointer to the Buffer to be freed |
dflet | 0:dbe5e7db3c45 | 480 | \return void |
dflet | 0:dbe5e7db3c45 | 481 | \sa |
dflet | 0:dbe5e7db3c45 | 482 | \note |
dflet | 0:dbe5e7db3c45 | 483 | \warning |
dflet | 0:dbe5e7db3c45 | 484 | */ |
dflet | 0:dbe5e7db3c45 | 485 | void mem_Free(void *pMem); |
dflet | 0:dbe5e7db3c45 | 486 | |
dflet | 0:dbe5e7db3c45 | 487 | |
dflet | 0:dbe5e7db3c45 | 488 | /*! |
dflet | 0:dbe5e7db3c45 | 489 | \brief Set Memory |
dflet | 0:dbe5e7db3c45 | 490 | \param pBuf - Pointer to the Buffer |
dflet | 0:dbe5e7db3c45 | 491 | \param Val - Value to be set |
dflet | 0:dbe5e7db3c45 | 492 | \param Size - Size of the memory to be set |
dflet | 0:dbe5e7db3c45 | 493 | \sa |
dflet | 0:dbe5e7db3c45 | 494 | \note |
dflet | 0:dbe5e7db3c45 | 495 | \warning |
dflet | 0:dbe5e7db3c45 | 496 | */ |
dflet | 0:dbe5e7db3c45 | 497 | void mem_set(void *pBuf,int Val,size_t Size); |
dflet | 0:dbe5e7db3c45 | 498 | |
dflet | 0:dbe5e7db3c45 | 499 | /*! |
dflet | 0:dbe5e7db3c45 | 500 | \brief Copy Memory |
dflet | 0:dbe5e7db3c45 | 501 | \param pDst - Pointer to the Destination Buffer |
dflet | 0:dbe5e7db3c45 | 502 | \param pSrc - Pointer to the Source Buffer |
dflet | 0:dbe5e7db3c45 | 503 | \param Size - Size of the memory to be copied |
dflet | 0:dbe5e7db3c45 | 504 | \return void |
dflet | 0:dbe5e7db3c45 | 505 | \note |
dflet | 0:dbe5e7db3c45 | 506 | \warning |
dflet | 0:dbe5e7db3c45 | 507 | */ |
dflet | 0:dbe5e7db3c45 | 508 | void mem_copy(void *pDst, void *pSrc,size_t Size); |
dflet | 0:dbe5e7db3c45 | 509 | |
dflet | 0:dbe5e7db3c45 | 510 | /*! |
dflet | 0:dbe5e7db3c45 | 511 | \brief Enter Critical Section |
dflet | 0:dbe5e7db3c45 | 512 | \sa |
dflet | 0:dbe5e7db3c45 | 513 | \note |
dflet | 0:dbe5e7db3c45 | 514 | \warning |
dflet | 0:dbe5e7db3c45 | 515 | */ |
dflet | 0:dbe5e7db3c45 | 516 | uint32_t osi_EnterCritical(void); |
dflet | 0:dbe5e7db3c45 | 517 | |
dflet | 0:dbe5e7db3c45 | 518 | /*! |
dflet | 0:dbe5e7db3c45 | 519 | \brief Exit Critical Section |
dflet | 0:dbe5e7db3c45 | 520 | \sa |
dflet | 0:dbe5e7db3c45 | 521 | \note |
dflet | 0:dbe5e7db3c45 | 522 | \warning |
dflet | 0:dbe5e7db3c45 | 523 | */ |
dflet | 0:dbe5e7db3c45 | 524 | void osi_ExitCritical(uint32_t ulKey); |
dflet | 0:dbe5e7db3c45 | 525 | |
dflet | 0:dbe5e7db3c45 | 526 | /*! |
dflet | 0:dbe5e7db3c45 | 527 | \brief This function used to save the os context before sleep |
dflet | 0:dbe5e7db3c45 | 528 | \param void |
dflet | 0:dbe5e7db3c45 | 529 | \return void |
dflet | 0:dbe5e7db3c45 | 530 | \note |
dflet | 0:dbe5e7db3c45 | 531 | \warning |
dflet | 0:dbe5e7db3c45 | 532 | */ |
dflet | 0:dbe5e7db3c45 | 533 | void osi_ContextSave(); |
dflet | 0:dbe5e7db3c45 | 534 | /*! |
dflet | 0:dbe5e7db3c45 | 535 | \brief This function used to retrieve the context after sleep |
dflet | 0:dbe5e7db3c45 | 536 | \param void |
dflet | 0:dbe5e7db3c45 | 537 | \return void |
dflet | 0:dbe5e7db3c45 | 538 | \note |
dflet | 0:dbe5e7db3c45 | 539 | \warning |
dflet | 0:dbe5e7db3c45 | 540 | */ |
dflet | 0:dbe5e7db3c45 | 541 | void osi_ContextRestore(); |
dflet | 0:dbe5e7db3c45 | 542 | |
dflet | 0:dbe5e7db3c45 | 543 | /*! |
dflet | 0:dbe5e7db3c45 | 544 | \brief This function used to suspend the task for the specified number of milli secs |
dflet | 0:dbe5e7db3c45 | 545 | \param MilliSecs - Time in millisecs to suspend the task |
dflet | 0:dbe5e7db3c45 | 546 | \return void |
dflet | 0:dbe5e7db3c45 | 547 | \note |
dflet | 0:dbe5e7db3c45 | 548 | \warning |
dflet | 0:dbe5e7db3c45 | 549 | */ |
dflet | 0:dbe5e7db3c45 | 550 | void osi_Sleep(unsigned int MilliSecs); |
dflet | 0:dbe5e7db3c45 | 551 | |
dflet | 0:dbe5e7db3c45 | 552 | /*! |
dflet | 0:dbe5e7db3c45 | 553 | \brief This function used to disable the tasks |
dflet | 0:dbe5e7db3c45 | 554 | \param - void |
dflet | 0:dbe5e7db3c45 | 555 | \return - Key with the suspended tasks |
dflet | 0:dbe5e7db3c45 | 556 | \note |
dflet | 0:dbe5e7db3c45 | 557 | \warning |
dflet | 0:dbe5e7db3c45 | 558 | */ |
dflet | 0:dbe5e7db3c45 | 559 | uint32_t osi_TaskDisable(void); |
dflet | 0:dbe5e7db3c45 | 560 | |
dflet | 0:dbe5e7db3c45 | 561 | /*! |
dflet | 0:dbe5e7db3c45 | 562 | \brief This function used to enable all tasks |
dflet | 0:dbe5e7db3c45 | 563 | \param unsigned long |
dflet | 0:dbe5e7db3c45 | 564 | \return - void |
dflet | 0:dbe5e7db3c45 | 565 | \note |
dflet | 0:dbe5e7db3c45 | 566 | \warning |
dflet | 0:dbe5e7db3c45 | 567 | */ |
dflet | 0:dbe5e7db3c45 | 568 | void osi_TaskEnable(uint32_t); |
dflet | 0:dbe5e7db3c45 | 569 | /*! |
dflet | 0:dbe5e7db3c45 | 570 | \brief structure definition for simple link spawn message |
dflet | 0:dbe5e7db3c45 | 571 | |
dflet | 0:dbe5e7db3c45 | 572 | \note On each porting or platform the type could be whatever is needed - integer, pointer to structure etc. |
dflet | 0:dbe5e7db3c45 | 573 | */ |
dflet | 0:dbe5e7db3c45 | 574 | |
dflet | 0:dbe5e7db3c45 | 575 | typedef struct |
dflet | 0:dbe5e7db3c45 | 576 | { |
dflet | 0:dbe5e7db3c45 | 577 | P_OSI_SPAWN_ENTRY pEntry; |
dflet | 0:dbe5e7db3c45 | 578 | void* pValue; |
dflet | 0:dbe5e7db3c45 | 579 | }tSimpleLinkSpawnMsg; |
dflet | 0:dbe5e7db3c45 | 580 | |
dflet | 0:dbe5e7db3c45 | 581 | /* The queue used to send message to simple link spawn task. */ |
dflet | 0:dbe5e7db3c45 | 582 | extern void* xSimpleLinkSpawnQueue; |
dflet | 0:dbe5e7db3c45 | 583 | |
dflet | 0:dbe5e7db3c45 | 584 | /* API for SL Task*/ |
dflet | 0:dbe5e7db3c45 | 585 | OsiReturnVal_e VStartSimpleLinkSpawnTask(unsigned portBASE_TYPE uxPriority); |
dflet | 0:dbe5e7db3c45 | 586 | void VDeleteSimpleLinkSpawnTask( void ); |
dflet | 0:dbe5e7db3c45 | 587 | |
dflet | 0:dbe5e7db3c45 | 588 | |
dflet | 0:dbe5e7db3c45 | 589 | |
dflet | 0:dbe5e7db3c45 | 590 | #ifdef __cplusplus |
dflet | 0:dbe5e7db3c45 | 591 | } |
dflet | 0:dbe5e7db3c45 | 592 | #endif // __cplusplus |
dflet | 0:dbe5e7db3c45 | 593 | |
dflet | 0:dbe5e7db3c45 | 594 | #endif |
dflet | 0:dbe5e7db3c45 | 595 |