Lines Matching +full:execution +full:- +full:memory

1 /* ----------------------------------------------------------------------
5 * Project: CMSIS-RTOS API
17 * - const attribute removed from the osXxxxDef_t typedef's
18 * - const attribute added to the osXxxxDef macros
25 *----------------------------------------------------------------------------
27 * Copyright (c) 2013-2017 ARM LIMITED
29 * SPDX-License-Identifier: Apache-2.0
35 * www.apache.org/licenses/LICENSE-2.0
42 *---------------------------------------------------------------------------*/
48 /// \note MUST REMAIN UNCHANGED: \b osCMSIS identifies the CMSIS-RTOS API version.
54 /// \note MUST REMAIN UNCHANGED: \b osKernelSystemId shall be consistent in every CMSIS-RTOS.
57 /// \note MUST REMAIN UNCHANGED: \b osFeature_xxx shall be consistent in every CMSIS-RTOS.
59 #define osFeature_Pool 1 ///< Memory Pools: 1=available, 0=not available
81 /// \note MUST REMAIN UNCHANGED: \b osPriority shall be consistent in every CMSIS-RTOS.
83 osPriorityIdle = -3, ///< priority: idle (lowest)
84 osPriorityLow = -2, ///< priority: low
85 osPriorityBelowNormal = -1, ///< priority: below normal
94 /// \note MUST REMAIN UNCHANGED: \b osWaitForever shall be consistent in every CMSIS-RTOS.
97 /// Status code values returned by CMSIS-RTOS functions.
98 /// \note MUST REMAIN UNCHANGED: \b osStatus shall be consistent in every CMSIS-RTOS.
111 …ory = 0x85, ///< system is out of memory: it was impossible to allocate or reserve
113 …osErrorOS = 0xFF, ///< unspecified RTOS error: run-time error but no other er…
114 os_status_reserved = 0x7FFFFFFF ///< prevent from enum down-size compiler optimization.
119 /// \note MUST REMAIN UNCHANGED: \b os_timer_type shall be consistent in every CMSIS-RTOS.
121 osTimerOnce = 0, ///< one-shot timer
126 /// \note MUST REMAIN UNCHANGED: \b os_pthread shall be consistent in every CMSIS-RTOS.
130 /// \note MUST REMAIN UNCHANGED: \b os_ptimer shall be consistent in every CMSIS-RTOS.
136 /// \note CAN BE CHANGED: \b os_thread_cb is implementation specific in every CMSIS-RTOS.
140 /// \note CAN BE CHANGED: \b os_timer_cb is implementation specific in every CMSIS-RTOS.
144 /// \note CAN BE CHANGED: \b os_mutex_cb is implementation specific in every CMSIS-RTOS.
148 /// \note CAN BE CHANGED: \b os_semaphore_cb is implementation specific in every CMSIS-RTOS.
151 /// Pool ID identifies the memory pool (pointer to a memory pool control block).
152 /// \note CAN BE CHANGED: \b os_pool_cb is implementation specific in every CMSIS-RTOS.
156 /// \note CAN BE CHANGED: \b os_messageQ_cb is implementation specific in every CMSIS-RTOS.
160 /// \note CAN BE CHANGED: \b os_mailQ_cb is implementation specific in every CMSIS-RTOS.
165 /// \note CAN BE CHANGED: \b os_thread_def is implementation specific in every CMSIS-RTOS.
171 void *stack_mem; ///< pointer to array of stack memory
181 /// \note CAN BE CHANGED: \b os_timer_def is implementation specific in every CMSIS-RTOS.
187 /// \note CAN BE CHANGED: \b os_mutex_def is implementation specific in every CMSIS-RTOS.
193 /// \note CAN BE CHANGED: \b os_semaphore_def is implementation specific in every CMSIS-RTOS.
198 /// Definition structure for memory block allocation.
199 /// \note CAN BE CHANGED: \b os_pool_def is implementation specific in every CMSIS-RTOS.
203 void *pool; ///< pointer to memory for pool
207 /// \note CAN BE CHANGED: \b os_messageQ_def is implementation specific in every CMSIS-RTOS.
211 void *pool; ///< memory array for messages
216 /// \note CAN BE CHANGED: \b os_mailQ_def is implementation specific in every CMSIS-RTOS.
220 void *pool; ///< memory array for mail
225 /// \note MUST REMAIN UNCHANGED: \b os_event shall be consistent in every CMSIS-RTOS.
230 uint32_t v; ///< message as 32-bit value
244 /// \return status code that indicates the execution status of the function.
245 /// \note MUST REMAIN UNCHANGED: \b osKernelInitialize shall be consistent in every CMSIS-RTOS.
249 /// \return status code that indicates the execution status of the function.
250 /// \note MUST REMAIN UNCHANGED: \b osKernelStart shall be consistent in every CMSIS-RTOS.
254 /// \note MUST REMAIN UNCHANGED: \b osKernelRunning shall be consistent in every CMSIS-RTOS.
261 /// \note MUST REMAIN UNCHANGED: \b osKernelSysTick shall be consistent in every CMSIS-RTOS.
262 /// \return RTOS kernel system timer as 32-bit value
284 /// macro body is implementation specific in every CMSIS-RTOS.
304 /// macro body is implementation specific in every CMSIS-RTOS.
312 /// \note MUST REMAIN UNCHANGED: \b osThreadCreate shall be consistent in every CMSIS-RTOS.
317 /// \note MUST REMAIN UNCHANGED: \b osThreadGetId shall be consistent in every CMSIS-RTOS.
320 /// Terminate execution of a thread and remove it from Active Threads.
322 /// \return status code that indicates the execution status of the function.
323 /// \note MUST REMAIN UNCHANGED: \b osThreadTerminate shall be consistent in every CMSIS-RTOS.
327 /// \return status code that indicates the execution status of the function.
328 /// \note MUST REMAIN UNCHANGED: \b osThreadYield shall be consistent in every CMSIS-RTOS.
334 /// \return status code that indicates the execution status of the function.
335 /// \note MUST REMAIN UNCHANGED: \b osThreadSetPriority shall be consistent in every CMSIS-RTOS.
341 /// \note MUST REMAIN UNCHANGED: \b osThreadGetPriority shall be consistent in every CMSIS-RTOS.
349 /// \return status code that indicates the execution status of the function.
355 /// \param[in] millisec \ref CMSIS_RTOS_TimeOutValue or 0 in case of no time-out
357 /// \note MUST REMAIN UNCHANGED: \b osWait shall be consistent in every CMSIS-RTOS.
368 /// macro body is implementation specific in every CMSIS-RTOS.
381 /// macro body is implementation specific in every CMSIS-RTOS.
387 /// \param[in] type osTimerOnce for one-shot or osTimerPeriodic for periodic behavior.
390 /// \note MUST REMAIN UNCHANGED: \b osTimerCreate shall be consistent in every CMSIS-RTOS.
396 /// \return status code that indicates the execution status of the function.
397 /// \note MUST REMAIN UNCHANGED: \b osTimerStart shall be consistent in every CMSIS-RTOS.
402 /// \return status code that indicates the execution status of the function.
403 /// \note MUST REMAIN UNCHANGED: \b osTimerStop shall be consistent in every CMSIS-RTOS.
408 /// \return status code that indicates the execution status of the function.
409 /// \note MUST REMAIN UNCHANGED: \b osTimerDelete shall be consistent in every CMSIS-RTOS.
419 /// \note MUST REMAIN UNCHANGED: \b osSignalSet shall be consistent in every CMSIS-RTOS.
426 /// \note MUST REMAIN UNCHANGED: \b osSignalClear shall be consistent in every CMSIS-RTOS.
431 /// \param[in] millisec \ref CMSIS_RTOS_TimeOutValue or 0 in case of no time-out.
433 /// \note MUST REMAIN UNCHANGED: \b osSignalWait shall be consistent in every CMSIS-RTOS.
442 /// macro body is implementation specific in every CMSIS-RTOS.
454 /// macro body is implementation specific in every CMSIS-RTOS.
461 /// \note MUST REMAIN UNCHANGED: \b osMutexCreate shall be consistent in every CMSIS-RTOS.
466 /// \param[in] millisec \ref CMSIS_RTOS_TimeOutValue or 0 in case of no time-out.
467 /// \return status code that indicates the execution status of the function.
468 /// \note MUST REMAIN UNCHANGED: \b osMutexWait shall be consistent in every CMSIS-RTOS.
473 /// \return status code that indicates the execution status of the function.
474 /// \note MUST REMAIN UNCHANGED: \b osMutexRelease shall be consistent in every CMSIS-RTOS.
479 /// \return status code that indicates the execution status of the function.
480 /// \note MUST REMAIN UNCHANGED: \b osMutexDelete shall be consistent in every CMSIS-RTOS.
491 /// macro body is implementation specific in every CMSIS-RTOS.
503 /// macro body is implementation specific in every CMSIS-RTOS.
511 /// \note MUST REMAIN UNCHANGED: \b osSemaphoreCreate shall be consistent in every CMSIS-RTOS.
516 /// \param[in] millisec \ref CMSIS_RTOS_TimeOutValue or 0 in case of no time-out.
517 /// \return number of available tokens, or -1 in case of incorrect parameters.
518 /// \note MUST REMAIN UNCHANGED: \b osSemaphoreWait shall be consistent in every CMSIS-RTOS.
523 /// \return status code that indicates the execution status of the function.
524 /// \note MUST REMAIN UNCHANGED: \b osSemaphoreRelease shall be consistent in every CMSIS-RTOS.
529 /// \return status code that indicates the execution status of the function.
530 /// \note MUST REMAIN UNCHANGED: \b osSemaphoreDelete shall be consistent in every CMSIS-RTOS.
536 // ==== Memory Pool Management Functions ====
538 #if (defined (osFeature_Pool) && (osFeature_Pool != 0)) // Memory Pool Management available
540 /// \brief Define a Memory Pool.
541 /// \param name name of the memory pool.
542 /// \param no maximum number of blocks (objects) in the memory pool.
545 /// macro body is implementation specific in every CMSIS-RTOS.
556 /// \brief Access a Memory Pool definition.
557 /// \param name name of the memory pool
559 /// macro body is implementation specific in every CMSIS-RTOS.
563 /// Create and Initialize a memory pool.
564 /// \param[in] pool_def memory pool definition referenced with \ref osPool.
565 /// \return memory pool ID for reference by other functions or NULL in case of error.
566 /// \note MUST REMAIN UNCHANGED: \b osPoolCreate shall be consistent in every CMSIS-RTOS.
569 /// Allocate a memory block from a memory pool.
570 /// \param[in] pool_id memory pool ID obtain referenced with \ref osPoolCreate.
571 /// \return address of the allocated memory block or NULL in case of no memory available.
572 /// \note MUST REMAIN UNCHANGED: \b osPoolAlloc shall be consistent in every CMSIS-RTOS.
575 /// Allocate a memory block from a memory pool and set memory block to zero.
576 /// \param[in] pool_id memory pool ID obtain referenced with \ref osPoolCreate.
577 /// \return address of the allocated memory block or NULL in case of no memory available.
578 /// \note MUST REMAIN UNCHANGED: \b osPoolCAlloc shall be consistent in every CMSIS-RTOS.
581 /// Return an allocated memory block back to a specific memory pool.
582 /// \param[in] pool_id memory pool ID obtain referenced with \ref osPoolCreate.
583 … \param[in] block address of the allocated memory block that is returned to the memory
584 /// \return status code that indicates the execution status of the function.
585 /// \note MUST REMAIN UNCHANGED: \b osPoolFree shall be consistent in every CMSIS-RTOS.
588 #endif // Memory Pool Management available
600 /// macro body is implementation specific in every CMSIS-RTOS.
615 /// macro body is implementation specific in every CMSIS-RTOS.
623 /// \note MUST REMAIN UNCHANGED: \b osMessageCreate shall be consistent in every CMSIS-RTOS.
629 /// \param[in] millisec \ref CMSIS_RTOS_TimeOutValue or 0 in case of no time-out.
630 /// \return status code that indicates the execution status of the function.
631 /// \note MUST REMAIN UNCHANGED: \b osMessagePut shall be consistent in every CMSIS-RTOS.
636 /// \param[in] millisec \ref CMSIS_RTOS_TimeOutValue or 0 in case of no time-out.
638 /// \note MUST REMAIN UNCHANGED: \b osMessageGet shall be consistent in every CMSIS-RTOS.
653 /// macro body is implementation specific in every CMSIS-RTOS.
668 /// macro body is implementation specific in every CMSIS-RTOS.
676 /// \note MUST REMAIN UNCHANGED: \b osMailCreate shall be consistent in every CMSIS-RTOS.
679 /// Allocate a memory block from a mail.
681 /// \param[in] millisec \ref CMSIS_RTOS_TimeOutValue or 0 in case of no time-out
682 /// \return pointer to memory block that can be filled with mail or NULL in case of error.
683 /// \note MUST REMAIN UNCHANGED: \b osMailAlloc shall be consistent in every CMSIS-RTOS.
686 /// Allocate a memory block from a mail and set memory block to zero.
688 /// \param[in] millisec \ref CMSIS_RTOS_TimeOutValue or 0 in case of no time-out
689 /// \return pointer to memory block that can be filled with mail or NULL in case of error.
690 /// \note MUST REMAIN UNCHANGED: \b osMailCAlloc shall be consistent in every CMSIS-RTOS.
695 /// \param[in] mail memory block previously allocated with \ref osMailAlloc or \ref os…
696 /// \return status code that indicates the execution status of the function.
697 /// \note MUST REMAIN UNCHANGED: \b osMailPut shall be consistent in every CMSIS-RTOS.
702 /// \param[in] millisec \ref CMSIS_RTOS_TimeOutValue or 0 in case of no time-out
704 /// \note MUST REMAIN UNCHANGED: \b osMailGet shall be consistent in every CMSIS-RTOS.
707 /// Free a memory block from a mail.
709 /// \param[in] mail pointer to the memory block that was obtained with \ref osMailGet.
710 /// \return status code that indicates the execution status of the function.
711 /// \note MUST REMAIN UNCHANGED: \b osMailFree shall be consistent in every CMSIS-RTOS.