71 #include <amxc/amxc_macros.h>
72 #include <amxc/amxc.h>
73 #include <amxp/amxp_timer.h>
121 amxc_string_clean(&task->
path);
135 when_null_trace(task, exit, ERROR,
"Failed to allocate memory");
137 amxc_string_init(&task->
path, 0);
138 amxc_string_set(&task->
path, path);
141 SAH_TRACEZ_ERROR(
ME,
"Failed to append task to 's_rth_tasks'");
142 SAH_TRACEZ_ERROR(
ME,
" path='%s'", path);
154 const char* path = amxc_string_get(&task->
path, 0);
180 SAH_TRACEZ_WARNING(
ME,
"No tasks");
188 uint32_t n_ethernet_unis;
192 task = amxc_llist_it_get_data(it,
rth_task_t, it);
193 path = amxc_string_get(&task->
path, 0);
200 path, n_ethernet_unis, n_anis, task->
cntr);
201 if((n_ethernet_unis != 0) && (n_anis != 0)) {
204 SAH_TRACEZ_WARNING(
ME,
"Enable %s despite n_ethernet_unis=%d n_anis=%d",
205 path, n_ethernet_unis, n_anis);
215 amxc_llist_it_take(it);
221 amxp_timer_start(timer, 1000);
230 SAH_TRACEZ_ERROR(
ME,
"Failed to create timer to handle tasks");
237 SAH_TRACEZ_WARNING(
ME,
"size(s_rth_tasks)=%zd != 0",
265 task = amxc_llist_it_get_data(it,
rth_task_t, it);
266 path = amxc_string_get(&task->
path, 0);
267 if(strncmp(path,
object, strlen(
object)) == 0) {
293 task = amxc_llist_it_get_data(it,
rth_task_t, it);
294 path = amxc_string_get(&task->
path, 0);
295 if(strcmp(
object, path) == 0) {
296 amxc_llist_it_take(it);
uint32_t dm_get_nr_of_ani_instances(const char *const onu_path)
uint32_t dm_get_nr_of_ethernet_uni_instances(const char *const onu_path)
object_id_t dm_get_object_id(const char *path)
enum _xpon_object_id object_id_t
void pon_ctrl_set_enable(const char *const path, bool enable)
static void rth_task_delete(amxc_llist_it_t *hit)
static rth_task_t * rth_task_create(const char *const path)
void rth_schedule_enable(const char *const object)
static const uint8_t MAX_CHECKS_ON_NR_OF_UNIS_AND_ANIS
struct _rth_task rth_task_t
static amxc_llist_t s_rth_tasks
static void handle_rth_tasks(amxp_timer_t *timer, UNUSED void *priv)
static void rth_task_clean(rth_task_t *const task)
static amxp_timer_t * s_timer_handle_rth_tasks
void rth_disable(const char *const object)
#define SAH_TRACEZ_DEBUG(zone, format,...)