1 /* 2 * Copyright (C) 2015-2017 Alibaba Group Holding Limited 3 */ 4 5 #ifndef K_HOOK_H 6 #define K_HOOK_H 7 8 #ifdef __cplusplus 9 extern "C" { 10 #endif 11 12 /** @addtogroup aos_rhino hook 13 * OS hook, called when specific OS operations 14 * 15 * @{ 16 */ 17 18 #if (RHINO_CONFIG_USER_HOOK > 0) 19 20 /** 21 * Called in 'krhino_init' - initialization process 22 * 23 * @return none 24 */ 25 void krhino_init_hook(void); 26 27 /** 28 * Called in 'krhino_start' - just before the first task runs 29 * 30 * @return none 31 */ 32 void krhino_start_hook(void); 33 34 /** 35 * Called in 'krhino_task_create' and 'krhino_task_dyn_create' 36 * 37 * @param[in] task pointer to the created task 38 * 39 * @return none 40 */ 41 void krhino_task_create_hook(ktask_t *task); 42 43 /** 44 * Called in 'krhino_task_del_hook' and 'krhino_task_dyn_del' 45 * 46 * @param[in] task pointer to the deleted task 47 * @param[in] arg useless now 48 * 49 * @return none 50 */ 51 void krhino_task_del_hook(ktask_t *task, res_free_t *arg); 52 53 /** 54 * Called in 'krhino_task_wait_abort' and 'krhino_task_cancel' 55 * 56 * @param[in] task pointer to the canceled and abort task 57 * 58 * @return none 59 */ 60 void krhino_task_abort_hook(ktask_t *task); 61 62 /** 63 * Called when task switching 64 * 65 * @param[in] orgin pointer to the switch out task 66 * @param[in] dest pointer to the switch in task 67 * 68 * @return none 69 */ 70 void krhino_task_switch_hook(ktask_t *orgin, ktask_t *dest); 71 72 /** 73 * Called in every system tick process 74 * 75 * @return none 76 */ 77 void krhino_tick_hook(void); 78 79 /** 80 * Called in idle task loop 81 * 82 * @return none 83 */ 84 void krhino_idle_hook(void); 85 86 /** 87 * Called before idle task loop 88 * 89 * @return none 90 */ 91 void krhino_idle_pre_hook(void); 92 93 /** 94 * Called in 'krhino_mm_alloc' 95 * 96 * @param[in] mem alloced memory block 97 * @param[in] size alloced size 98 * 99 * @return none 100 */ 101 void krhino_mm_alloc_hook(void *mem, size_t size); 102 #endif 103 104 /** @} */ 105 106 #ifdef __cplusplus 107 } 108 #endif 109 110 #endif /* K_HOOK_H */ 111 112