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

Generated by: LCOV version 1.14