示例#1
0
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();
	}
}
示例#2
0
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;
}
示例#3
0
uint32_t sys_rand32_get(void)
{
	return _do_read_cpu_timestamp32();
}