20 lines
491 B
C
20 lines
491 B
C
#ifndef PING_STATS_H
|
|
#define PING_STATS_H
|
|
|
|
#include <stdint.h>
|
|
#include <stddef.h>
|
|
|
|
typedef struct s_ping_stats {
|
|
int64_t min_ns;
|
|
int64_t max_ns;
|
|
int64_t sum_ns;
|
|
int64_t sum_sq_ns; /* sum of (rtt_ns / 1000)^2 in us^2, to avoid overflow */
|
|
size_t count;
|
|
} t_ping_stats;
|
|
|
|
void ping_stats_init(t_ping_stats *s);
|
|
void ping_stats_update(t_ping_stats *s, int64_t rtt_ns);
|
|
void ping_stats_get(const t_ping_stats *s,
|
|
double *min_ms, double *max_ms, double *avg_ms, double *mdev_ms);
|
|
|
|
#endif
|