void dtls_timing_set_delay(void *data, uint32_t int_ms, uint32_t fin_ms) { struct dtls_timing_context *ctx = (struct dtls_timing_context *)data; ctx->int_ms = int_ms; ctx->fin_ms = fin_ms; if (fin_ms != 0) { ctx->snapshot = _do_read_cpu_timestamp32(); } }
int dtls_timing_get_delay(void *data) { struct dtls_timing_context *ctx = (struct dtls_timing_context *)data; unsigned long elapsed_ms; if (ctx->fin_ms == 0) { return -1; } elapsed_ms = ((_do_read_cpu_timestamp32() - ctx->snapshot) * 1000) / CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC; if (elapsed_ms >= ctx->fin_ms) return 2; if (elapsed_ms >= ctx->int_ms) return 1; return 0; }
uint32_t sys_rand32_get(void) { return _do_read_cpu_timestamp32(); }