dxd - dynax driver framework 3.0.2
cross platform open source driver development framework
Loading...
Searching...
No Matches
dxd::platform::session Class Referenceabstract

what the user client shell (dxd_user_client) serves: a device's client or the driver's More...

#include <dxd_platform_session.h>

Inheritance diagram for dxd::platform::session:
Collaboration diagram for dxd::platform::session:

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

Detailed Description

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.

Constructor & Destructor Documentation

◆ ~session()

virtual dxd::platform::session::~session()
virtualdefault

Member Function Documentation

◆ call()

virtual os_result dxd::platform::session::call(unsigned int ioctl, const void* in, size_t size_in, void* out, size_t size_out, size_t& size)
protectedpure virtual

the client's IOCTL

Implemented in dxd::platform::device::client, and dxd::platform::driver::client.

Here is the caller graph for this function:

◆ close()

virtual void dxd::platform::session::close()
pure virtual

◆ dispatch()

os_result dxd::platform::session::dispatch(uint64_t selector, ::IOUserClientMethodArguments* arguments)
inline
Here is the call graph for this function:

◆ memory()

virtual os_result dxd::platform::session::memory(uint64_t, uint64_t*, ::IOMemoryDescriptor**)
inlinevirtual

the descriptor IOConnectMapMemory64(type) maps into the client - what the pointer IOCTLs answer with on this platform

Reimplemented in dxd::platform::device::client.

◆ open()

virtual os_result dxd::platform::session::open()
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.

Member Data Documentation

◆ action

::OSAction* dxd::completion::action= nullptr
inherited

◆ queue

::IODispatchQueue* dxd::completion::queue= nullptr
inherited

◆ user_client

::IOUserClient* dxd::completion::user_client= nullptr
inherited

The documentation for this class was generated from the following file: