|
dxd - dynax driver framework 3.0.2
cross platform open source driver development framework
|
#include "dxd_platform.h"#include <time.h>#include <DriverKit/IOLib.h>#include <DriverKit/IOUserClient.h>#include <DriverKit/IODispatchQueue.h>#include <DriverKit/IOTimerDispatchSource.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. | |