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 "dxd_platform.h"
#include <time.h>
#include <DriverKit/IOLib.h>
#include <DriverKit/IOUserClient.h>
#include <DriverKit/IODispatchQueue.h>
#include <DriverKit/IOTimerDispatchSource.h>
Include dependency graph for driverkit/dxd_sync_platform.h:

Classes

class  dxd::__atomic_pointer<type_t *>
class  dxd::__atomic_scalar<int, type_t>
 atomic scalar on the compiler's builtins - a dext has no interlocked KPI and needs none More...
struct  dxd::completion
 the IOCTL call in flight on a client, which a user event registered by that call binds to 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
}

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.