1 /** 2 **************************************************************************************** 3 * 4 * @file ke_env.h 5 * 6 * @brief This file contains the definition of the kernel. 7 * 8 * Copyright (C) RivieraWaves 2009-2015 9 * 10 * 11 **************************************************************************************** 12 */ 13 14 #ifndef _KE_ENV_H_ 15 #define _KE_ENV_H_ 16 17 /** 18 **************************************************************************************** 19 * @addtogroup ENV Environment 20 * @ingroup KERNEL 21 * @brief Kernel Environment 22 * 23 * @{ 24 **************************************************************************************** 25 */ 26 27 /* 28 * INCLUDE FILES 29 **************************************************************************************** 30 */ 31 #include "rwip_config.h" // stack configuration 32 #include "ke_config.h" // kernel configuration 33 #include "ke_event.h" // kernel event 34 #include "co_list.h" // kernel queue definition 35 36 // forward declaration 37 struct mblock_free; 38 39 /// Kernel environment definition 40 struct ke_env_tag 41 { 42 /// Queue of sent messages but not yet delivered to receiver 43 struct co_list queue_sent; 44 /// Queue of messages delivered but not consumed by receiver 45 struct co_list queue_saved; 46 /// Queue of timers 47 struct co_list queue_timer; 48 49 #if (KE_MEM_RW) 50 /// Root pointer = pointer to first element of heap linked lists 51 struct mblock_free * heap[KE_MEM_BLOCK_MAX]; 52 /// Size of heaps 53 uint16_t heap_size[KE_MEM_BLOCK_MAX]; 54 55 #if (KE_PROFILING) 56 /// Size of heap used 57 uint16_t heap_used[KE_MEM_BLOCK_MAX]; 58 /// Maximum heap memory used 59 uint32_t max_heap_used; 60 #endif //KE_PROFILING 61 #endif //KE_MEM_RW 62 }; 63 64 /// Kernel environment 65 extern struct ke_env_tag ke_env; 66 67 /// @} ENV 68 69 #endif // _KE_ENV_H_ 70