Index: uspace/lib/usb/include/usb/classes/hidparser.h
===================================================================
--- uspace/lib/usb/include/usb/classes/hidparser.h	(revision 6e3b9a58b081735910fd5e1021d0427056ca9eb3)
+++ uspace/lib/usb/include/usb/classes/hidparser.h	(revision fc5ed5dee7e65b8744a655665eee2259fa6febc4)
@@ -52,14 +52,25 @@
  * Input/Output/Feature Item flags
  */
-#define USB_HID_ITEM_FLAG_CONSTANT(flags) 	(flags & 0x1)
-#define USB_HID_ITEM_FLAG_VARIABLE(flags) 	(flags & 0x2)
-#define USB_HID_ITEM_FLAG_RELATIVE(flags) 	(flags & 0x4)
-#define USB_HID_ITEM_FLAG_WRAP(flags)		(flags & 0x8)
-#define USB_HID_ITEM_FLAG_LINEAR(flags)		(flags & 0x10)
-#define USB_HID_ITEM_FLAG_PREFERRED(flags)	(flags & 0x20)
-#define USB_HID_ITEM_FLAG_POSITION(flags)	(flags & 0x40)
-#define USB_HID_ITEM_FLAG_VOLATILE(flags)	(flags & 0x80)
-#define USB_HID_ITEM_FLAG_BUFFERED(flags)	(flags & 0x100)
-
+/** Constant (1) / Variable (0) */
+#define USB_HID_ITEM_FLAG_CONSTANT(flags) 	((flags & 0x1) == 0x1)
+/** Variable (1) / Array (0) */
+#define USB_HID_ITEM_FLAG_VARIABLE(flags) 	((flags & 0x2) == 0x2)
+/** Absolute / Relative*/
+#define USB_HID_ITEM_FLAG_RELATIVE(flags) 	((flags & 0x4) == 0x4)
+/** Wrap / No Wrap */
+#define USB_HID_ITEM_FLAG_WRAP(flags)		((flags & 0x8) == 0x8)
+#define USB_HID_ITEM_FLAG_LINEAR(flags)		((flags & 0x10) == 0x10)
+#define USB_HID_ITEM_FLAG_PREFERRED(flags)	((flags & 0x20) == 0x20)
+#define USB_HID_ITEM_FLAG_POSITION(flags)	((flags & 0x40) == 0x40)
+#define USB_HID_ITEM_FLAG_VOLATILE(flags)	((flags & 0x80) == 0x80)
+#define USB_HID_ITEM_FLAG_BUFFERED(flags)	((flags & 0x100) == 0x100)
+
+
+/**
+ * Description of path of usage pages and usages in report descriptor
+ */
+typedef struct {
+	int32_t usage_page;
+} usb_hid_report_path_t;
 
 /**
@@ -185,4 +196,7 @@
     const usb_hid_report_in_callbacks_t *callbacks, void *arg);
 
+int usb_hid_report_input_length(const usb_hid_report_parser_t *parser,
+	const usb_hid_report_path_t *path);
+
 
 void usb_hid_free_report_parser(usb_hid_report_parser_t *parser);
