| 123456789101112131415161718192021222324252627282930 |
- /*
- * Copyright (c) 2025, sakumisu
- *
- * SPDX-License-Identifier: Apache-2.0
- */
- #ifndef EC_PERF_H
- #define EC_PERF_H
- typedef struct {
- bool enable; // Enable performance measurement
- uint64_t count; // Current measurement count
- uint64_t min_interval; // Minimum interval
- uint64_t max_interval; // Maximum interval
- int64_t min_jitter; // Minimum jitter
- int64_t max_jitter; // Maximum jitter
- uint64_t total_interval; // Total interval time
- int64_t total_jitter; // Total jitter (for average calculation)
- uint32_t ignore_count; // Number of ignored measurements
- uint64_t last_timestamp; // Last interrupt timestamp
- uint64_t expected_interval; // Expected interrupt interval
- } ec_perf_t;
- void ec_perf_init(ec_perf_t *perf, uint64_t expected_interval_us);
- void ec_perf_polling(ec_perf_t *perf);
- bool ec_perf_is_complete(ec_perf_t *perf);
- void ec_perf_print_statistics(ec_perf_t *perf);
- #endif
|