#include <IOKit/IOKitLib.h>
#include <IOKit/hidsystem/IOHIDLib.h>
#include <IOKit/iokitmig.h>
kern_return_t
IOHIDCreateSharedMemory( mach_port_t connect,
unsigned int version )
{
kern_return_t err;
unsigned int len;
len = 0;
err = io_connect_method_scalarI_scalarO( connect, 0,
&version, 1, NULL, &len);
return( err);
}
kern_return_t
IOHIDSetEventsEnable( mach_port_t connect,
boolean_t enable )
{
kern_return_t err;
unsigned int len;
len = 0;
err = io_connect_method_scalarI_scalarO( connect, 1,
&enable, 1, NULL, &len);
return( err);
}
kern_return_t
IOHIDSetCursorEnable( mach_port_t connect,
boolean_t enable )
{
kern_return_t err;
unsigned int len;
len = 0;
err = io_connect_method_scalarI_scalarO( connect, 2,
&enable, 1, NULL, &len);
return( err);
}
kern_return_t
IOHIDPostEvent( mach_port_t connect,
int type, IOGPoint location, NXEventData *data,
boolean_t setCursor, int flags, boolean_t setFlags)
{
kern_return_t err;
unsigned int len;
struct evioLLEvent event;
event.setCursor = setCursor;
event.type = type;
event.location = location;
event.data = *data;
event.setFlags = setFlags;
event.flags = flags;
len = 0;
err = io_connect_method_structureI_structureO( connect, 3,
(void *)&event, sizeof( event), NULL, &len);
return( err);
}
kern_return_t
IOHIDSetMouseLocation( mach_port_t connect,
int x, int y)
{
kern_return_t err;
unsigned int len;
IOGPoint loc;
loc.x = x;
loc.y = y;
len = 0;
err = io_connect_method_structureI_structureO( connect, 4,
(void *)&loc, sizeof( loc), NULL, &len);
return( err);
}
kern_return_t
IOHIDGetButtonEventNum( mach_port_t connect,
NXMouseButton button, int * eventNum )
{
kern_return_t err;
unsigned int len;
len = 1;
err = io_connect_method_scalarI_scalarO( connect, 5,
(int *)&button, 1, (void *)eventNum, &len);
return( err);
}