100 #define osCMSIS 0x00003
103 #define osCMSIS_KERNEL 0x10000
106 #define osKernelSystemId "KERNEL V1.00"
109 #define osFeature_MainThread 1
110 #define osFeature_Pool 1
111 #define osFeature_MailQ 1
112 #define osFeature_MessageQ 1
113 #define osFeature_Signals 8
114 #define osFeature_Semaphore 30
115 #define osFeature_Wait 1
143 #define osWaitForever 0xFFFFFFFF
304 #if defined (osObjectsExternal) // object is external
305 #define osThreadDef(name, priority, instances, stacksz) \
306 extern osThreadDef_t os_thread_def_##name
307 #else // define the object
308 #define osThreadDef(name, priority, instances, stacksz) \
309 osThreadDef_t os_thread_def_##name = \
310 { (name), (priority), (instances), (stacksz) }
317 #define osThread(name) \
318 &os_thread_def_##name
366 #if (defined (osFeature_Wait) && (osFeature_Wait != 0)) // Generic Wait available
374 #endif // Generic Wait available
383 #if defined (osObjectsExternal) // object is external
384 #define osTimerDef(name, function) \
385 extern osTimerDef_t os_timer_def_##name
386 #else // define the object
387 #define osTimerDef(name, function) \
388 osTimerDef_t os_timer_def_##name = \
396 #define osTimer(name) \
457 #if defined (osObjectsExternal) // object is external
458 #define osMutexDef(name) \
459 extern osMutexDef_t os_mutex_def_##name
460 #else // define the object
461 #define osMutexDef(name) \
462 osMutexDef_t os_mutex_def_##name = { 0 }
469 #define osMutex(name) \
494 #if (defined (osFeature_Semaphore) && (osFeature_Semaphore != 0)) // Semaphore available
500 #if defined (osObjectsExternal) // object is external
501 #define osSemaphoreDef(name) \
502 extern osSemaphoreDef_t os_semaphore_def_##name
503 #else // define the object
504 #define osSemaphoreDef(name) \
505 osSemaphoreDef_t os_semaphore_def_##name = { 0 }
512 #define osSemaphore(name) \
513 &os_semaphore_def_##name
535 #endif // Semaphore available
539 #if (defined (osFeature_Pool) && (osFeature_Pool != 0)) // Memory Pool Management available
547 #if defined (osObjectsExternal) // object is external
548 #define osPoolDef(name, no, type) \
549 extern osPoolDef_t os_pool_def_##name
550 #else // define the object
551 #define osPoolDef(name, no, type) \
552 osPoolDef_t os_pool_def_##name = \
553 { (no), sizeof(type), NULL }
560 #define osPool(name) \
588 #endif // Memory Pool Management available
593 #if (defined (osFeature_MessageQ) && (osFeature_MessageQ != 0)) // Message Queues available
601 #if defined (osObjectsExternal) // object is external
602 #define osMessageQDef(name, queue_sz, type) \
603 extern osMessageQDef_t os_messageQ_def_##name
604 #else // define the object
605 #define osMessageQDef(name, queue_sz, type) \
606 osMessageQDef_t os_messageQ_def_##name = \
607 { (queue_sz), sizeof (type) }
614 #define osMessageQ(name) \
615 &os_messageQ_def_##name
639 #endif // Message Queues available
644 #if (defined (osFeature_MailQ) && (osFeature_MailQ != 0)) // Mail Queues available
652 #if defined (osObjectsExternal) // object is external
653 #define osMailQDef(name, queue_sz, type) \
654 extern osMailQDef_t os_mailQ_def_##name
655 #else // define the object
656 #define osMailQDef(name, queue_sz, type) \
657 osMailQDef_t os_mailQ_def_##name = \
658 { (queue_sz), sizeof (type) }
665 #define osMailQ(name) \
710 #endif // Mail Queues available
717 #endif // _CMSIS_OS_H