virtual_oss: Use virtual_oss_timestamp() to avoid duplication

Sponsored by:	The FreeBSD Foundation
MFC after:	1 week
This commit is contained in:
Christos Margiolis
2026-03-08 00:46:28 +01:00
parent 3a410851bf
commit e75c8faf27
+13 -16
View File
@@ -41,6 +41,18 @@
#include "backend.h"
#include "int.h"
uint64_t
virtual_oss_timestamp(void)
{
struct timespec ts;
uint64_t nsec;
clock_gettime(CLOCK_MONOTONIC, &ts);
nsec = ts.tv_sec * 1000000000ULL + ts.tv_nsec;
return (nsec);
}
uint64_t
virtual_oss_delay_ns(void)
{
@@ -56,31 +68,16 @@ virtual_oss_delay_ns(void)
void
virtual_oss_wait(void)
{
struct timespec ts;
uint64_t delay;
uint64_t nsec;
clock_gettime(CLOCK_MONOTONIC, &ts);
nsec = ts.tv_sec * 1000000000ULL + ts.tv_nsec;
nsec = virtual_oss_timestamp();
delay = virtual_oss_delay_ns();
usleep((delay - (nsec % delay)) / 1000);
}
uint64_t
virtual_oss_timestamp(void)
{
struct timespec ts;
uint64_t nsec;
clock_gettime(CLOCK_MONOTONIC, &ts);
nsec = ts.tv_sec * 1000000000ULL + ts.tv_nsec;
return (nsec);
}
static size_t
vclient_read_linear(struct virtual_client *pvc, struct virtual_ring *pvr,
int64_t *dst, size_t total) __requires_exclusive(atomic_mtx)