#ifdef __MACH__
#define user_client DX_CLIENT
#endif
#ifdef __MACH__
virtual bool start(::IOService* provider){
device= OSDynamicCast(user_device, provider);
if(!super::start(provider))
return false;
return true;
}
#endif
dxd::os_result launch() override{
return super::launch();
}
super::conclude();
}
unsigned int ioctl,
size_t size_in,
size_t size_out,
)override{
switch(ioctl){
case my_namespace::version:{
try(
status= (!size_in && size_out==
sizeof(
unsigned int))? dxd::ok:
dxd::
invalid);
break;
}
}
}
public:
#ifdef WIN32
#endif
};
#ifdef __MACH__
#endif
#ifdef WIN32
dxd::client*user_device::client_create(){
return new user_client(
this);};
#endif
Definition iokit/dxd_device.h:360
@ in
Definition driverkit/dxd_memory.h:55
@ out
Definition driverkit/dxd_memory.h:56
uint64_t size() const
DriverKit memory size.
Definition driverkit/dxd_memory.h:131
#define DX_VERSION32
Definition dx_macros.h:76
unsigned int uint32_t
Definition dxd_base.h:110
#define device
IOKit: generic device.
Definition iokit/dxd_device.h:84
ioctl
DX IOCTLs convetion char namespace indentifier: lower case user mode: upper case kernel.
Definition macOS/dx_platform.h:119
dynax driver framework kernel namespace
Definition dxd_endian.h:29
@ invalid
Definition iokit/dxd_platform.h:106
The plist containing the user client magic: [...]
<key>IOKitPersonalities</key>
<dict>
<key>DX_PRODUCT</key>
<dict>
[...]
<key>IOUserClientClass</key>
<string>DX_CLIENT</string>
[...]
</dict>
</dict>
[...]