Lines Matching refs:group
57 etm_group_t *group; // which group this channel belongs to member
69 etm_group_t *group = NULL; in etm_acquire_group_handle() local
74 group = heap_caps_calloc(1, sizeof(etm_group_t), ETM_MEM_ALLOC_CAPS); in etm_acquire_group_handle()
75 if (group) { in etm_acquire_group_handle()
77 s_platform.groups[group_id] = group; // register to platform in etm_acquire_group_handle()
79 group->group_id = group_id; in etm_acquire_group_handle()
80 group->spinlock = (portMUX_TYPE)portMUX_INITIALIZER_UNLOCKED; in etm_acquire_group_handle()
86 etm_hal_init(&group->hal); in etm_acquire_group_handle()
89 group = s_platform.groups[group_id]; in etm_acquire_group_handle()
91 if (group) { in etm_acquire_group_handle()
98 ESP_LOGD(TAG, "new group (%d) at %p", group_id, group); in etm_acquire_group_handle()
101 return group; in etm_acquire_group_handle()
104 static void etm_release_group_handle(etm_group_t *group) in etm_release_group_handle() argument
106 int group_id = group->group_id; in etm_release_group_handle()
120 free(group); in etm_release_group_handle()
127 etm_group_t *group = NULL; in etm_chan_register_to_group() local
130 group = etm_acquire_group_handle(i); in etm_chan_register_to_group()
131 ESP_RETURN_ON_FALSE(group, ESP_ERR_NO_MEM, TAG, "no mem for group (%d)", i); in etm_chan_register_to_group()
133 portENTER_CRITICAL(&group->spinlock); in etm_chan_register_to_group()
135 if (!group->chans[j]) { in etm_chan_register_to_group()
137 group->chans[j] = chan; in etm_chan_register_to_group()
141 portEXIT_CRITICAL(&group->spinlock); in etm_chan_register_to_group()
143 etm_release_group_handle(group); in etm_chan_register_to_group()
144 group = NULL; in etm_chan_register_to_group()
147 chan->group = group; in etm_chan_register_to_group()
157 etm_group_t *group = chan->group; in etm_chan_unregister_from_group() local
159 portENTER_CRITICAL(&group->spinlock); in etm_chan_unregister_from_group()
160 group->chans[chan_id] = NULL; in etm_chan_unregister_from_group()
161 portEXIT_CRITICAL(&group->spinlock); in etm_chan_unregister_from_group()
163 etm_release_group_handle(group); in etm_chan_unregister_from_group()
168 if (chan->group) { in etm_chan_destroy()
188 etm_group_t *group = chan->group; in esp_etm_new_channel() local
189 int group_id = group->group_id; in esp_etm_new_channel()
208 etm_group_t *group = chan->group; in esp_etm_del_channel() local
209 int group_id = group->group_id; in esp_etm_del_channel()
213 etm_ll_channel_set_event(group->hal.regs, chan_id, 0); in esp_etm_del_channel()
214 etm_ll_channel_set_task(group->hal.regs, chan_id, 0); in esp_etm_del_channel()
226 etm_group_t *group = chan->group; in esp_etm_channel_enable() local
227 etm_ll_enable_channel(group->hal.regs, chan->chan_id); in esp_etm_channel_enable()
236 etm_group_t *group = chan->group; in esp_etm_channel_disable() local
237 etm_ll_disable_channel(group->hal.regs, chan->chan_id); in esp_etm_channel_disable()
245 etm_group_t *group = chan->group; in esp_etm_channel_connect() local
256 etm_ll_channel_set_event(group->hal.regs, chan->chan_id, event_id); in esp_etm_channel_connect()
257 etm_ll_channel_set_task(group->hal.regs, chan->chan_id, task_id); in esp_etm_channel_connect()
279 etm_group_t *group = NULL; in esp_etm_dump() local
286 group = etm_acquire_group_handle(i); in esp_etm_dump()
287 ESP_RETURN_ON_FALSE(group, ESP_ERR_NO_MEM, TAG, "no mem for group (%d)", i); in esp_etm_dump()
288 etm_hal_context_t *hal = &group->hal; in esp_etm_dump()
291 portENTER_CRITICAL(&group->spinlock); in esp_etm_dump()
292 etm_chan = group->chans[j]; in esp_etm_dump()
312 portEXIT_CRITICAL(&group->spinlock); in esp_etm_dump()
317 etm_release_group_handle(group); in esp_etm_dump()