virtual_oss: Use virtual_oss_timestamp() to avoid duplication
Sponsored by: The FreeBSD Foundation MFC after: 1 week
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user