Commit 2e3a0dac authored by Rémi Bernon's avatar Rémi Bernon Committed by Alexandre Julliard

hidclass.sys: Rename WINE_HIDP_PREPARSED_DATA to struct hid_preparsed_data.

parent 656691fe
......@@ -96,7 +96,7 @@ static inline const char *debugstr_hid_value_caps( struct hid_value_caps *caps )
caps->units, caps->units_exp, caps->logical_min, caps->logical_max, caps->physical_min, caps->physical_max );
}
static void debug_print_preparsed(WINE_HIDP_PREPARSED_DATA *data)
static void debug_print_preparsed( struct hid_preparsed_data *data )
{
unsigned int i, end;
if (TRACE_ON(hid))
......@@ -391,19 +391,19 @@ static void free_parser_state( struct hid_parser_state *state )
free( state );
}
static WINE_HIDP_PREPARSED_DATA *build_preparsed_data( struct hid_parser_state *state )
static struct hid_preparsed_data *build_preparsed_data( struct hid_parser_state *state )
{
WINE_HIDP_PREPARSED_DATA *data;
struct hid_preparsed_data *data;
struct hid_value_caps *caps;
DWORD i, button, filler, caps_len, size;
caps_len = state->caps.NumberInputValueCaps + state->caps.NumberOutputValueCaps +
state->caps.NumberFeatureValueCaps + state->caps.NumberLinkCollectionNodes;
size = FIELD_OFFSET( WINE_HIDP_PREPARSED_DATA, value_caps[caps_len] );
size = FIELD_OFFSET( struct hid_preparsed_data, value_caps[caps_len] );
if (!(data = calloc( 1, size ))) return NULL;
data->magic = HID_MAGIC;
data->dwSize = size;
data->size = size;
data->caps = state->caps;
data->value_caps_count[HidP_Input] = state->caps.NumberInputValueCaps;
data->value_caps_count[HidP_Output] = state->caps.NumberOutputValueCaps;
......@@ -449,9 +449,9 @@ static WINE_HIDP_PREPARSED_DATA *build_preparsed_data( struct hid_parser_state *
return data;
}
WINE_HIDP_PREPARSED_DATA *parse_descriptor( BYTE *descriptor, unsigned int length )
struct hid_preparsed_data *parse_descriptor( BYTE *descriptor, unsigned int length )
{
WINE_HIDP_PREPARSED_DATA *data = NULL;
struct hid_preparsed_data *data = NULL;
struct hid_parser_state *state;
UINT32 size, value;
INT32 signed_value;
......
......@@ -114,7 +114,7 @@ static void HID_Device_processQueue(DEVICE_OBJECT *device)
IRP *irp;
BASE_DEVICE_EXTENSION *ext = device->DeviceExtension;
UINT buffer_size = RingBuffer_GetBufferSize(ext->u.pdo.ring_buffer);
const WINE_HIDP_PREPARSED_DATA *data = ext->u.pdo.preparsed_data;
struct hid_preparsed_data *preparsed = ext->u.pdo.preparsed_data;
HID_XFER_PACKET *packet;
packet = malloc(buffer_size);
......@@ -127,7 +127,7 @@ static void HID_Device_processQueue(DEVICE_OBJECT *device)
if (buffer_size)
{
TRACE_(hid_report)("Processing Request (%i)\n",ptr);
memcpy( irp->AssociatedIrp.SystemBuffer, packet + 1, data->caps.InputReportByteLength );
memcpy( irp->AssociatedIrp.SystemBuffer, packet + 1, preparsed->caps.InputReportByteLength );
irp->IoStatus.Information = packet->reportBufferLen;
irp->IoStatus.Status = STATUS_SUCCESS;
}
......@@ -145,9 +145,9 @@ static DWORD CALLBACK hid_device_thread(void *args)
{
DEVICE_OBJECT *device = (DEVICE_OBJECT*)args;
BASE_DEVICE_EXTENSION *ext = device->DeviceExtension;
const WINE_HIDP_PREPARSED_DATA *data = ext->u.pdo.preparsed_data;
BYTE report_id = HID_INPUT_VALUE_CAPS( data )->report_id;
ULONG buffer_len = data->caps.InputReportByteLength;
struct hid_preparsed_data *preparsed = ext->u.pdo.preparsed_data;
BYTE report_id = HID_INPUT_VALUE_CAPS( preparsed )->report_id;
ULONG buffer_len = preparsed->caps.InputReportByteLength;
IO_STATUS_BLOCK io;
HID_XFER_PACKET *packet;
BYTE *buffer;
......@@ -263,17 +263,17 @@ static void handle_IOCTL_HID_GET_COLLECTION_INFORMATION( IRP *irp, BASE_DEVICE_E
static void handle_IOCTL_HID_GET_COLLECTION_DESCRIPTOR( IRP *irp, BASE_DEVICE_EXTENSION *ext )
{
IO_STACK_LOCATION *irpsp = IoGetCurrentIrpStackLocation( irp );
const WINE_HIDP_PREPARSED_DATA *data = ext->u.pdo.preparsed_data;
struct hid_preparsed_data *preparsed = ext->u.pdo.preparsed_data;
if (irpsp->Parameters.DeviceIoControl.OutputBufferLength < data->dwSize)
if (irpsp->Parameters.DeviceIoControl.OutputBufferLength < preparsed->size)
{
irp->IoStatus.Status = STATUS_INVALID_BUFFER_SIZE;
irp->IoStatus.Information = 0;
}
else
{
memcpy(irp->UserBuffer, data, data->dwSize);
irp->IoStatus.Information = data->dwSize;
memcpy( irp->UserBuffer, preparsed, preparsed->size );
irp->IoStatus.Information = preparsed->size;
irp->IoStatus.Status = STATUS_SUCCESS;
}
}
......@@ -301,7 +301,7 @@ static void handle_minidriver_string( BASE_DEVICE_EXTENSION *ext, IRP *irp, SHOR
static void hid_device_xfer_report( BASE_DEVICE_EXTENSION *ext, ULONG code, IRP *irp )
{
WINE_HIDP_PREPARSED_DATA *preparsed = ext->u.pdo.preparsed_data;
struct hid_preparsed_data *preparsed = ext->u.pdo.preparsed_data;
IO_STACK_LOCATION *stack = IoGetCurrentIrpStackLocation( irp );
struct hid_value_caps *caps = NULL, *caps_end = NULL;
ULONG report_len = 0, buffer_len = 0;
......@@ -523,10 +523,10 @@ NTSTATUS WINAPI pdo_read(DEVICE_OBJECT *device, IRP *irp)
{
HID_XFER_PACKET *packet;
BASE_DEVICE_EXTENSION *ext = device->DeviceExtension;
const WINE_HIDP_PREPARSED_DATA *data = ext->u.pdo.preparsed_data;
struct hid_preparsed_data *preparsed = ext->u.pdo.preparsed_data;
UINT buffer_size = RingBuffer_GetBufferSize(ext->u.pdo.ring_buffer);
IO_STACK_LOCATION *irpsp = IoGetCurrentIrpStackLocation(irp);
BYTE report_id = HID_INPUT_VALUE_CAPS( data )->report_id;
BYTE report_id = HID_INPUT_VALUE_CAPS( preparsed )->report_id;
NTSTATUS status;
int ptr = -1;
BOOL removed;
......@@ -543,7 +543,7 @@ NTSTATUS WINAPI pdo_read(DEVICE_OBJECT *device, IRP *irp)
return STATUS_DELETE_PENDING;
}
if (irpsp->Parameters.Read.Length < data->caps.InputReportByteLength)
if (irpsp->Parameters.Read.Length < preparsed->caps.InputReportByteLength)
{
irp->IoStatus.Status = STATUS_INVALID_BUFFER_SIZE;
IoCompleteRequest( irp, IO_NO_INCREMENT );
......@@ -558,7 +558,7 @@ NTSTATUS WINAPI pdo_read(DEVICE_OBJECT *device, IRP *irp)
if (buffer_size)
{
memcpy( irp->AssociatedIrp.SystemBuffer, packet + 1, data->caps.InputReportByteLength );
memcpy( irp->AssociatedIrp.SystemBuffer, packet + 1, preparsed->caps.InputReportByteLength );
irp->IoStatus.Information = packet->reportBufferLen;
irp->IoStatus.Status = STATUS_SUCCESS;
}
......
......@@ -54,7 +54,7 @@ typedef struct _BASE_DEVICE_EXTENSION
DEVICE_OBJECT *parent_fdo;
HID_COLLECTION_INFORMATION information;
WINE_HIDP_PREPARSED_DATA *preparsed_data;
struct hid_preparsed_data *preparsed_data;
ULONG poll_interval;
struct ReportRingBuffer *ring_buffer;
......@@ -123,4 +123,4 @@ NTSTATUS WINAPI pdo_create(DEVICE_OBJECT *device, IRP *irp) DECLSPEC_HIDDEN;
NTSTATUS WINAPI pdo_close(DEVICE_OBJECT *device, IRP *irp) DECLSPEC_HIDDEN;
/* Parsing HID Report Descriptors into preparsed data */
WINE_HIDP_PREPARSED_DATA *parse_descriptor( BYTE *descriptor, unsigned int length ) DECLSPEC_HIDDEN;
struct hid_preparsed_data *parse_descriptor( BYTE *descriptor, unsigned int length ) DECLSPEC_HIDDEN;
......@@ -260,7 +260,7 @@ static void create_child(minidriver *minidriver, DEVICE_OBJECT *fdo)
return;
}
pdo_ext->u.pdo.information.DescriptorSize = pdo_ext->u.pdo.preparsed_data->dwSize;
pdo_ext->u.pdo.information.DescriptorSize = pdo_ext->u.pdo.preparsed_data->size;
page = pdo_ext->u.pdo.preparsed_data->caps.UsagePage;
usage = pdo_ext->u.pdo.preparsed_data->caps.Usage;
......
......@@ -751,7 +751,7 @@ UINT WINAPI GetRawInputDeviceInfoW(HANDLE handle, UINT command, void *data, UINT
break;
case RIDI_PREPARSEDDATA:
len = device->data ? ((WINE_HIDP_PREPARSED_DATA*)device->data)->dwSize : 0;
len = device->data ? ((struct hid_preparsed_data *)device->data)->size : 0;
if (device->data && len <= data_len && data)
memcpy(data, device->data, len);
*data_size = len;
......
......@@ -67,14 +67,14 @@ struct hid_value_caps
#define HID_VALUE_CAPS_IS_ARRAY(c) (((c)->bit_field & 2) == 0)
#define HID_VALUE_CAPS_IS_BUTTON(c) ((c)->bit_size == 1 || HID_VALUE_CAPS_IS_ARRAY(c))
typedef struct __WINE_HIDP_PREPARSED_DATA
struct hid_preparsed_data
{
DWORD magic;
DWORD dwSize;
DWORD size;
HIDP_CAPS caps;
USHORT value_caps_count[3];
struct hid_value_caps value_caps[1];
} WINE_HIDP_PREPARSED_DATA, *PWINE_HIDP_PREPARSED_DATA;
};
#define HID_INPUT_VALUE_CAPS(d) ((d)->value_caps)
#define HID_OUTPUT_VALUE_CAPS(d) (HID_INPUT_VALUE_CAPS(d) + (d)->value_caps_count[0])
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment