LCOV - code coverage report
Current view: top level - vnsw/agent/services/multicast/agent_map - task_timer_api.h (source / functions) Hit Total Coverage
Test: OpenSDN C/C++ coverage (all TARGET_SET jobs) Lines: 1 1 100.0 %
Date: 2026-08-03 02:19:58 Functions: 1 1 100.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /*
       2             :  * Copyright (c) 2017 Juniper Networks, Inc. All rights reserved.
       3             :  */
       4             : 
       5             : #ifndef vnsw_agent_task_timer_api_h
       6             : #define vnsw_agent_task_timer_api_h
       7             : 
       8             : #include "mcast_common.h"
       9             : #include <time.h>
      10             : #include "task_int.h"
      11             : #include "task_thread_api.h"
      12             : 
      13             : typedef struct task_timer_ task_timer;
      14             : 
      15             : typedef void (*timer_callback)(task_timer *, time_t);
      16             : 
      17             : typedef struct task_timer_root_ {
      18             :     int placeholder;
      19             : } task_timer_root;
      20             : 
      21             : typedef struct task_timer_ {
      22             :     task *tp;
      23             :     void *agent_timer_map;
      24             :     timer_callback callback;
      25             :     int timeout;
      26             :     boolean oneshot;
      27             :     void *tdata;
      28             :     boolean rescheduled;
      29             :     task_thread deleted_entry;
      30             : } task_timer;
      31             : 
      32           1 : THREAD_TO_STRUCT(task_timer_list_entry, task_timer, deleted_entry);
      33             : 
      34             : typedef struct utime_t_ {
      35             :     time_t ut_sec;
      36             :     time_t ut_usec;
      37             : } utime_t;
      38             : 
      39             : #define MSECS_PER_SEC   1000
      40             : #define USECS_PER_MSEC  1000
      41             : 
      42             : extern void task_timer_init(task *tp);
      43             : extern void task_timer_cleanup_deleted(task *tp);
      44             : extern task_timer *task_timer_create_idle_leaf(task *tp, const char *name,
      45             :                 flag_t flags, task_timer *parent,
      46             :                 timer_callback tjob, void *data);
      47             : extern void task_timer_delete(task_timer *timer);
      48             : extern void task_timer_smear_auto_parent_timers(task_timer_root *root);
      49             : extern void task_timer_uset_alt_root_auto_parent_oneshot(task_timer_root *root,
      50             :                 task_timer *timer, utime_t *offset, uint32_t jitter);
      51             : extern void task_timer_reset(task_timer *timer);
      52             : extern task_timer_root *task_timer_get_auto_parent_root(void);
      53             : extern void *task_timer_data(task_timer *timer);
      54             : extern void task_timer_utime_left(task_timer *timer, utime_t *remaining);
      55             : extern boolean task_timer_running(task_timer *timer);
      56             : 
      57             : #endif /* vnsw_agent_task_timer_api_h */

Generated by: LCOV version 1.14