|
dxd - dynax driver framework 3.0.2
cross platform open source driver development framework
|
what the user client shell (dxd_user_client) serves: a device's client or the driver's More...
#include <dxd_platform_session.h>
Public Member Functions | |
| virtual void | close()= 0 |
| os_result | dispatch(uint64_t selector, ::IOUserClientMethodArguments* arguments) |
| virtual os_result | memory(uint64_t, uint64_t *, ::IOMemoryDescriptor **) |
| the descriptor IOConnectMapMemory64(type) maps into the client - what the pointer IOCTLs answer with on this platform | |
| virtual os_result | open()= 0 |
| the shell's Start and Stop: the client's launch() and conclude() | |
| virtual | ~session()= default |
Public Attributes | |
| ::OSAction* | action= nullptr |
| ::IODispatchQueue* | queue= nullptr |
| ::IOUserClient* | user_client= nullptr |
Protected Member Functions | |
| virtual os_result | call(unsigned int ioctl, const void* in, size_t size_in, void* out, size_t size_out, size_t& size)= 0 |
| the client's IOCTL | |
what the user client shell (dxd_user_client) serves: a device's client or the driver's
The OS object stays with the shell, which hands itself in through attach(); dispatch() is IOUserClient::ExternalMethod as the client's IOCTL: scalars or the inline struct buffers, descriptors past the inline limit mapped here, the struct output allocated as the OSData DriverKit returns. While an IOCTL runs, its completion is what a user event registered by that IOCTL binds to.
|
virtualdefault |
|
protectedpure virtual |
the client's IOCTL
Implemented in dxd::platform::device::client, and dxd::platform::driver::client.
|
pure virtual |
Implemented in dxd::platform::device::client, and dxd::platform::driver::client.
|
inline |
|
inlinevirtual |
the descriptor IOConnectMapMemory64(type) maps into the client - what the pointer IOCTLs answer with on this platform
Reimplemented in dxd::platform::device::client.
|
pure virtual |
the shell's Start and Stop: the client's launch() and conclude()
Implemented in dxd::platform::device::client, and dxd::platform::driver::client.
|
inherited |
|
inherited |
|
inherited |