dxd - dynax driver framework 3.0.2
cross platform open source driver development framework
Loading...
Searching...
No Matches
dxd_sync_platform.h File Reference
#include <bcrypt.h>
Include dependency graph for wdm/dxd_sync_platform.h:
This graph shows which files directly or indirectly include this file:

Classes

class  dxd::__atomic_pointer<type_t *>
class  dxd::__atomic_scalar<4, type_t>
 32bit atomic operations More...
class  dxd::__atomic_scalar<8, type_t>
 64bit atomic operations More...
class  dxd::event<dx::kernel>
 kernel event: auto reset, as a WDM synchronization event More...
class  dxd::event<dx::user>
 kernel representation of user space event More...
class  dxd::lock<lock_t>
class  dxd::mutex
 mutex More...
class  dxd::process
 a process: launch() on a queue of its own, the event signalled on its way out More...
class  dxd::spinlock
 a dext runs at no interrupt level: what the kernel platforms take a spinlock for is a mutex here More...

Namespaces

namespace  dxd
 dynax driver framework kernel namespace

Enumerations

enum  dxd::scale : int64_t {
  dxd::nsec = 1ll , dxd::usec = 1000ll , dxd::msec = usec* 1000ll , dxd::sec = msec* 1000ll ,
  dxd::nsec = 1ll , dxd::usec = 1000ll , dxd::msec = usec* 1000ll , dxd::sec = msec* 1000ll
}
 the factors a kernel timestamp is scaled by - the system's unit is 100 ns, so nsec is no unit of its own here More...

Functions

void dxd::delay(int64_t time)
 DriverKit: spin the calling thread; a dext has no thread of its own to put to sleep.
unsigned int dxd::prio()
 the level the calling code runs at: a dext runs at none, its queues serialize instead
os_result dxd::random(void* buffer, size_t size)
 DriverKit: bytes of the kernel's cryptographic random generator.
int64_t dxd::time()
 DriverKit: uptime in ns - the clock IOTimerDispatchSource::WakeAtTime(kIOTimerClockUptimeRaw) takes its deadlines in.
int64_t dxd::time(int64_t timestamp, scalescale scalescale)
 a timestamp's span in the given unit: the timestamps are ns already
int64_t dxd::timestamp()
 WDK: high precision timestamp.
int64_t dxd::timestamp_offset(int64_t time, scalescale scalescale=usec)
 WDK: time span to timestamp span converter.