xref: /illumos-gate/usr/src/uts/common/io/usb/clients/hidparser/README (revision 77e515715b61e28fcf0c3f30936492888cecfd8b)
17c478bd9Sstevel@tonic-gate#
27c478bd9Sstevel@tonic-gate# CDDL HEADER START
37c478bd9Sstevel@tonic-gate#
47c478bd9Sstevel@tonic-gate# The contents of this file are subject to the terms of the
5*77e51571Sgongtian zhao - Sun Microsystems - Beijing China# Common Development and Distribution License (the "License").
6*77e51571Sgongtian zhao - Sun Microsystems - Beijing China# You may not use this file except in compliance with the License.
77c478bd9Sstevel@tonic-gate#
87c478bd9Sstevel@tonic-gate# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
97c478bd9Sstevel@tonic-gate# or http://www.opensolaris.org/os/licensing.
107c478bd9Sstevel@tonic-gate# See the License for the specific language governing permissions
117c478bd9Sstevel@tonic-gate# and limitations under the License.
127c478bd9Sstevel@tonic-gate#
137c478bd9Sstevel@tonic-gate# When distributing Covered Code, include this CDDL HEADER in each
147c478bd9Sstevel@tonic-gate# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
157c478bd9Sstevel@tonic-gate# If applicable, add the following below this CDDL HEADER, with the
167c478bd9Sstevel@tonic-gate# fields enclosed by brackets "[]" replaced with your own identifying
177c478bd9Sstevel@tonic-gate# information: Portions Copyright [yyyy] [name of copyright owner]
187c478bd9Sstevel@tonic-gate#
197c478bd9Sstevel@tonic-gate# CDDL HEADER END
207c478bd9Sstevel@tonic-gate#
217c478bd9Sstevel@tonic-gate/*
22*77e51571Sgongtian zhao - Sun Microsystems - Beijing China * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
237c478bd9Sstevel@tonic-gate * Use is subject to license terms.
247c478bd9Sstevel@tonic-gate */
257c478bd9Sstevel@tonic-gate
267c478bd9Sstevel@tonic-gate
277c478bd9Sstevel@tonic-gate
287c478bd9Sstevel@tonic-gate
297c478bd9Sstevel@tonic-gate
307c478bd9Sstevel@tonic-gate                  Hidparser: Solaris implementation
317c478bd9Sstevel@tonic-gate		  _________________________________
327c478bd9Sstevel@tonic-gate
337c478bd9Sstevel@tonic-gate
347c478bd9Sstevel@tonic-gateReport descriptors  are  basically  made of  items.   Items  can  be  'Main'
357c478bd9Sstevel@tonic-gateitems,  'Local' Items  and  'Global' Items. Local and  Global items  differ
367c478bd9Sstevel@tonic-gatein their  scope. Local  items  hold their value only   within the main item
377c478bd9Sstevel@tonic-gatein which  they are  defined  while global items retain their values through
387c478bd9Sstevel@tonic-gateout all main items  unless *redefined*.
397c478bd9Sstevel@tonic-gate
407c478bd9Sstevel@tonic-gateMain Items  are  collection,  input, output and  feature and end collection
417c478bd9Sstevel@tonic-gateitems. Each  of  the  main  items are represented by an 'entity_item' struc-
427c478bd9Sstevel@tonic-gateture.  Solaris    maintains   global and  local items  as a  linked list of
437c478bd9Sstevel@tonic-gateentity_attribute   structures  in the 'entity_item' structure.  Since local
447c478bd9Sstevel@tonic-gateitems are specific  to a main  item it   makes  sense to  keep  local items
457c478bd9Sstevel@tonic-gatewith in the main item.  List   of   global  items can't be kept as a single
467c478bd9Sstevel@tonic-gateglobal list because they  can   get redefined in any  subsequent main  item
477c478bd9Sstevel@tonic-gateand Solaris won't be able  to   know what  will  be the value for each main
487c478bd9Sstevel@tonic-gateitem. Hence they also  figure   in the list  maintained  by the entity_item
497c478bd9Sstevel@tonic-gatestructure.
507c478bd9Sstevel@tonic-gate
517c478bd9Sstevel@tonic-gateSo how do we construct the tree ?
527c478bd9Sstevel@tonic-gate
537c478bd9Sstevel@tonic-gateEach main item forms a sibling or child of another main item except for the
547c478bd9Sstevel@tonic-gateroot  main  item which will  always be a Collection main item. Each collect-
557c478bd9Sstevel@tonic-gateion item  should be closed  by  an end  collection.  So  root  collection's
567c478bd9Sstevel@tonic-gatesibling  will be an end  collection. Whatever  input,  output  and  feature
577c478bd9Sstevel@tonic-gateitems  which fall inside  a collection (please  see a collection as '{' and
587c478bd9Sstevel@tonic-gateend  collection as '}' in  'C' language) will  form a child  of  the parent
597c478bd9Sstevel@tonic-gatecollection  with each of  them  forming  a sibling  of  each  other. i.e if
607c478bd9Sstevel@tonic-gatean Input  main item comes  first within a  collection  then  it'll form the
617c478bd9Sstevel@tonic-gatechild of  the collection  with the subsequent  main  items  being linked as
627c478bd9Sstevel@tonic-gatesiblings  of each other.  When we reach an end collection, it must form the
637c478bd9Sstevel@tonic-gatesibling of  the collection.  This applies for nested collections  also. i.e
647c478bd9Sstevel@tonic-gateif a  collection falls within  another collection, it'll form  a  child  of
657c478bd9Sstevel@tonic-gatethe  parent collection with  the 'input','output' and 'feature' main  items
667c478bd9Sstevel@tonic-gatefalling within  the child collection forming a child  of child  collection.
677c478bd9Sstevel@tonic-gateWhatever falls  outside the child collection,but inside a parent collection
687c478bd9Sstevel@tonic-gatewill form a sibling of the child collection.
697c478bd9Sstevel@tonic-gate
707c478bd9Sstevel@tonic-gateWhen  hidparser starts, it'll get the raw  descriptor in a structure called
717c478bd9Sstevel@tonic-gate'hidparser_tok'  structure. Solaris  will  proceed by taking one byte first
727c478bd9Sstevel@tonic-gate(which sort of forms a header and  indicates  how many  to  follow for each
737c478bd9Sstevel@tonic-gateitem for the 'item data') and then proceeds to take the  value for the item
747c478bd9Sstevel@tonic-gate(which is the item data). This  'hidparser_tok'  structure  contains a list
757c478bd9Sstevel@tonic-gateof global and local items. As  and when the parser encounters a global item
767c478bd9Sstevel@tonic-gateit'll add it to the global item list. The same applies for local items also.
777c478bd9Sstevel@tonic-gateThe only difference is that if  a global item is getting redefined (i.e the
787c478bd9Sstevel@tonic-gateglobal item is already present  in the gitem list),  then "the global item"
797c478bd9Sstevel@tonic-gate(i.e one of the global item) is freed and the new one is put instead. Local
807c478bd9Sstevel@tonic-gateitems can get redefined without  disturbing the earlier  values.  This goes
817c478bd9Sstevel@tonic-gateon till a main item is encountered. When a  main  item  is encountered  the
827c478bd9Sstevel@tonic-gateglobal item list  is copied over to the entity_item structure and the local
837c478bd9Sstevel@tonic-gateitem list will start  where  the global item  list  stops ( in the 'entity_
847c478bd9Sstevel@tonic-gateattribute' list). Before we start on the next item the local item list will
857c478bd9Sstevel@tonic-gatebe freed (in the hidparser_tok  structure) but the global item list will be
867c478bd9Sstevel@tonic-gatemaintained since their scope is through out the report descriptor.
877c478bd9Sstevel@tonic-gate
887c478bd9Sstevel@tonic-gateThe two additions which has happened  in this  round  of  changes  are  the
897c478bd9Sstevel@tonic-gatesupport for push|pop and delimiter items. 'push' basically asks the  parser
907c478bd9Sstevel@tonic-gateto copy over the list of  global  items, while  'pop' takes the last pushed
917c478bd9Sstevel@tonic-gatelist as the current one. The entity_attribute_stack forms a stack of global
927c478bd9Sstevel@tonic-gateitem list pointers from which they can be pop-ed on the gitem list.'delimit-
937c478bd9Sstevel@tonic-gateer'items basically allows you to interpret the data that is  being received
947c478bd9Sstevel@tonic-gatedifferently depending on the way you use it and requires the parser to reco-
957c478bd9Sstevel@tonic-gategnize only the first 'usage' (which is what Solaris does with my changes).
967c478bd9Sstevel@tonic-gate
977c478bd9Sstevel@tonic-gate
987c478bd9Sstevel@tonic-gate___________________________________________________________________________
997c478bd9Sstevel@tonic-gate
1007c478bd9Sstevel@tonic-gateExample:
1017c478bd9Sstevel@tonic-gate
1027c478bd9Sstevel@tonic-gate
1037c478bd9Sstevel@tonic-gateFollowing is the report descriptor dump for Labtec Spaceball (you can  call
1047c478bd9Sstevel@tonic-gateit a mouse).
1057c478bd9Sstevel@tonic-gate
1067c478bd9Sstevel@tonic-gatehid1:   Index = 0       value =0x5
1077c478bd9Sstevel@tonic-gatehid1:   Index = 1       value =0x1
1087c478bd9Sstevel@tonic-gatehid1:   Index = 2       value =0x9
1097c478bd9Sstevel@tonic-gatehid1:   Index = 3       value =0x8
1107c478bd9Sstevel@tonic-gatehid1:   Index = 4       value =0xa1
1117c478bd9Sstevel@tonic-gatehid1:   Index = 5       value =0x1
1127c478bd9Sstevel@tonic-gatehid1:   Index = 6       value =0xa1
1137c478bd9Sstevel@tonic-gatehid1:   Index = 7       value =0x0
1147c478bd9Sstevel@tonic-gatehid1:   Index = 8       value =0x85
1157c478bd9Sstevel@tonic-gatehid1:   Index = 9       value =0x1
1167c478bd9Sstevel@tonic-gatehid1:   Index = 10      value =0x16
1177c478bd9Sstevel@tonic-gatehid1:   Index = 11      value =0x0
1187c478bd9Sstevel@tonic-gatehid1:   Index = 12      value =0x80
1197c478bd9Sstevel@tonic-gatehid1:   Index = 13      value =0x26
1207c478bd9Sstevel@tonic-gatehid1:   Index = 14      value =0xff
1217c478bd9Sstevel@tonic-gatehid1:   Index = 15      value =0x7f
1227c478bd9Sstevel@tonic-gatehid1:   Index = 16      value =0x9
1237c478bd9Sstevel@tonic-gatehid1:   Index = 17      value =0x30
1247c478bd9Sstevel@tonic-gatehid1:   Index = 18      value =0x9
1257c478bd9Sstevel@tonic-gatehid1:   Index = 19      value =0x31
1267c478bd9Sstevel@tonic-gatehid1:   Index = 20      value =0x9
1277c478bd9Sstevel@tonic-gatehid1:   Index = 21      value =0x32
1287c478bd9Sstevel@tonic-gatehid1:   Index = 22      value =0x75
1297c478bd9Sstevel@tonic-gatehid1:   Index = 23      value =0x10
1307c478bd9Sstevel@tonic-gatehid1:   Index = 24      value =0x95
1317c478bd9Sstevel@tonic-gatehid1:   Index = 25      value =0x3
1327c478bd9Sstevel@tonic-gatehid1:   Index = 26      value =0x81
1337c478bd9Sstevel@tonic-gatehid1:   Index = 27      value =0x2
1347c478bd9Sstevel@tonic-gatehid1:   Index = 28      value =0xc0
1357c478bd9Sstevel@tonic-gatehid1:   Index = 29      value =0xa1
1367c478bd9Sstevel@tonic-gatehid1:   Index = 30      value =0x0
1377c478bd9Sstevel@tonic-gatehid1:   Index = 31      value =0x85
1387c478bd9Sstevel@tonic-gatehid1:   Index = 32      value =0x2
1397c478bd9Sstevel@tonic-gatehid1:   Index = 33      value =0x9
1407c478bd9Sstevel@tonic-gatehid1:   Index = 34      value =0x33
1417c478bd9Sstevel@tonic-gatehid1:   Index = 35      value =0x9
1427c478bd9Sstevel@tonic-gatehid1:   Index = 36      value =0x34
1437c478bd9Sstevel@tonic-gatehid1:   Index = 37      value =0x9
1447c478bd9Sstevel@tonic-gatehid1:   Index = 38      value =0x35
1457c478bd9Sstevel@tonic-gatehid1:   Index = 39      value =0x75
1467c478bd9Sstevel@tonic-gatehid1:   Index = 40      value =0x10
1477c478bd9Sstevel@tonic-gatehid1:   Index = 41      value =0x95
1487c478bd9Sstevel@tonic-gatehid1:   Index = 42      value =0x3
1497c478bd9Sstevel@tonic-gatehid1:   Index = 43      value =0x81
1507c478bd9Sstevel@tonic-gatehid1:   Index = 44      value =0x2
1517c478bd9Sstevel@tonic-gatehid1:   Index = 45      value =0xc0
1527c478bd9Sstevel@tonic-gatehid1:   Index = 46      value =0xa1
1537c478bd9Sstevel@tonic-gatehid1:   Index = 47      value =0x2
1547c478bd9Sstevel@tonic-gatehid1:   Index = 48      value =0x85
1557c478bd9Sstevel@tonic-gatehid1:   Index = 49      value =0x3
1567c478bd9Sstevel@tonic-gatehid1:   Index = 50      value =0x5
1577c478bd9Sstevel@tonic-gatehid1:   Index = 51      value =0x1
1587c478bd9Sstevel@tonic-gatehid1:   Index = 52      value =0x9
1597c478bd9Sstevel@tonic-gatehid1:   Index = 53      value =0x3a
1607c478bd9Sstevel@tonic-gatehid1:   Index = 54      value =0x75
1617c478bd9Sstevel@tonic-gatehid1:   Index = 55      value =0x10
1627c478bd9Sstevel@tonic-gatehid1:   Index = 56      value =0x95
1637c478bd9Sstevel@tonic-gatehid1:   Index = 57      value =0x1
1647c478bd9Sstevel@tonic-gatehid1:   Index = 58      value =0x81
1657c478bd9Sstevel@tonic-gatehid1:   Index = 59      value =0x2
1667c478bd9Sstevel@tonic-gatehid1:   Index = 60      value =0x5
1677c478bd9Sstevel@tonic-gatehid1:   Index = 61      value =0x9
1687c478bd9Sstevel@tonic-gatehid1:   Index = 62      value =0x19
1697c478bd9Sstevel@tonic-gatehid1:   Index = 63      value =0x1
1707c478bd9Sstevel@tonic-gatehid1:   Index = 64      value =0x29
1717c478bd9Sstevel@tonic-gatehid1:   Index = 65      value =0xd
1727c478bd9Sstevel@tonic-gatehid1:   Index = 66      value =0x15
1737c478bd9Sstevel@tonic-gatehid1:   Index = 67      value =0x0
1747c478bd9Sstevel@tonic-gatehid1:   Index = 68      value =0x25
1757c478bd9Sstevel@tonic-gatehid1:   Index = 69      value =0x1
1767c478bd9Sstevel@tonic-gatehid1:   Index = 70      value =0x35
1777c478bd9Sstevel@tonic-gatehid1:   Index = 71      value =0x0
1787c478bd9Sstevel@tonic-gatehid1:   Index = 72      value =0x45
1797c478bd9Sstevel@tonic-gatehid1:   Index = 73      value =0x1
1807c478bd9Sstevel@tonic-gatehid1:   Index = 74      value =0x75
1817c478bd9Sstevel@tonic-gatehid1:   Index = 75      value =0x1
1827c478bd9Sstevel@tonic-gatehid1:   Index = 76      value =0x95
1837c478bd9Sstevel@tonic-gatehid1:   Index = 77      value =0xd
1847c478bd9Sstevel@tonic-gatehid1:   Index = 78      value =0x81
1857c478bd9Sstevel@tonic-gatehid1:   Index = 79      value =0x2
1867c478bd9Sstevel@tonic-gatehid1:   Index = 80      value =0x95
1877c478bd9Sstevel@tonic-gatehid1:   Index = 81      value =0x3
1887c478bd9Sstevel@tonic-gatehid1:   Index = 82      value =0x81
1897c478bd9Sstevel@tonic-gatehid1:   Index = 83      value =0x1
1907c478bd9Sstevel@tonic-gatehid1:   Index = 84      value =0xc0
1917c478bd9Sstevel@tonic-gatehid1:   Index = 85      value =0x5
1927c478bd9Sstevel@tonic-gatehid1:   Index = 86      value =0x1
1937c478bd9Sstevel@tonic-gatehid1:   Index = 87      value =0x9
1947c478bd9Sstevel@tonic-gatehid1:   Index = 88      value =0x3a
1957c478bd9Sstevel@tonic-gatehid1:   Index = 89      value =0xa1
1967c478bd9Sstevel@tonic-gatehid1:   Index = 90      value =0x2
1977c478bd9Sstevel@tonic-gatehid1:   Index = 91      value =0x15
1987c478bd9Sstevel@tonic-gatehid1:   Index = 92      value =0x80
1997c478bd9Sstevel@tonic-gatehid1:   Index = 93      value =0x25
2007c478bd9Sstevel@tonic-gatehid1:   Index = 94      value =0x7f
2017c478bd9Sstevel@tonic-gatehid1:   Index = 95      value =0x75
2027c478bd9Sstevel@tonic-gatehid1:   Index = 96      value =0x8
2037c478bd9Sstevel@tonic-gatehid1:   Index = 97      value =0x9
2047c478bd9Sstevel@tonic-gatehid1:   Index = 98      value =0x3a
2057c478bd9Sstevel@tonic-gatehid1:   Index = 99      value =0xa1
2067c478bd9Sstevel@tonic-gatehid1:   Index = 100     value =0x2
2077c478bd9Sstevel@tonic-gatehid1:   Index = 101     value =0x85
2087c478bd9Sstevel@tonic-gatehid1:   Index = 102     value =0x4
2097c478bd9Sstevel@tonic-gatehid1:   Index = 103     value =0x9
2107c478bd9Sstevel@tonic-gatehid1:   Index = 104     value =0x3a
2117c478bd9Sstevel@tonic-gatehid1:   Index = 105     value =0x95
2127c478bd9Sstevel@tonic-gatehid1:   Index = 106     value =0x4
2137c478bd9Sstevel@tonic-gatehid1:   Index = 107     value =0xb1
2147c478bd9Sstevel@tonic-gatehid1:   Index = 108     value =0x2
2157c478bd9Sstevel@tonic-gatehid1:   Index = 109     value =0xc0
2167c478bd9Sstevel@tonic-gatehid1:   Index = 110     value =0xa1
2177c478bd9Sstevel@tonic-gatehid1:   Index = 111     value =0x2
2187c478bd9Sstevel@tonic-gatehid1:   Index = 112     value =0x85
2197c478bd9Sstevel@tonic-gatehid1:   Index = 113     value =0x5
2207c478bd9Sstevel@tonic-gatehid1:   Index = 114     value =0x9
2217c478bd9Sstevel@tonic-gatehid1:   Index = 115     value =0x3a
2227c478bd9Sstevel@tonic-gatehid1:   Index = 116     value =0x95
2237c478bd9Sstevel@tonic-gatehid1:   Index = 117     value =0x1
2247c478bd9Sstevel@tonic-gatehid1:   Index = 118     value =0xb1
2257c478bd9Sstevel@tonic-gatehid1:   Index = 119     value =0x2
2267c478bd9Sstevel@tonic-gatehid1:   Index = 120     value =0xc0
2277c478bd9Sstevel@tonic-gatehid1:   Index = 121     value =0xa1
2287c478bd9Sstevel@tonic-gatehid1:   Index = 122     value =0x2
2297c478bd9Sstevel@tonic-gatehid1:   Index = 123     value =0x85
2307c478bd9Sstevel@tonic-gatehid1:   Index = 124     value =0x6
2317c478bd9Sstevel@tonic-gatehid1:   Index = 125     value =0x9
2327c478bd9Sstevel@tonic-gatehid1:   Index = 126     value =0x3a
2337c478bd9Sstevel@tonic-gatehid1:   Index = 127     value =0x95
2347c478bd9Sstevel@tonic-gatehid1:   Index = 128     value =0x1
2357c478bd9Sstevel@tonic-gatehid1:   Index = 129     value =0xb1
2367c478bd9Sstevel@tonic-gatehid1:   Index = 130     value =0x2
2377c478bd9Sstevel@tonic-gatehid1:   Index = 131     value =0xc0
2387c478bd9Sstevel@tonic-gatehid1:   Index = 132     value =0xa1
2397c478bd9Sstevel@tonic-gatehid1:   Index = 133     value =0x2
2407c478bd9Sstevel@tonic-gatehid1:   Index = 134     value =0x85
2417c478bd9Sstevel@tonic-gatehid1:   Index = 135     value =0x7
2427c478bd9Sstevel@tonic-gatehid1:   Index = 136     value =0x9
2437c478bd9Sstevel@tonic-gatehid1:   Index = 137     value =0x3a
2447c478bd9Sstevel@tonic-gatehid1:   Index = 138     value =0x95
2457c478bd9Sstevel@tonic-gatehid1:   Index = 139     value =0x10
2467c478bd9Sstevel@tonic-gatehid1:   Index = 140     value =0xb1
2477c478bd9Sstevel@tonic-gatehid1:   Index = 141     value =0x2
2487c478bd9Sstevel@tonic-gatehid1:   Index = 142     value =0xc0
2497c478bd9Sstevel@tonic-gatehid1:   Index = 143     value =0xa1
2507c478bd9Sstevel@tonic-gatehid1:   Index = 144     value =0x2
2517c478bd9Sstevel@tonic-gatehid1:   Index = 145     value =0x85
2527c478bd9Sstevel@tonic-gatehid1:   Index = 146     value =0x8
2537c478bd9Sstevel@tonic-gatehid1:   Index = 147     value =0x9
2547c478bd9Sstevel@tonic-gatehid1:   Index = 148     value =0x3a
2557c478bd9Sstevel@tonic-gatehid1:   Index = 149     value =0x95
2567c478bd9Sstevel@tonic-gatehid1:   Index = 150     value =0x10
2577c478bd9Sstevel@tonic-gatehid1:   Index = 151     value =0xb1
2587c478bd9Sstevel@tonic-gatehid1:   Index = 152     value =0x2
2597c478bd9Sstevel@tonic-gatehid1:   Index = 153     value =0xc0
2607c478bd9Sstevel@tonic-gatehid1:   Index = 154     value =0xa1
2617c478bd9Sstevel@tonic-gatehid1:   Index = 155     value =0x2
2627c478bd9Sstevel@tonic-gatehid1:   Index = 156     value =0x85
2637c478bd9Sstevel@tonic-gatehid1:   Index = 157     value =0x9
2647c478bd9Sstevel@tonic-gatehid1:   Index = 158     value =0x9
2657c478bd9Sstevel@tonic-gatehid1:   Index = 159     value =0x3a
2667c478bd9Sstevel@tonic-gatehid1:   Index = 160     value =0x95
2677c478bd9Sstevel@tonic-gatehid1:   Index = 161     value =0xc
2687c478bd9Sstevel@tonic-gatehid1:   Index = 162     value =0xb1
2697c478bd9Sstevel@tonic-gatehid1:   Index = 163     value =0x2
2707c478bd9Sstevel@tonic-gatehid1:   Index = 164     value =0xc0
2717c478bd9Sstevel@tonic-gatehid1:   Index = 165     value =0xa1
2727c478bd9Sstevel@tonic-gatehid1:   Index = 166     value =0x2
2737c478bd9Sstevel@tonic-gatehid1:   Index = 167     value =0x85
2747c478bd9Sstevel@tonic-gatehid1:   Index = 168     value =0xa
2757c478bd9Sstevel@tonic-gatehid1:   Index = 169     value =0x9
2767c478bd9Sstevel@tonic-gatehid1:   Index = 170     value =0x3a
2777c478bd9Sstevel@tonic-gatehid1:   Index = 171     value =0x95
2787c478bd9Sstevel@tonic-gatehid1:   Index = 172     value =0x1
2797c478bd9Sstevel@tonic-gatehid1:   Index = 173     value =0xb1
2807c478bd9Sstevel@tonic-gatehid1:   Index = 174     value =0x2
2817c478bd9Sstevel@tonic-gatehid1:   Index = 175     value =0xc0
2827c478bd9Sstevel@tonic-gatehid1:   Index = 176     value =0xa1
2837c478bd9Sstevel@tonic-gatehid1:   Index = 177     value =0x2
2847c478bd9Sstevel@tonic-gatehid1:   Index = 178     value =0x85
2857c478bd9Sstevel@tonic-gatehid1:   Index = 179     value =0xb
2867c478bd9Sstevel@tonic-gatehid1:   Index = 180     value =0x9
2877c478bd9Sstevel@tonic-gatehid1:   Index = 181     value =0x3a
2887c478bd9Sstevel@tonic-gatehid1:   Index = 182     value =0x95
2897c478bd9Sstevel@tonic-gatehid1:   Index = 183     value =0x1
2907c478bd9Sstevel@tonic-gatehid1:   Index = 184     value =0xb1
2917c478bd9Sstevel@tonic-gatehid1:   Index = 185     value =0x2
2927c478bd9Sstevel@tonic-gatehid1:   Index = 186     value =0xc0
2937c478bd9Sstevel@tonic-gatehid1:   Index = 187     value =0xa1
2947c478bd9Sstevel@tonic-gatehid1:   Index = 188     value =0x2
2957c478bd9Sstevel@tonic-gatehid1:   Index = 189     value =0x85
2967c478bd9Sstevel@tonic-gatehid1:   Index = 190     value =0xc
2977c478bd9Sstevel@tonic-gatehid1:   Index = 191     value =0x9
2987c478bd9Sstevel@tonic-gatehid1:   Index = 192     value =0x3a
2997c478bd9Sstevel@tonic-gatehid1:   Index = 193     value =0x95
3007c478bd9Sstevel@tonic-gatehid1:   Index = 194     value =0x1
3017c478bd9Sstevel@tonic-gatehid1:   Index = 195     value =0xb1
3027c478bd9Sstevel@tonic-gatehid1:   Index = 196     value =0x2
3037c478bd9Sstevel@tonic-gatehid1:   Index = 197     value =0xc0
3047c478bd9Sstevel@tonic-gatehid1:   Index = 198     value =0xa1
3057c478bd9Sstevel@tonic-gatehid1:   Index = 199     value =0x2
3067c478bd9Sstevel@tonic-gatehid1:   Index = 200     value =0x85
3077c478bd9Sstevel@tonic-gatehid1:   Index = 201     value =0xd
3087c478bd9Sstevel@tonic-gatehid1:   Index = 202     value =0x9
3097c478bd9Sstevel@tonic-gatehid1:   Index = 203     value =0x3a
3107c478bd9Sstevel@tonic-gatehid1:   Index = 204     value =0x95
3117c478bd9Sstevel@tonic-gatehid1:   Index = 205     value =0x2
3127c478bd9Sstevel@tonic-gatehid1:   Index = 206     value =0xb1
3137c478bd9Sstevel@tonic-gatehid1:   Index = 207     value =0x2
3147c478bd9Sstevel@tonic-gatehid1:   Index = 208     value =0xc0
3157c478bd9Sstevel@tonic-gatehid1:   Index = 209     value =0xc0
3167c478bd9Sstevel@tonic-gatehid1:   Index = 210     value =0xc0
3177c478bd9Sstevel@tonic-gate
3187c478bd9Sstevel@tonic-gate___________________________________________________________________________
3197c478bd9Sstevel@tonic-gate
3207c478bd9Sstevel@tonic-gateItem format:
3217c478bd9Sstevel@tonic-gate
3227c478bd9Sstevel@tonic-gate	------------------------------------
3237c478bd9Sstevel@tonic-gate	|data|data(8)|tag(4),type(2),size(2)|
3247c478bd9Sstevel@tonic-gate	------------------------------------
3257c478bd9Sstevel@tonic-gate                            |<------'ch'---------->|
3267c478bd9Sstevel@tonic-gate
3277c478bd9Sstevel@tonic-gate___________________________________________________________________________
3287c478bd9Sstevel@tonic-gate
3297c478bd9Sstevel@tonic-gate'hidparser_ReportDescriptor()' will call  'hidparser_scan()'  first.  Hence
3307c478bd9Sstevel@tonic-gateyou will see the  'scanner'  output first.  The scanner will go through the
3317c478bd9Sstevel@tonic-gatefirst byte and set hidparser_tok_token to the tag|type value. hidparser_tok
3327c478bd9Sstevel@tonic-gate_leng  will be set to size and the 'data' part will be copied to tok_ text.
3337c478bd9Sstevel@tonic-gate'hidparser_ReportDescriptor'  will   call  'hidparser_ItemList()'  to  take
3347c478bd9Sstevel@tonic-gatecharge of the rest of the parsing.
3357c478bd9Sstevel@tonic-gate
3367c478bd9Sstevel@tonic-gate___________________________________________________________________________
3377c478bd9Sstevel@tonic-gate
3387c478bd9Sstevel@tonic-gatehidparser:      scanner: index  = 0x0 ch = 0x5 [ = 0x00000101 = tag[0],
3397c478bd9Sstevel@tonic-gate                                               type[1], size[1] ]
3407c478bd9Sstevel@tonic-gate
3417c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1 <========size[1] [Type 1 = Global
3427c478bd9Sstevel@tonic-gate			Tag[0] = Usage Page ]
3437c478bd9Sstevel@tonic-gate
3447c478bd9Sstevel@tonic-gate___________________________________________________________________________
3457c478bd9Sstevel@tonic-gate
3467c478bd9Sstevel@tonic-gateHere the length of 1 indicates that the parameter or value associated  with
3477c478bd9Sstevel@tonic-gatethe usage page is contained in the next character/byte.
3487c478bd9Sstevel@tonic-gate
3497c478bd9Sstevel@tonic-gate___________________________________________________________________________
3507c478bd9Sstevel@tonic-gate
3517c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x1,index = 0x1
3527c478bd9Sstevel@tonic-gate___________________________________________________________________________
3537c478bd9Sstevel@tonic-gate
3547c478bd9Sstevel@tonic-gateThe next byte contains a value of 0x1. If you look at the usage table spec
3557c478bd9Sstevel@tonic-gateyou can see that value of 1 stands for Generic Desktop.
3567c478bd9Sstevel@tonic-gate___________________________________________________________________________
3577c478bd9Sstevel@tonic-gate
3587c478bd9Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x5 before translation
3597c478bd9Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x2
3607c478bd9Sstevel@tonic-gate___________________________________________________________________________
3617c478bd9Sstevel@tonic-gate
3627c478bd9Sstevel@tonic-gateHere  'hidparser_ItemList()'  would have  been called,   which  again calls
3637c478bd9Sstevel@tonic-gate'hidparser_Items()'. The purpose of 'hidparser_Items()'  is to  get through
3647c478bd9Sstevel@tonic-gateall the Items and break when it encounters a main item.  'hidparser_Items()
3657c478bd9Sstevel@tonic-gatewill  again  call  'hidparser_GlobalItem()'  and 'hidparser_LocalItem()' to
3667c478bd9Sstevel@tonic-gatemake a list of entity attributes in the hidparser_tok structure.
3677c478bd9Sstevel@tonic-gate___________________________________________________________________________
3687c478bd9Sstevel@tonic-gate
3697c478bd9Sstevel@tonic-gatehidparser:      hidparser_GlobalItem:index = 0x0 token = 0x4
3707c478bd9Sstevel@tonic-gate
3717c478bd9Sstevel@tonic-gate___________________________________________________________________________
3727c478bd9Sstevel@tonic-gate
3737c478bd9Sstevel@tonic-gateThe above goes to gitem list.
3747c478bd9Sstevel@tonic-gate___________________________________________________________________________
3757c478bd9Sstevel@tonic-gate
3767c478bd9Sstevel@tonic-gate
3777c478bd9Sstevel@tonic-gatehidparser:      scanner: index  = 0x2 ch = 0x9 [ = 0x00001001 = tag[0],
3787c478bd9Sstevel@tonic-gate			type[2], size[1]]
3797c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
3807c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x8,index = 0x3
3817c478bd9Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x9 before translation
3827c478bd9Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x4
3837c478bd9Sstevel@tonic-gatehidparser:      hidparser_LocalItem:index = 0x2 token = 0x8
3847c478bd9Sstevel@tonic-gate___________________________________________________________________________
3857c478bd9Sstevel@tonic-gate
3867c478bd9Sstevel@tonic-gateThe above goes to local item list in hidparser_tok_structure.
3877c478bd9Sstevel@tonic-gate___________________________________________________________________________
3887c478bd9Sstevel@tonic-gate
3897c478bd9Sstevel@tonic-gatehidparser:      scanner: index  = 0x4 ch = 0xa1 [= 0x10100001 = tag[a],
3907c478bd9Sstevel@tonic-gate			type[0], size[1]]
3917c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1	[ This is a main item ]
3927c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x1,index = 0x5
3937c478bd9Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0xa1 before translation
3947c478bd9Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x6
3957c478bd9Sstevel@tonic-gate
3967c478bd9Sstevel@tonic-gate____________________________________________________________________________
3977c478bd9Sstevel@tonic-gate
3987c478bd9Sstevel@tonic-gateHere 'hidparser_Items()' will break and pass the control back to 'hidparser_
3997c478bd9Sstevel@tonic-gateItemList()' which will call 'hidparser_MainItem()'  to do things specific to
4007c478bd9Sstevel@tonic-gatea main item (like allocating  an entity_item  structure  and returning it in
4017c478bd9Sstevel@tonic-gatecurr_ei).  'hidparser_MainItem()' will allocate an entity_item structure and
4027c478bd9Sstevel@tonic-gatecopy the gitem list from hidparser tok structure and add the local item list
4037c478bd9Sstevel@tonic-gateto the end of global item list  (in  the  entity_item_attributes  member  of
4047c478bd9Sstevel@tonic-gateentity_item structure).
4057c478bd9Sstevel@tonic-gate
4067c478bd9Sstevel@tonic-gate____________________________________________________________________________
4077c478bd9Sstevel@tonic-gate
4087c478bd9Sstevel@tonic-gatehidparser:      hidparser_MainItem:index = 0x4 token = 0xa0
4097c478bd9Sstevel@tonic-gatehidparser:      scanner: index  = 0x6 ch = 0xa1
4107c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
4117c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x0,index = 0x7
4127c478bd9Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0xa1 before translation
4137c478bd9Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x8
4147c478bd9Sstevel@tonic-gatehidparser:      Start Collection:cache_ei = 0xcab8d220, curr_ei = 0xcab8d220
4157c478bd9Sstevel@tonic-gate
4167c478bd9Sstevel@tonic-gate____________________________________________________________________________
4177c478bd9Sstevel@tonic-gate
4187c478bd9Sstevel@tonic-gateThis forms the root collection.  'cache_ei'  or the cached  entity_item will
4197c478bd9Sstevel@tonic-gatealways point to the last collection encountered.  Each entity_item structure
4207c478bd9Sstevel@tonic-gatewill have a pointer to the previous collection.  This is basically to remove
4217c478bd9Sstevel@tonic-gaterecursion when we support nested collections.  So if I have something like
4227c478bd9Sstevel@tonic-gate
4237c478bd9Sstevel@tonic-gateCollection
4247c478bd9Sstevel@tonic-gate	....
4257c478bd9Sstevel@tonic-gate	Collection
4267c478bd9Sstevel@tonic-gate		....
4277c478bd9Sstevel@tonic-gate		Collection
4287c478bd9Sstevel@tonic-gate		....
4297c478bd9Sstevel@tonic-gate		End Collection
4307c478bd9Sstevel@tonic-gate		....
4317c478bd9Sstevel@tonic-gate	End collection
4327c478bd9Sstevel@tonic-gate	....
4337c478bd9Sstevel@tonic-gateEnd Collection
4347c478bd9Sstevel@tonic-gate
4357c478bd9Sstevel@tonic-gateand if we assume  that  the parser is currently @ the third Collection item,
4367c478bd9Sstevel@tonic-gatethen cache_ei will point to the third collection, it's prev_ei will point to
4377c478bd9Sstevel@tonic-gatethe second collection and it's prev_ei will point to the root collection. As
4387c478bd9Sstevel@tonic-gatewe move down the first end collection, cache_ei would have changed to second
4397c478bd9Sstevel@tonic-gatecollection and so on.
4407c478bd9Sstevel@tonic-gate____________________________________________________________________________
4417c478bd9Sstevel@tonic-gate
4427c478bd9Sstevel@tonic-gatehidparser:      hidparser_MainItem:index = 0x6 token = 0xa0
4437c478bd9Sstevel@tonic-gate
4447c478bd9Sstevel@tonic-gate____________________________________________________________________________
4457c478bd9Sstevel@tonic-gate
4467c478bd9Sstevel@tonic-gateWe encounter  another collection here [ so a nested collection ].  This   'ei'
4477c478bd9Sstevel@tonic-gatewill have a  global  item  list (only,  as there are no local items. Remember
4487c478bd9Sstevel@tonic-gatethat  we  preserve  global  item list  in  the  hidparser_tok_structure while
4497c478bd9Sstevel@tonic-gateblanking out the local item list as we encounter a main item).
4507c478bd9Sstevel@tonic-gate____________________________________________________________________________
4517c478bd9Sstevel@tonic-gate
4527c478bd9Sstevel@tonic-gatehidparser:      scanner: index  = 0x8 ch = 0x85
4537c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
4547c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x1,index = 0x9
4557c478bd9Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x85 before translation
4567c478bd9Sstevel@tonic-gatehidparser:      scanner: aindex  = 0xa
4577c478bd9Sstevel@tonic-gatehidparser:      Start Collection:cache_ei = 0xcab84db0, curr_ei = 0xcab84db0
4587c478bd9Sstevel@tonic-gate
4597c478bd9Sstevel@tonic-gate
4607c478bd9Sstevel@tonic-gatehidparser:      hidparser_GlobalItem:index = 0x8 token = 0x84
4617c478bd9Sstevel@tonic-gate_____________________________________________________________________________
4627c478bd9Sstevel@tonic-gate
4637c478bd9Sstevel@tonic-gateThis is a global item. Will get added to already existent Usage page GI in the
4647c478bd9Sstevel@tonic-gate'hidparser_tok' structure.
4657c478bd9Sstevel@tonic-gate
4667c478bd9Sstevel@tonic-gatehidparser:      scanner: index  = 0xa ch = 0x16
4677c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_length = 2
4687c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x0,index = 0xb
4697c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_text[1] = 0x80,index = 0xc
4707c478bd9Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x16 before translation
4717c478bd9Sstevel@tonic-gatehidparser:      scanner: aindex  = 0xd
4727c478bd9Sstevel@tonic-gatehidparser:      hidparser_GlobalItem:index = 0xa token = 0x14
4737c478bd9Sstevel@tonic-gatehidparser:      scanner: index  = 0xd ch = 0x26
4747c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_length = 2
4757c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0xff,index = 0xe
4767c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_text[1] = 0x7f,index = 0xf
4777c478bd9Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x26 before translation
4787c478bd9Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x10
4797c478bd9Sstevel@tonic-gatehidparser:      hidparser_GlobalItem:index = 0xd token = 0x24
4807c478bd9Sstevel@tonic-gatehidparser:      scanner: index  = 0x10 ch = 0x9
4817c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
4827c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x30,index = 0x11
4837c478bd9Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x9 before translation
4847c478bd9Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x12
4857c478bd9Sstevel@tonic-gatehidparser:      hidparser_LocalItem:index = 0x10 token = 0x8
4867c478bd9Sstevel@tonic-gatehidparser:      scanner: index  = 0x12 ch = 0x9
4877c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
4887c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x31,index = 0x13
4897c478bd9Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x9 before translation
4907c478bd9Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x14
4917c478bd9Sstevel@tonic-gatehidparser:      hidparser_LocalItem:index = 0x12 token = 0x8
4927c478bd9Sstevel@tonic-gatehidparser:      scanner: index  = 0x14 ch = 0x9
4937c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
4947c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x32,index = 0x15
4957c478bd9Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x9 before translation
4967c478bd9Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x16
4977c478bd9Sstevel@tonic-gatehidparser:      hidparser_LocalItem:index = 0x14 token = 0x8
4987c478bd9Sstevel@tonic-gatehidparser:      scanner: index  = 0x16 ch = 0x75
4997c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
5007c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x10,index = 0x17
5017c478bd9Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x75 before translation
5027c478bd9Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x18
5037c478bd9Sstevel@tonic-gatehidparser:      hidparser_GlobalItem:index = 0x16 token = 0x74
5047c478bd9Sstevel@tonic-gatehidparser:      scanner: index  = 0x18 ch = 0x95
5057c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
5067c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x3,index = 0x19
5077c478bd9Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x95 before translation
5087c478bd9Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x1a
5097c478bd9Sstevel@tonic-gatehidparser:      hidparser_GlobalItem:index = 0x18 token = 0x94
5107c478bd9Sstevel@tonic-gatehidparser:      scanner: index  = 0x1a ch = 0x81
5117c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
5127c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x2,index = 0x1b
5137c478bd9Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x81 before translation
5147c478bd9Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x1c
5157c478bd9Sstevel@tonic-gatehidparser:      hidparser_MainItem:index = 0x1a token = 0x80
5167c478bd9Sstevel@tonic-gatehidparser:      scanner: index  = 0x1c ch = 0xc0
5177c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_length = 0
5187c478bd9Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0xc0 before translation
5197c478bd9Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x1d
5207c478bd9Sstevel@tonic-gatehidparser:      Main Item: token = 0x80, curr_ei = 0xcab7ecf8  will be  the
5217c478bd9Sstevel@tonic-gate	child of prev_ei = 0xcab84db0, cache_ei being 0xcab84db0
5227c478bd9Sstevel@tonic-gate
5237c478bd9Sstevel@tonic-gate___________________________________________________________________________
5247c478bd9Sstevel@tonic-gate
5257c478bd9Sstevel@tonic-gateThis is the Input main item and will form the child of collection @ 0xcab84-
5267c478bd9Sstevel@tonic-gatedb0.
5277c478bd9Sstevel@tonic-gate___________________________________________________________________________
5287c478bd9Sstevel@tonic-gate
5297c478bd9Sstevel@tonic-gatehidparser:      hidparser_MainItem:index = 0x1c token = 0xc0
5307c478bd9Sstevel@tonic-gatehidparser:      scanner: index  = 0x1d ch = 0xa1
5317c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
5327c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x0,index = 0x1e
5337c478bd9Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0xa1 before translation
5347c478bd9Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x1f
5357c478bd9Sstevel@tonic-gatehidparser:      End Collection: cache_ei = 0xcab84db0, curr_ei = 0xcab84630
5367c478bd9Sstevel@tonic-gate____________________________________________________________________________
5377c478bd9Sstevel@tonic-gate
5387c478bd9Sstevel@tonic-gateThis  End collection and will for the right sibling of 0xcab84db0 which will
5397c478bd9Sstevel@tonic-gatemake cache_ei point to root collection.
5407c478bd9Sstevel@tonic-gate____________________________________________________________________________
5417c478bd9Sstevel@tonic-gate
5427c478bd9Sstevel@tonic-gatehidparser:      hidparser_MainItem:index = 0x1d token = 0xa0
5437c478bd9Sstevel@tonic-gatehidparser:      scanner: index  = 0x1f ch = 0x85
5447c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
5457c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x2,index = 0x20
5467c478bd9Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x85 before translation
5477c478bd9Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x21
5487c478bd9Sstevel@tonic-gatehidparser:      Start Collection:cache_ei = 0xcab84750, curr_ei = 0xcab84750
5497c478bd9Sstevel@tonic-gate____________________________________________________________________________
5507c478bd9Sstevel@tonic-gate
5517c478bd9Sstevel@tonic-gateAgain a Collection Item.
5527c478bd9Sstevel@tonic-gate
5537c478bd9Sstevel@tonic-gateThe tree corresponding to the above list will be
5547c478bd9Sstevel@tonic-gate
5557c478bd9Sstevel@tonic-gatehidparser:      Usage Page(0x1) <---------------------- GI
5567c478bd9Sstevel@tonic-gatehidparser:      Usage(0x8) <--------------------------- LI
5577c478bd9Sstevel@tonic-gatehidparser:      Collection(0x1)<----------------------- MI
5587c478bd9Sstevel@tonic-gatehidparser:           Usage Page(0x1)<------------------ Carried over GI
5597c478bd9Sstevel@tonic-gatehidparser:           Collection(0x0)<------------------ MI
5607c478bd9Sstevel@tonic-gatehidparser:                Usage Page(0x1)<------------- Carried over GI
5617c478bd9Sstevel@tonic-gatehidparser:                Report Id(0x1)<-------------- GI [ New ]
5627c478bd9Sstevel@tonic-gatehidparser:                Logical Minimum(0x8000)<----- GI
5637c478bd9Sstevel@tonic-gatehidparser:                Logical Maximum(0x7FFF)<----- GI
5647c478bd9Sstevel@tonic-gatehidparser:                Report Size(0x10)<----------- GI
5657c478bd9Sstevel@tonic-gatehidparser:                Report Count(0x3)<----------- GI
5667c478bd9Sstevel@tonic-gatehidparser:                Usage(0x30)<----------------- LI
5677c478bd9Sstevel@tonic-gatehidparser:                Usage(0x31)<----------------- LI
5687c478bd9Sstevel@tonic-gatehidparser:                Usage(0x32)<----------------- LI
5697c478bd9Sstevel@tonic-gatehidparser:                Input(0x2)<------------------ MI
5707c478bd9Sstevel@tonic-gatehidparser:           End Collection(0x0)<-------------- MI
5717c478bd9Sstevel@tonic-gatehidparser:           Usage Page(0x1)<------------------ Carried over GI
5727c478bd9Sstevel@tonic-gatehidparser:           Report Id(0x1)<------------------- Carried over GI
5737c478bd9Sstevel@tonic-gatehidparser:           Logical Minimum(0x8000)<----------   " "
5747c478bd9Sstevel@tonic-gatehidparser:           Logical Maximum(0x7FFF)<----------   " "
5757c478bd9Sstevel@tonic-gatehidparser:           Report Size(0x10)<----------------   " "
5767c478bd9Sstevel@tonic-gatehidparser:           Report Count(0x3)<----------------   " "
5777c478bd9Sstevel@tonic-gatehidparser:           Collection(0x0)<------------------ MI
5787c478bd9Sstevel@tonic-gate
5797c478bd9Sstevel@tonic-gateThe actual tree corresponding to a descriptor dump will be
5807c478bd9Sstevel@tonic-gate
5817c478bd9Sstevel@tonic-gate
5827c478bd9Sstevel@tonic-gate      0x5, 0x1,              /* Usage Page (Generic Desktop)             */
5837c478bd9Sstevel@tonic-gate      0x9, 0x8,              /* Usage (0x8:Multi-axis controller)        */
5847c478bd9Sstevel@tonic-gate      0xa1, 0x1,             /* Collection (Application)                 */
5857c478bd9Sstevel@tonic-gate      0xa1, 0,               /*     Collection (Physical)                */
5867c478bd9Sstevel@tonic-gate      0x85, 0x1,             /*         Report ID (0x1)                  */
5877c478bd9Sstevel@tonic-gate      0x16, 0, 0x80,         /*         Logical Minimum (0x8000)         */
5887c478bd9Sstevel@tonic-gate      0x26, 0xff, 0x7f,      /*         Logical Maximum (0x7fff)         */
5897c478bd9Sstevel@tonic-gate      0x9, 0x30,             /*         Usage (0x30:X)                   */
5907c478bd9Sstevel@tonic-gate      0x9, 0x31,             /*         Usage (0x31:Y)                   */
5917c478bd9Sstevel@tonic-gate      0x9, 0x32,             /*         Usage (0x32:Z)                   */
5927c478bd9Sstevel@tonic-gate      0x75, 0x10,            /*         Report Size (0x10)               */
5937c478bd9Sstevel@tonic-gate      0x95, 0x3,             /*         Report Count (0x3)               */
5947c478bd9Sstevel@tonic-gate      0x81, 0x2,             /*         Input (Data, Variable, Absolute) */
5957c478bd9Sstevel@tonic-gate      0xc0,                  /*     End Collection                       */
5967c478bd9Sstevel@tonic-gate      0xa1, 0,               /*     Collection (Physical)                */
5977c478bd9Sstevel@tonic-gate
5987c478bd9Sstevel@tonic-gateAs can be seen, the tree that Solaris constructs have carried over GI extra
5997c478bd9Sstevel@tonic-gatewhich is the only difference. But that doesn't make a difference in the way
6007c478bd9Sstevel@tonic-gatewe handle data.
6017c478bd9Sstevel@tonic-gate
6027c478bd9Sstevel@tonic-gateThere are somethings to be noted at this point. If subsequently we encount-
6037c478bd9Sstevel@tonic-gateer another  global item  which has already been defined (say report size),
6047c478bd9Sstevel@tonic-gatethen we  will go to the  global list  maintained in the 'hidparser_tok' st-
6057c478bd9Sstevel@tonic-gateructure and replace the already existant one  (i.e report size(0x10)  with
6067c478bd9Sstevel@tonic-gatethe new one ).
6077c478bd9Sstevel@tonic-gate
6087c478bd9Sstevel@tonic-gateFor end collection  main item, we don't attach the global item list to the
6097c478bd9Sstevel@tonic-gateentity item structure.
6107c478bd9Sstevel@tonic-gate
6117c478bd9Sstevel@tonic-gateThe rest of the document is a continuation of where we left off the parsing.
6127c478bd9Sstevel@tonic-gateThe theory of operation is the same.
6137c478bd9Sstevel@tonic-gate
6147c478bd9Sstevel@tonic-gate___________________________________________________________________________
6157c478bd9Sstevel@tonic-gate
6167c478bd9Sstevel@tonic-gate
6177c478bd9Sstevel@tonic-gatehidparser:      hidparser_GlobalItem:index = 0x1f token = 0x84
6187c478bd9Sstevel@tonic-gatehidparser:      scanner: index  = 0x21 ch = 0x9
6197c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
6207c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x33,index = 0x22
6217c478bd9Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x9 before translation
6227c478bd9Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x23
6237c478bd9Sstevel@tonic-gatehidparser:      hidparser_LocalItem:index = 0x21 token = 0x8
6247c478bd9Sstevel@tonic-gatehidparser:      scanner: index  = 0x23 ch = 0x9
6257c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
6267c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x34,index = 0x24
6277c478bd9Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x9 before translation
6287c478bd9Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x25
6297c478bd9Sstevel@tonic-gatehidparser:      hidparser_LocalItem:index = 0x23 token = 0x8
6307c478bd9Sstevel@tonic-gatehidparser:      scanner: index  = 0x25 ch = 0x9
6317c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
6327c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x35,index = 0x26
6337c478bd9Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x9 before translation
6347c478bd9Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x27
6357c478bd9Sstevel@tonic-gatehidparser:      hidparser_LocalItem:index = 0x25 token = 0x8
6367c478bd9Sstevel@tonic-gatehidparser:      scanner: index  = 0x27 ch = 0x75
6377c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
6387c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x10,index = 0x28
6397c478bd9Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x75 before translation
6407c478bd9Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x29
6417c478bd9Sstevel@tonic-gatehidparser:      hidparser_GlobalItem:index = 0x27 token = 0x74
6427c478bd9Sstevel@tonic-gatehidparser:      scanner: index  = 0x29 ch = 0x95
6437c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
6447c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x3,index = 0x2a
6457c478bd9Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x95 before translation
6467c478bd9Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x2b
6477c478bd9Sstevel@tonic-gatehidparser:      hidparser_GlobalItem:index = 0x29 token = 0x94
6487c478bd9Sstevel@tonic-gatehidparser:      scanner: index  = 0x2b ch = 0x81
6497c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
6507c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x2,index = 0x2c
6517c478bd9Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x81 before translation
6527c478bd9Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x2d
6537c478bd9Sstevel@tonic-gatehidparser:      hidparser_MainItem:index = 0x2b token = 0x80
6547c478bd9Sstevel@tonic-gatehidparser:      scanner: index  = 0x2d ch = 0xc0
6557c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_length = 0
6567c478bd9Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0xc0 before translation
6577c478bd9Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x2e
6587c478bd9Sstevel@tonic-gatehidparser:      Main Item: token = 0x80, curr_ei = 0xcab7e098 will be the
6597c478bd9Sstevel@tonic-gate	 child of prev_ei = 0xcab84750, cache_ei being 0xcab84750
6607c478bd9Sstevel@tonic-gatehidparser:      hidparser_MainItem:index = 0x2d token = 0xc0
6617c478bd9Sstevel@tonic-gatehidparser:      scanner: index  = 0x2e ch = 0xa1
6627c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
6637c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x2,index = 0x2f
6647c478bd9Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0xa1 before translation
6657c478bd9Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x30
6667c478bd9Sstevel@tonic-gatehidparser:      End Collection: cache_ei = 0xcab84750, curr_ei = 0xcab7af40
6677c478bd9Sstevel@tonic-gatehidparser:      hidparser_MainItem:index = 0x2e token = 0xa0
6687c478bd9Sstevel@tonic-gatehidparser:      scanner: index  = 0x30 ch = 0x85
6697c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
6707c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x3,index = 0x31
6717c478bd9Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x85 before translation
6727c478bd9Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x32
6737c478bd9Sstevel@tonic-gatehidparser:      Start Collection:cache_ei = 0xcab7ad30, curr_ei = 0xcab7ad30
6747c478bd9Sstevel@tonic-gatehidparser:      hidparser_GlobalItem:index = 0x30 token = 0x84
6757c478bd9Sstevel@tonic-gatehidparser:      scanner: index  = 0x32 ch = 0x5
6767c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
6777c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x1,index = 0x33
6787c478bd9Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x5 before translation
6797c478bd9Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x34
6807c478bd9Sstevel@tonic-gatehidparser:      hidparser_GlobalItem:index = 0x32 token = 0x4
6817c478bd9Sstevel@tonic-gatehidparser:      scanner: index  = 0x34 ch = 0x9
6827c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
6837c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x3a,index = 0x35
6847c478bd9Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x9 before translation
6857c478bd9Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x36
6867c478bd9Sstevel@tonic-gatehidparser:      hidparser_LocalItem:index = 0x34 token = 0x8
6877c478bd9Sstevel@tonic-gatehidparser:      scanner: index  = 0x36 ch = 0x75
6887c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
6897c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x10,index = 0x37
6907c478bd9Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x75 before translation
6917c478bd9Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x38
6927c478bd9Sstevel@tonic-gatehidparser:      hidparser_GlobalItem:index = 0x36 token = 0x74
6937c478bd9Sstevel@tonic-gatehidparser:      scanner: index  = 0x38 ch = 0x95
6947c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
6957c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x1,index = 0x39
6967c478bd9Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x95 before translation
6977c478bd9Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x3a
6987c478bd9Sstevel@tonic-gatehidparser:      hidparser_GlobalItem:index = 0x38 token = 0x94
6997c478bd9Sstevel@tonic-gatehidparser:      scanner: index  = 0x3a ch = 0x81
7007c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
7017c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x2,index = 0x3b
7027c478bd9Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x81 before translation
7037c478bd9Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x3c
7047c478bd9Sstevel@tonic-gatehidparser:      hidparser_MainItem:index = 0x3a token = 0x80
7057c478bd9Sstevel@tonic-gatehidparser:      scanner: index  = 0x3c ch = 0x5
7067c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
7077c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x9,index = 0x3d
7087c478bd9Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x5 before translation
7097c478bd9Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x3e
7107c478bd9Sstevel@tonic-gatehidparser:      Main Item: token = 0x80, curr_ei = 0xcab7ad60 will be the
7117c478bd9Sstevel@tonic-gate	 child of prev_ei = 0xcab7ad30, cache_ei being 0xcab7ad30
7127c478bd9Sstevel@tonic-gatehidparser:      hidparser_GlobalItem:index = 0x3c token = 0x4
7137c478bd9Sstevel@tonic-gatehidparser:      scanner: index  = 0x3e ch = 0x19
7147c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
7157c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x1,index = 0x3f
7167c478bd9Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x19 before translation
7177c478bd9Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x40
7187c478bd9Sstevel@tonic-gatehidparser:      hidparser_LocalItem:index = 0x3e token = 0x18
7197c478bd9Sstevel@tonic-gatehidparser:      scanner: index  = 0x40 ch = 0x29
7207c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
7217c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0xd,index = 0x41
7227c478bd9Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x29 before translation
7237c478bd9Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x42
7247c478bd9Sstevel@tonic-gatehidparser:      hidparser_LocalItem:index = 0x40 token = 0x28
7257c478bd9Sstevel@tonic-gatehidparser:      scanner: index  = 0x42 ch = 0x15
7267c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
7277c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x0,index = 0x43
7287c478bd9Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x15 before translation
7297c478bd9Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x44
7307c478bd9Sstevel@tonic-gatehidparser:      hidparser_GlobalItem:index = 0x42 token = 0x14
7317c478bd9Sstevel@tonic-gatehidparser:      scanner: index  = 0x44 ch = 0x25
7327c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
7337c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x1,index = 0x45
7347c478bd9Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x25 before translation
7357c478bd9Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x46
7367c478bd9Sstevel@tonic-gatehidparser:      hidparser_GlobalItem:index = 0x44 token = 0x24
7377c478bd9Sstevel@tonic-gatehidparser:      scanner: index  = 0x46 ch = 0x35
7387c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
7397c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x0,index = 0x47
7407c478bd9Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x35 before translation
7417c478bd9Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x48
7427c478bd9Sstevel@tonic-gatehidparser:      hidparser_GlobalItem:index = 0x46 token = 0x34
7437c478bd9Sstevel@tonic-gatehidparser:      scanner: index  = 0x48 ch = 0x45
7447c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
7457c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x1,index = 0x49
7467c478bd9Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x45 before translation
7477c478bd9Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x4a
7487c478bd9Sstevel@tonic-gatehidparser:      hidparser_GlobalItem:index = 0x48 token = 0x44
7497c478bd9Sstevel@tonic-gatehidparser:      scanner: index  = 0x4a ch = 0x75
7507c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
7517c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x1,index = 0x4b
7527c478bd9Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x75 before translation
7537c478bd9Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x4c
7547c478bd9Sstevel@tonic-gatehidparser:      hidparser_GlobalItem:index = 0x4a token = 0x74
7557c478bd9Sstevel@tonic-gatehidparser:      scanner: index  = 0x4c ch = 0x95
7567c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
7577c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0xd,index = 0x4d
7587c478bd9Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x95 before translation
7597c478bd9Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x4e
7607c478bd9Sstevel@tonic-gatehidparser:      hidparser_GlobalItem:index = 0x4c token = 0x94
7617c478bd9Sstevel@tonic-gatehidparser:      scanner: index  = 0x4e ch = 0x81
7627c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
7637c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x2,index = 0x4f
7647c478bd9Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x81 before translation
7657c478bd9Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x50
7667c478bd9Sstevel@tonic-gatehidparser:      hidparser_MainItem:index = 0x4e token = 0x80
7677c478bd9Sstevel@tonic-gatehidparser:      scanner: index  = 0x50 ch = 0x95
7687c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
7697c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x3,index = 0x51
7707c478bd9Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x95 before translation
7717c478bd9Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x52
7727c478bd9Sstevel@tonic-gatehidparser:      Main Item: token = 0x80, curr_ei = 0xcab7ecc8 will be the
7737c478bd9Sstevel@tonic-gate	 right sibling of prev_ei = 0xcab7ad60, cache_ei being 0xc
7747c478bd9Sstevel@tonic-gateab7ad30
7757c478bd9Sstevel@tonic-gatehidparser:      hidparser_GlobalItem:index = 0x50 token = 0x94
7767c478bd9Sstevel@tonic-gatehidparser:      scanner: index  = 0x52 ch = 0x81
7777c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
7787c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x1,index = 0x53
7797c478bd9Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x81 before translation
7807c478bd9Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x54
7817c478bd9Sstevel@tonic-gatehidparser:      hidparser_MainItem:index = 0x52 token = 0x80
7827c478bd9Sstevel@tonic-gatehidparser:      scanner: index  = 0x54 ch = 0xc0
7837c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_length = 0
7847c478bd9Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0xc0 before translation
7857c478bd9Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x55
7867c478bd9Sstevel@tonic-gatehidparser:      Main Item: token = 0x80, curr_ei = 0xcab7ec98 will be the
7877c478bd9Sstevel@tonic-gate	 right sibling of prev_ei = 0xcab7ecc8, cache_ei being 0xc
7887c478bd9Sstevel@tonic-gateab7ad30
7897c478bd9Sstevel@tonic-gatehidparser:      hidparser_MainItem:index = 0x54 token = 0xc0
7907c478bd9Sstevel@tonic-gatehidparser:      scanner: index  = 0x55 ch = 0x5
7917c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
7927c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x1,index = 0x56
7937c478bd9Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x5 before translation
7947c478bd9Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x57
7957c478bd9Sstevel@tonic-gatehidparser:      End Collection: cache_ei = 0xcab7ad30, curr_ei = 0xcab7ad00
7967c478bd9Sstevel@tonic-gatehidparser:      hidparser_GlobalItem:index = 0x55 token = 0x4
7977c478bd9Sstevel@tonic-gatehidparser:      scanner: index  = 0x57 ch = 0x9
7987c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
7997c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x3a,index = 0x58
8007c478bd9Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x9 before translation
8017c478bd9Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x59
8027c478bd9Sstevel@tonic-gatehidparser:      hidparser_LocalItem:index = 0x57 token = 0x8
8037c478bd9Sstevel@tonic-gatehidparser:      scanner: index  = 0x59 ch = 0xa1
8047c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
8057c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x2,index = 0x5a
8067c478bd9Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0xa1 before translation
8077c478bd9Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x5b
8087c478bd9Sstevel@tonic-gatehidparser:      hidparser_MainItem:index = 0x59 token = 0xa0
8097c478bd9Sstevel@tonic-gatehidparser:      scanner: index  = 0x5b ch = 0x15
8107c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
8117c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x80,index = 0x5c
8127c478bd9Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x15 before translation
8137c478bd9Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x5d
8147c478bd9Sstevel@tonic-gatehidparser:      Start Collection:cache_ei = 0xcab7ea58, curr_ei = 0xcab7ea58
8157c478bd9Sstevel@tonic-gatehidparser:      hidparser_GlobalItem:index = 0x5b token = 0x14
8167c478bd9Sstevel@tonic-gatehidparser:      scanner: index  = 0x5d ch = 0x25
8177c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
8187c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x7f,index = 0x5e
8197c478bd9Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x25 before translation
8207c478bd9Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x5f
8217c478bd9Sstevel@tonic-gatehidparser:      hidparser_GlobalItem:index = 0x5d token = 0x24
8227c478bd9Sstevel@tonic-gatehidparser:      scanner: index  = 0x5f ch = 0x75
8237c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
8247c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x8,index = 0x60
8257c478bd9Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x75 before translation
8267c478bd9Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x61
8277c478bd9Sstevel@tonic-gatehidparser:      hidparser_GlobalItem:index = 0x5f token = 0x74
8287c478bd9Sstevel@tonic-gatehidparser:      scanner: index  = 0x61 ch = 0x9
8297c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
8307c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x3a,index = 0x62
8317c478bd9Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x9 before translation
8327c478bd9Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x63
8337c478bd9Sstevel@tonic-gatehidparser:      hidparser_LocalItem:index = 0x61 token = 0x8
8347c478bd9Sstevel@tonic-gatehidparser:      scanner: index  = 0x63 ch = 0xa1
8357c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
8367c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x2,index = 0x64
8377c478bd9Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0xa1 before translation
8387c478bd9Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x65
8397c478bd9Sstevel@tonic-gatehidparser:      hidparser_MainItem:index = 0x63 token = 0xa0
8407c478bd9Sstevel@tonic-gatehidparser:      scanner: index  = 0x65 ch = 0x85
8417c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
8427c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x4,index = 0x66
8437c478bd9Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x85 before translation
8447c478bd9Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x67
8457c478bd9Sstevel@tonic-gatehidparser:      Start Collection:cache_ei = 0xcab7ea88, curr_ei = 0xcab7ea88
8467c478bd9Sstevel@tonic-gatehidparser:      hidparser_GlobalItem:index = 0x65 token = 0x84
8477c478bd9Sstevel@tonic-gatehidparser:      scanner: index  = 0x67 ch = 0x9
8487c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
8497c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x3a,index = 0x68
8507c478bd9Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x9 before translation
8517c478bd9Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x69
8527c478bd9Sstevel@tonic-gatehidparser:      hidparser_LocalItem:index = 0x67 token = 0x8
8537c478bd9Sstevel@tonic-gatehidparser:      scanner: index  = 0x69 ch = 0x95
8547c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
8557c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x4,index = 0x6a
8567c478bd9Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x95 before translation
8577c478bd9Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x6b
8587c478bd9Sstevel@tonic-gatehidparser:      hidparser_GlobalItem:index = 0x69 token = 0x94
8597c478bd9Sstevel@tonic-gatehidparser:      scanner: index  = 0x6b ch = 0xb1
8607c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
8617c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x2,index = 0x6c
8627c478bd9Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0xb1 before translation
8637c478bd9Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x6d
8647c478bd9Sstevel@tonic-gatehidparser:      hidparser_MainItem:index = 0x6b token = 0xb0
8657c478bd9Sstevel@tonic-gatehidparser:      scanner: index  = 0x6d ch = 0xc0
8667c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_length = 0
8677c478bd9Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0xc0 before translation
8687c478bd9Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x6e
8697c478bd9Sstevel@tonic-gatehidparser:      Main Item: token = 0xb0, curr_ei = 0xcab7acd0 will be the
8707c478bd9Sstevel@tonic-gate		child of prev_ei = 0xcab7ea88, cache_ei being 0xcab7ea88
8717c478bd9Sstevel@tonic-gatehidparser:      hidparser_MainItem:index = 0x6d token = 0xc0
8727c478bd9Sstevel@tonic-gatehidparser:      scanner: index  = 0x6e ch = 0xa1
8737c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
8747c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x2,index = 0x6f
8757c478bd9Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0xa1 before translation
8767c478bd9Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x70
8777c478bd9Sstevel@tonic-gatehidparser:      End Collection: cache_ei = 0xcab7ea88, curr_ei = 0xcab7ab20
8787c478bd9Sstevel@tonic-gatehidparser:      hidparser_MainItem:index = 0x6e token = 0xa0
8797c478bd9Sstevel@tonic-gatehidparser:      scanner: index  = 0x70 ch = 0x85
8807c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
8817c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x5,index = 0x71
8827c478bd9Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x85 before translation
8837c478bd9Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x72
8847c478bd9Sstevel@tonic-gatehidparser:      Start Collection:cache_ei = 0xcab7aaf0, curr_ei = 0xcab7aaf0
8857c478bd9Sstevel@tonic-gatehidparser:      hidparser_GlobalItem:index = 0x70 token = 0x84
8867c478bd9Sstevel@tonic-gatehidparser:      scanner: index  = 0x72 ch = 0x9
8877c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
8887c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x3a,index = 0x73
8897c478bd9Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x9 before translation
8907c478bd9Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x74
8917c478bd9Sstevel@tonic-gatehidparser:      hidparser_LocalItem:index = 0x72 token = 0x8
8927c478bd9Sstevel@tonic-gatehidparser:      scanner: index  = 0x74 ch = 0x95
8937c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
8947c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x1,index = 0x75
8957c478bd9Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x95 before translation
8967c478bd9Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x76
8977c478bd9Sstevel@tonic-gatehidparser:      hidparser_GlobalItem:index = 0x74 token = 0x94
8987c478bd9Sstevel@tonic-gatehidparser:      scanner: index  = 0x76 ch = 0xb1
8997c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
9007c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x2,index = 0x77
9017c478bd9Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0xb1 before translation
9027c478bd9Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x78
9037c478bd9Sstevel@tonic-gatehidparser:      hidparser_MainItem:index = 0x76 token = 0xb0
9047c478bd9Sstevel@tonic-gatehidparser:      scanner: index  = 0x78 ch = 0xc0
9057c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_length = 0
9067c478bd9Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0xc0 before translation
9077c478bd9Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x79
9087c478bd9Sstevel@tonic-gatehidparser:      Main Item: token = 0xb0, curr_ei = 0xcab7aac0 will be the
9097c478bd9Sstevel@tonic-gate		child of prev_ei = 0xcab7aaf0, cache_ei being 0xcab7aaf0
9107c478bd9Sstevel@tonic-gatehidparser:      hidparser_MainItem:index = 0x78 token = 0xc0
9117c478bd9Sstevel@tonic-gatehidparser:      scanner: index  = 0x79 ch = 0xa1
9127c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
9137c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x2,index = 0x7a
9147c478bd9Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0xa1 before translation
9157c478bd9Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x7b
9167c478bd9Sstevel@tonic-gatehidparser:      End Collection: cache_ei = 0xcab7aaf0, curr_ei = 0xcab7e548
9177c478bd9Sstevel@tonic-gatehidparser:      hidparser_MainItem:index = 0x79 token = 0xa0
9187c478bd9Sstevel@tonic-gatehidparser:      scanner: index  = 0x7b ch = 0x85
9197c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
9207c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x6,index = 0x7c
9217c478bd9Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x85 before translation
9227c478bd9Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x7d
9237c478bd9Sstevel@tonic-gatehidparser:      Start Collection:cache_ei = 0xcab7ea28, curr_ei = 0xcab7ea28
9247c478bd9Sstevel@tonic-gatehidparser:      hidparser_GlobalItem:index = 0x7b token = 0x84
9257c478bd9Sstevel@tonic-gatehidparser:      scanner: index  = 0x7d ch = 0x9
9267c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
9277c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x3a,index = 0x7e
9287c478bd9Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x9 before translation
9297c478bd9Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x7f
9307c478bd9Sstevel@tonic-gatehidparser:      hidparser_LocalItem:index = 0x7d token = 0x8
9317c478bd9Sstevel@tonic-gatehidparser:      scanner: index  = 0x7f ch = 0x95
9327c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
9337c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x1,index = 0x80
9347c478bd9Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x95 before translation
9357c478bd9Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x81
9367c478bd9Sstevel@tonic-gatehidparser:      hidparser_GlobalItem:index = 0x7f token = 0x94
9377c478bd9Sstevel@tonic-gatehidparser:      scanner: index  = 0x81 ch = 0xb1
9387c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
9397c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x2,index = 0x82
9407c478bd9Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0xb1 before translation
9417c478bd9Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x83
9427c478bd9Sstevel@tonic-gatehidparser:      hidparser_MainItem:index = 0x81 token = 0xb0
9437c478bd9Sstevel@tonic-gatehidparser:      scanner: index  = 0x83 ch = 0xc0
9447c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_length = 0
9457c478bd9Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0xc0 before translation
9467c478bd9Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x84
9477c478bd9Sstevel@tonic-gatehidparser:      Main Item: token = 0xb0, curr_ei = 0xcab7e608 will be the
9487c478bd9Sstevel@tonic-gate		child of prev_ei = 0xcab7ea28, cache_ei being 0xcab7ea28
9497c478bd9Sstevel@tonic-gatehidparser:      hidparser_MainItem:index = 0x83 token = 0xc0
9507c478bd9Sstevel@tonic-gatehidparser:      scanner: index  = 0x84 ch = 0xa1
9517c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
9527c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x2,index = 0x85
9537c478bd9Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0xa1 before translation
9547c478bd9Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x86
9557c478bd9Sstevel@tonic-gatehidparser:      End Collection: cache_ei = 0xcab7ea28, curr_ei = 0xcab7e5d8
9567c478bd9Sstevel@tonic-gatehidparser:      hidparser_MainItem:index = 0x84 token = 0xa0
9577c478bd9Sstevel@tonic-gatehidparser:      scanner: index  = 0x86 ch = 0x85
9587c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
9597c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x7,index = 0x87
9607c478bd9Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x85 before translation
9617c478bd9Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x88
9627c478bd9Sstevel@tonic-gatehidparser:      Start Collection:cache_ei = 0xcab7e5a8, curr_ei = 0xcab7e5a8
9637c478bd9Sstevel@tonic-gatehidparser:      hidparser_GlobalItem:index = 0x86 token = 0x84
9647c478bd9Sstevel@tonic-gatehidparser:      scanner: index  = 0x88 ch = 0x9
9657c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
9667c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x3a,index = 0x89
9677c478bd9Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x9 before translation
9687c478bd9Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x8a
9697c478bd9Sstevel@tonic-gatehidparser:      hidparser_LocalItem:index = 0x88 token = 0x8
9707c478bd9Sstevel@tonic-gatehidparser:      scanner: index  = 0x8a ch = 0x95
9717c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
9727c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x10,index = 0x8b
9737c478bd9Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x95 before translation
9747c478bd9Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x8c
9757c478bd9Sstevel@tonic-gatehidparser:      hidparser_GlobalItem:index = 0x8a token = 0x94
9767c478bd9Sstevel@tonic-gatehidparser:      scanner: index  = 0x8c ch = 0xb1
9777c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
9787c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x2,index = 0x8d
9797c478bd9Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0xb1 before translation
9807c478bd9Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x8e
9817c478bd9Sstevel@tonic-gatehidparser:      hidparser_MainItem:index = 0x8c token = 0xb0
9827c478bd9Sstevel@tonic-gatehidparser:      scanner: index  = 0x8e ch = 0xc0
9837c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_length = 0
9847c478bd9Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0xc0 before translation
9857c478bd9Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x8f
9867c478bd9Sstevel@tonic-gatehidparser:      Main Item: token = 0xb0, curr_ei = 0xcab7e578 will be the
9877c478bd9Sstevel@tonic-gate		child of prev_ei = 0xcab7e5a8, cache_ei being 0xcab7e5a8
9887c478bd9Sstevel@tonic-gatehidparser:      hidparser_MainItem:index = 0x8e token = 0xc0
9897c478bd9Sstevel@tonic-gatehidparser:      scanner: index  = 0x8f ch = 0xa1
9907c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
9917c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x2,index = 0x90
9927c478bd9Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0xa1 before translation
9937c478bd9Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x91
9947c478bd9Sstevel@tonic-gatehidparser:      End Collection: cache_ei = 0xcab7e5a8, curr_ei = 0xcab7af10
9957c478bd9Sstevel@tonic-gatehidparser:      hidparser_MainItem:index = 0x8f token = 0xa0
9967c478bd9Sstevel@tonic-gatehidparser:      scanner: index  = 0x91 ch = 0x85
9977c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
9987c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x8,index = 0x92
9997c478bd9Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x85 before translation
10007c478bd9Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x93
10017c478bd9Sstevel@tonic-gatehidparser:      Start Collection:cache_ei = 0xcab7aa60, curr_ei = 0xcab7aa60
10027c478bd9Sstevel@tonic-gatehidparser:      hidparser_GlobalItem:index = 0x91 token = 0x84
10037c478bd9Sstevel@tonic-gatehidparser:      scanner: index  = 0x93 ch = 0x9
10047c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
10057c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x3a,index = 0x94
10067c478bd9Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x9 before translation
10077c478bd9Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x95
10087c478bd9Sstevel@tonic-gatehidparser:      hidparser_LocalItem:index = 0x93 token = 0x8
10097c478bd9Sstevel@tonic-gatehidparser:      scanner: index  = 0x95 ch = 0x95
10107c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
10117c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x10,index = 0x96
10127c478bd9Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x95 before translation
10137c478bd9Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x97
10147c478bd9Sstevel@tonic-gatehidparser:      hidparser_GlobalItem:index = 0x95 token = 0x94
10157c478bd9Sstevel@tonic-gatehidparser:      scanner: index  = 0x97 ch = 0xb1
10167c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
10177c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x2,index = 0x98
10187c478bd9Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0xb1 before translation
10197c478bd9Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x99
10207c478bd9Sstevel@tonic-gatehidparser:      hidparser_MainItem:index = 0x97 token = 0xb0
10217c478bd9Sstevel@tonic-gatehidparser:      scanner: index  = 0x99 ch = 0xc0
10227c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_length = 0
10237c478bd9Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0xc0 before translation
10247c478bd9Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x9a
10257c478bd9Sstevel@tonic-gatehidparser:      Main Item: token = 0xb0, curr_ei = 0xcab7aa30 will be the
10267c478bd9Sstevel@tonic-gate		child of prev_ei = 0xcab7aa60, cache_ei being 0xcab7aa60
10277c478bd9Sstevel@tonic-gatehidparser:      hidparser_MainItem:index = 0x99 token = 0xc0
10287c478bd9Sstevel@tonic-gatehidparser:      scanner: index  = 0x9a ch = 0xa1
10297c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
10307c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x2,index = 0x9b
10317c478bd9Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0xa1 before translation
10327c478bd9Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x9c
10337c478bd9Sstevel@tonic-gatehidparser:      End Collection: cache_ei = 0xcab7aa60, curr_ei = 0xcab7aa00
10347c478bd9Sstevel@tonic-gatehidparser:      hidparser_MainItem:index = 0x9a token = 0xa0
10357c478bd9Sstevel@tonic-gatehidparser:      scanner: index  = 0x9c ch = 0x85
10367c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
10377c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x9,index = 0x9d
10387c478bd9Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x85 before translation
10397c478bd9Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x9e
10407c478bd9Sstevel@tonic-gatehidparser:      Start Collection:cache_ei = 0xcab7a9d0, curr_ei = 0xcab7a9d0
10417c478bd9Sstevel@tonic-gatehidparser:      hidparser_GlobalItem:index = 0x9c token = 0x84
10427c478bd9Sstevel@tonic-gatehidparser:      scanner: index  = 0x9e ch = 0x9
10437c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
10447c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x3a,index = 0x9f
10457c478bd9Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x9 before translation
10467c478bd9Sstevel@tonic-gatehidparser:      scanner: aindex  = 0xa0
10477c478bd9Sstevel@tonic-gatehidparser:      hidparser_LocalItem:index = 0x9e token = 0x8
10487c478bd9Sstevel@tonic-gatehidparser:      scanner: index  = 0xa0 ch = 0x95
10497c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
10507c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0xc,index = 0xa1
10517c478bd9Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x95 before translation
10527c478bd9Sstevel@tonic-gatehidparser:      scanner: aindex  = 0xa2
10537c478bd9Sstevel@tonic-gatehidparser:      hidparser_GlobalItem:index = 0xa0 token = 0x94
10547c478bd9Sstevel@tonic-gatehidparser:      scanner: index  = 0xa2 ch = 0xb1
10557c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
10567c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x2,index = 0xa3
10577c478bd9Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0xb1 before translation
10587c478bd9Sstevel@tonic-gatehidparser:      scanner: aindex  = 0xa4
10597c478bd9Sstevel@tonic-gatehidparser:      hidparser_MainItem:index = 0xa2 token = 0xb0
10607c478bd9Sstevel@tonic-gatehidparser:      scanner: index  = 0xa4 ch = 0xc0
10617c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_length = 0
10627c478bd9Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0xc0 before translation
10637c478bd9Sstevel@tonic-gatehidparser:      scanner: aindex  = 0xa5
10647c478bd9Sstevel@tonic-gatehidparser:      Main Item: token = 0xb0, curr_ei = 0xcab7a9a0 will be the
10657c478bd9Sstevel@tonic-gate		child of prev_ei = 0xcab7a9d0, cache_ei being 0xcab7a9d0
10667c478bd9Sstevel@tonic-gatehidparser:      hidparser_MainItem:index = 0xa4 token = 0xc0
10677c478bd9Sstevel@tonic-gatehidparser:      scanner: index  = 0xa5 ch = 0xa1
10687c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
10697c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x2,index = 0xa6
10707c478bd9Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0xa1 before translation
10717c478bd9Sstevel@tonic-gatehidparser:      scanner: aindex  = 0xa7
10727c478bd9Sstevel@tonic-gatehidparser:      End Collection: cache_ei = 0xcab7a9d0, curr_ei = 0xcab7a970
10737c478bd9Sstevel@tonic-gatehidparser:      hidparser_MainItem:index = 0xa5 token = 0xa0
10747c478bd9Sstevel@tonic-gatehidparser:      scanner: index  = 0xa7 ch = 0x85
10757c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
10767c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0xa,index = 0xa8
10777c478bd9Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x85 before translation
10787c478bd9Sstevel@tonic-gatehidparser:      scanner: aindex  = 0xa9
10797c478bd9Sstevel@tonic-gatehidparser:      Start Collection:cache_ei = 0xcab7a940, curr_ei = 0xcab7a940
10807c478bd9Sstevel@tonic-gatehidparser:      hidparser_GlobalItem:index = 0xa7 token = 0x84
10817c478bd9Sstevel@tonic-gatehidparser:      scanner: index  = 0xa9 ch = 0x9
10827c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
10837c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x3a,index = 0xaa
10847c478bd9Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x9 before translation
10857c478bd9Sstevel@tonic-gatehidparser:      scanner: aindex  = 0xab
10867c478bd9Sstevel@tonic-gatehidparser:      hidparser_LocalItem:index = 0xa9 token = 0x8
10877c478bd9Sstevel@tonic-gatehidparser:      scanner: index  = 0xab ch = 0x95
10887c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
10897c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x1,index = 0xac
10907c478bd9Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x95 before translation
10917c478bd9Sstevel@tonic-gatehidparser:      scanner: aindex  = 0xad
10927c478bd9Sstevel@tonic-gatehidparser:      hidparser_GlobalItem:index = 0xab token = 0x94
10937c478bd9Sstevel@tonic-gatehidparser:      scanner: index  = 0xad ch = 0xb1
10947c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
10957c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x2,index = 0xae
10967c478bd9Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0xb1 before translation
10977c478bd9Sstevel@tonic-gatehidparser:      scanner: aindex  = 0xaf
10987c478bd9Sstevel@tonic-gatehidparser:      hidparser_MainItem:index = 0xad token = 0xb0
10997c478bd9Sstevel@tonic-gatehidparser:      scanner: index  = 0xaf ch = 0xc0
11007c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_length = 0
11017c478bd9Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0xc0 before translation
11027c478bd9Sstevel@tonic-gatehidparser:      scanner: aindex  = 0xb0
11037c478bd9Sstevel@tonic-gatehidparser:      Main Item: token = 0xb0, curr_ei = 0xcab7a910 will be the
11047c478bd9Sstevel@tonic-gate	 	child of prev_ei = 0xcab7a940, cache_ei being 0xcab7a940
11057c478bd9Sstevel@tonic-gatehidparser:      hidparser_MainItem:index = 0xaf token = 0xc0
11067c478bd9Sstevel@tonic-gatehidparser:      scanner: index  = 0xb0 ch = 0xa1
11077c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
11087c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x2,index = 0xb1
11097c478bd9Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0xa1 before translation
11107c478bd9Sstevel@tonic-gatehidparser:      scanner: aindex  = 0xb2
11117c478bd9Sstevel@tonic-gatehidparser:      End Collection: cache_ei = 0xcab7a940, curr_ei = 0xcab7a8e0
11127c478bd9Sstevel@tonic-gatehidparser:      hidparser_MainItem:index = 0xb0 token = 0xa0
11137c478bd9Sstevel@tonic-gatehidparser:      scanner: index  = 0xb2 ch = 0x85
11147c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
11157c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0xb,index = 0xb3
11167c478bd9Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x85 before translation
11177c478bd9Sstevel@tonic-gatehidparser:      scanner: aindex  = 0xb4
11187c478bd9Sstevel@tonic-gatehidparser:      Start Collection:cache_ei = 0xcab7a8b0, curr_ei = 0xcab7a8b0
11197c478bd9Sstevel@tonic-gatehidparser:      hidparser_GlobalItem:index = 0xb2 token = 0x84
11207c478bd9Sstevel@tonic-gatehidparser:      scanner: index  = 0xb4 ch = 0x9
11217c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
11227c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x3a,index = 0xb5
11237c478bd9Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x9 before translation
11247c478bd9Sstevel@tonic-gatehidparser:      scanner: aindex  = 0xb6
11257c478bd9Sstevel@tonic-gatehidparser:      hidparser_LocalItem:index = 0xb4 token = 0x8
11267c478bd9Sstevel@tonic-gatehidparser:      scanner: index  = 0xb6 ch = 0x95
11277c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
11287c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x1,index = 0xb7
11297c478bd9Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x95 before translation
11307c478bd9Sstevel@tonic-gatehidparser:      scanner: aindex  = 0xb8
11317c478bd9Sstevel@tonic-gatehidparser:      hidparser_GlobalItem:index = 0xb6 token = 0x94
11327c478bd9Sstevel@tonic-gatehidparser:      scanner: index  = 0xb8 ch = 0xb1
11337c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
11347c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x2,index = 0xb9
11357c478bd9Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0xb1 before translation
11367c478bd9Sstevel@tonic-gatehidparser:      scanner: aindex  = 0xba
11377c478bd9Sstevel@tonic-gatehidparser:      hidparser_MainItem:index = 0xb8 token = 0xb0
11387c478bd9Sstevel@tonic-gatehidparser:      scanner: index  = 0xba ch = 0xc0
11397c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_length = 0
11407c478bd9Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0xc0 before translation
11417c478bd9Sstevel@tonic-gatehidparser:      scanner: aindex  = 0xbb
11427c478bd9Sstevel@tonic-gatehidparser:      Main Item: token = 0xb0, curr_ei = 0xcab7a880 will be the
11437c478bd9Sstevel@tonic-gate	 	child of prev_ei = 0xcab7a8b0, cache_ei being 0xcab7a8b0
11447c478bd9Sstevel@tonic-gatehidparser:      hidparser_MainItem:index = 0xba token = 0xc0
11457c478bd9Sstevel@tonic-gatehidparser:      scanner: index  = 0xbb ch = 0xa1
11467c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
11477c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x2,index = 0xbc
11487c478bd9Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0xa1 before translation
11497c478bd9Sstevel@tonic-gatehidparser:      scanner: aindex  = 0xbd
11507c478bd9Sstevel@tonic-gatehidparser:      End Collection: cache_ei = 0xcab7a8b0, curr_ei = 0xcab7a850
11517c478bd9Sstevel@tonic-gatehidparser:      hidparser_MainItem:index = 0xbb token = 0xa0
11527c478bd9Sstevel@tonic-gatehidparser:      scanner: index  = 0xbd ch = 0x85
11537c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
11547c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0xc,index = 0xbe
11557c478bd9Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x85 before translation
11567c478bd9Sstevel@tonic-gatehidparser:      scanner: aindex  = 0xbf
11577c478bd9Sstevel@tonic-gatehidparser:      Start Collection:cache_ei = 0xcab7a820, curr_ei = 0xcab7a820
11587c478bd9Sstevel@tonic-gatehidparser:      hidparser_GlobalItem:index = 0xbd token = 0x84
11597c478bd9Sstevel@tonic-gatehidparser:      scanner: index  = 0xbf ch = 0x9
11607c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
11617c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x3a,index = 0xc0
11627c478bd9Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x9 before translation
11637c478bd9Sstevel@tonic-gatehidparser:      scanner: aindex  = 0xc1
11647c478bd9Sstevel@tonic-gatehidparser:      hidparser_LocalItem:index = 0xbf token = 0x8
11657c478bd9Sstevel@tonic-gatehidparser:      scanner: index  = 0xc1 ch = 0x95
11667c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
11677c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x1,index = 0xc2
11687c478bd9Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x95 before translation
11697c478bd9Sstevel@tonic-gatehidparser:      scanner: aindex  = 0xc3
11707c478bd9Sstevel@tonic-gatehidparser:      hidparser_GlobalItem:index = 0xc1 token = 0x94
11717c478bd9Sstevel@tonic-gatehidparser:      scanner: index  = 0xc3 ch = 0xb1
11727c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
11737c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x2,index = 0xc4
11747c478bd9Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0xb1 before translation
11757c478bd9Sstevel@tonic-gatehidparser:      scanner: aindex  = 0xc5
11767c478bd9Sstevel@tonic-gatehidparser:      hidparser_MainItem:index = 0xc3 token = 0xb0
11777c478bd9Sstevel@tonic-gatehidparser:      scanner: index  = 0xc5 ch = 0xc0
11787c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_length = 0
11797c478bd9Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0xc0 before translation
11807c478bd9Sstevel@tonic-gatehidparser:      scanner: aindex  = 0xc6
11817c478bd9Sstevel@tonic-gatehidparser:      Main Item: token = 0xb0, curr_ei = 0xcab7a7f0 will be the
11827c478bd9Sstevel@tonic-gate	 	child of prev_ei = 0xcab7a820, cache_ei being 0xcab7a820
11837c478bd9Sstevel@tonic-gatehidparser:      hidparser_MainItem:index = 0xc5 token = 0xc0
11847c478bd9Sstevel@tonic-gatehidparser:      scanner: index  = 0xc6 ch = 0xa1
11857c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
11867c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x2,index = 0xc7
11877c478bd9Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0xa1 before translation
11887c478bd9Sstevel@tonic-gatehidparser:      scanner: aindex  = 0xc8
11897c478bd9Sstevel@tonic-gatehidparser:      End Collection: cache_ei = 0xcab7a820, curr_ei = 0xcab7a7c0
11907c478bd9Sstevel@tonic-gatehidparser:      hidparser_MainItem:index = 0xc6 token = 0xa0
11917c478bd9Sstevel@tonic-gatehidparser:      scanner: index  = 0xc8 ch = 0x85
11927c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
11937c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0xd,index = 0xc9
11947c478bd9Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x85 before translation
11957c478bd9Sstevel@tonic-gatehidparser:      scanner: aindex  = 0xca
11967c478bd9Sstevel@tonic-gatehidparser:      Start Collection:cache_ei = 0xcab7a790, curr_ei = 0xcab7a790
11977c478bd9Sstevel@tonic-gatehidparser:      hidparser_GlobalItem:index = 0xc8 token = 0x84
11987c478bd9Sstevel@tonic-gatehidparser:      scanner: index  = 0xca ch = 0x9
11997c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
12007c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x3a,index = 0xcb
12017c478bd9Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x9 before translation
12027c478bd9Sstevel@tonic-gatehidparser:      scanner: aindex  = 0xcc
12037c478bd9Sstevel@tonic-gatehidparser:      hidparser_LocalItem:index = 0xca token = 0x8
12047c478bd9Sstevel@tonic-gatehidparser:      scanner: index  = 0xcc ch = 0x95
12057c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
12067c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x2,index = 0xcd
12077c478bd9Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x95 before translation
12087c478bd9Sstevel@tonic-gatehidparser:      scanner: aindex  = 0xce
12097c478bd9Sstevel@tonic-gatehidparser:      hidparser_GlobalItem:index = 0xcc token = 0x94
12107c478bd9Sstevel@tonic-gatehidparser:      scanner: index  = 0xce ch = 0xb1
12117c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
12127c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x2,index = 0xcf
12137c478bd9Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0xb1 before translation
12147c478bd9Sstevel@tonic-gatehidparser:      scanner: aindex  = 0xd0
12157c478bd9Sstevel@tonic-gatehidparser:      hidparser_MainItem:index = 0xce token = 0xb0
12167c478bd9Sstevel@tonic-gatehidparser:      scanner: index  = 0xd0 ch = 0xc0
12177c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_length = 0
12187c478bd9Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0xc0 before translation
12197c478bd9Sstevel@tonic-gatehidparser:      scanner: aindex  = 0xd1
12207c478bd9Sstevel@tonic-gatehidparser:      Main Item: token = 0xb0, curr_ei = 0xcab7a760 will be the
12217c478bd9Sstevel@tonic-gate	 	child of prev_ei = 0xcab7a790, cache_ei being 0xcab7a790
12227c478bd9Sstevel@tonic-gatehidparser:      hidparser_MainItem:index = 0xd0 token = 0xc0
12237c478bd9Sstevel@tonic-gatehidparser:      scanner: index  = 0xd1 ch = 0xc0
12247c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_length = 0
12257c478bd9Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0xc0 before translation
12267c478bd9Sstevel@tonic-gatehidparser:      scanner: aindex  = 0xd2
12277c478bd9Sstevel@tonic-gatehidparser:      End Collection: cache_ei = 0xcab7a790, curr_ei = 0xcab7a730
12287c478bd9Sstevel@tonic-gatehidparser:      hidparser_MainItem:index = 0xd1 token = 0xc0
12297c478bd9Sstevel@tonic-gatehidparser:      scanner: index  = 0xd2 ch = 0xc0
12307c478bd9Sstevel@tonic-gatehidparser:      scanner: parsed_length = 0
12317c478bd9Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0xc0 before translation
12327c478bd9Sstevel@tonic-gatehidparser:      scanner: aindex  = 0xd3
12337c478bd9Sstevel@tonic-gatehidparser:      End Collection: cache_ei = 0xcab7ea58, curr_ei = 0xcab7a700
12347c478bd9Sstevel@tonic-gatehidparser:      hidparser_MainItem:index = 0xd2 token = 0xc0
12357c478bd9Sstevel@tonic-gatehidparser:      scanner: eindex  = 0xd3
12367c478bd9Sstevel@tonic-gatehidparser:      End Collection: cache_ei = 0xcab8d220, curr_ei = 0xcab7a6d0
12377c478bd9Sstevel@tonic-gatehidparser:      Usage Page(0x1)
12387c478bd9Sstevel@tonic-gatehidparser:      Usage(0x8)
12397c478bd9Sstevel@tonic-gatehidparser:      Collection(0x1)
12407c478bd9Sstevel@tonic-gatehidparser:           Usage Page(0x1)
12417c478bd9Sstevel@tonic-gatehidparser:           Collection(0x0)
12427c478bd9Sstevel@tonic-gatehidparser:                Usage Page(0x1)
12437c478bd9Sstevel@tonic-gatehidparser:                Report Id(0x1)
12447c478bd9Sstevel@tonic-gatehidparser:                Logical Minimum(0x8000)
12457c478bd9Sstevel@tonic-gatehidparser:                Logical Maximum(0x7FFF)
12467c478bd9Sstevel@tonic-gatehidparser:                Report Size(0x10)
12477c478bd9Sstevel@tonic-gatehidparser:                Report Count(0x3)
12487c478bd9Sstevel@tonic-gatehidparser:                Usage(0x30)
12497c478bd9Sstevel@tonic-gatehidparser:                Usage(0x31)
12507c478bd9Sstevel@tonic-gatehidparser:                Usage(0x32)
12517c478bd9Sstevel@tonic-gatehidparser:                Input(0x2)
12527c478bd9Sstevel@tonic-gatehidparser:           End Collection(0x0)
12537c478bd9Sstevel@tonic-gatehidparser:           Usage Page(0x1)
12547c478bd9Sstevel@tonic-gatehidparser:           Report Id(0x1)
12557c478bd9Sstevel@tonic-gatehidparser:           Logical Minimum(0x8000)
12567c478bd9Sstevel@tonic-gatehidparser:           Logical Maximum(0x7FFF)
12577c478bd9Sstevel@tonic-gatehidparser:           Report Size(0x10)
12587c478bd9Sstevel@tonic-gatehidparser:           Report Count(0x3)
12597c478bd9Sstevel@tonic-gatehidparser:           Collection(0x0)
12607c478bd9Sstevel@tonic-gatehidparser:                Usage Page(0x1)
12617c478bd9Sstevel@tonic-gatehidparser:                Logical Minimum(0x8000)
12627c478bd9Sstevel@tonic-gatehidparser:                Logical Maximum(0x7FFF)
12637c478bd9Sstevel@tonic-gatehidparser:                Report Id(0x2)
12647c478bd9Sstevel@tonic-gatehidparser:                Report Size(0x10)
12657c478bd9Sstevel@tonic-gatehidparser:                Report Count(0x3)
12667c478bd9Sstevel@tonic-gatehidparser:                Usage(0x33)
12677c478bd9Sstevel@tonic-gatehidparser:                Usage(0x34)
12687c478bd9Sstevel@tonic-gatehidparser:                Usage(0x35)
12697c478bd9Sstevel@tonic-gatehidparser:                Input(0x2)
12707c478bd9Sstevel@tonic-gatehidparser:           End Collection(0x0)
12717c478bd9Sstevel@tonic-gatehidparser:           Usage Page(0x1)
12727c478bd9Sstevel@tonic-gatehidparser:           Logical Minimum(0x8000)
12737c478bd9Sstevel@tonic-gatehidparser:           Logical Maximum(0x7FFF)
12747c478bd9Sstevel@tonic-gatehidparser:           Report Id(0x2)
12757c478bd9Sstevel@tonic-gatehidparser:           Report Size(0x10)
12767c478bd9Sstevel@tonic-gatehidparser:           Report Count(0x3)
12777c478bd9Sstevel@tonic-gatehidparser:           Collection(0x2)
12787c478bd9Sstevel@tonic-gatehidparser:                Logical Minimum(0x8000)
12797c478bd9Sstevel@tonic-gatehidparser:                Logical Maximum(0x7FFF)
12807c478bd9Sstevel@tonic-gatehidparser:                Report Id(0x3)
12817c478bd9Sstevel@tonic-gatehidparser:                Usage Page(0x1)
12827c478bd9Sstevel@tonic-gatehidparser:                Report Size(0x10)
12837c478bd9Sstevel@tonic-gatehidparser:                Report Count(0x1)
12847c478bd9Sstevel@tonic-gatehidparser:                Usage(0x3A)
12857c478bd9Sstevel@tonic-gatehidparser:                Input(0x2)
12867c478bd9Sstevel@tonic-gatehidparser:                Report Id(0x3)
12877c478bd9Sstevel@tonic-gatehidparser:                Usage Page(0x9)
12887c478bd9Sstevel@tonic-gatehidparser:                Logical Minimum(0x0)
12897c478bd9Sstevel@tonic-gatehidparser:                Logical Maximum(0x1)
12907c478bd9Sstevel@tonic-gatehidparser:                Physical Minimum(0x0)
12917c478bd9Sstevel@tonic-gatehidparser:                Physical Maximum(0x1)
12927c478bd9Sstevel@tonic-gatehidparser:                Report Size(0x1)
12937c478bd9Sstevel@tonic-gatehidparser:                Report Count(0xD)
12947c478bd9Sstevel@tonic-gatehidparser:                Usage Minimum(0x1)
12957c478bd9Sstevel@tonic-gatehidparser:                Usage Maximum(0xD)
12967c478bd9Sstevel@tonic-gatehidparser:                Input(0x2)
12977c478bd9Sstevel@tonic-gatehidparser:                Report Id(0x3)
12987c478bd9Sstevel@tonic-gatehidparser:                Usage Page(0x9)
12997c478bd9Sstevel@tonic-gatehidparser:                Logical Minimum(0x0)
13007c478bd9Sstevel@tonic-gatehidparser:                Logical Maximum(0x1)
13017c478bd9Sstevel@tonic-gatehidparser:                Physical Minimum(0x0)
13027c478bd9Sstevel@tonic-gatehidparser:                Physical Maximum(0x1)
13037c478bd9Sstevel@tonic-gatehidparser:                Report Size(0x1)
13047c478bd9Sstevel@tonic-gatehidparser:                Report Count(0x3)
13057c478bd9Sstevel@tonic-gatehidparser:                Input(0x1)
13067c478bd9Sstevel@tonic-gatehidparser:           End Collection(0x0)
13077c478bd9Sstevel@tonic-gatehidparser:           Report Id(0x3)
13087c478bd9Sstevel@tonic-gatehidparser:           Logical Minimum(0x0)
13097c478bd9Sstevel@tonic-gatehidparser:           Logical Maximum(0x1)
13107c478bd9Sstevel@tonic-gatehidparser:           Physical Minimum(0x0)
13117c478bd9Sstevel@tonic-gatehidparser:           Physical Maximum(0x1)
13127c478bd9Sstevel@tonic-gatehidparser:           Report Size(0x1)
13137c478bd9Sstevel@tonic-gatehidparser:           Report Count(0x3)
13147c478bd9Sstevel@tonic-gatehidparser:           Usage Page(0x1)
13157c478bd9Sstevel@tonic-gatehidparser:           Usage(0x3A)
13167c478bd9Sstevel@tonic-gatehidparser:           Collection(0x2)
13177c478bd9Sstevel@tonic-gatehidparser:                Report Id(0x3)
13187c478bd9Sstevel@tonic-gatehidparser:                Physical Minimum(0x0)
13197c478bd9Sstevel@tonic-gatehidparser:                Physical Maximum(0x1)
13207c478bd9Sstevel@tonic-gatehidparser:                Report Count(0x3)
13217c478bd9Sstevel@tonic-gatehidparser:                Usage Page(0x1)
13227c478bd9Sstevel@tonic-gatehidparser:                Logical Minimum(0x80)
13237c478bd9Sstevel@tonic-gatehidparser:                Logical Maximum(0x7F)
13247c478bd9Sstevel@tonic-gatehidparser:                Report Size(0x8)
13257c478bd9Sstevel@tonic-gatehidparser:                Usage(0x3A)
13267c478bd9Sstevel@tonic-gatehidparser:                Collection(0x2)
13277c478bd9Sstevel@tonic-gatehidparser:                     Physical Minimum(0x0)
13287c478bd9Sstevel@tonic-gatehidparser:                     Physical Maximum(0x1)
13297c478bd9Sstevel@tonic-gatehidparser:                     Usage Page(0x1)
13307c478bd9Sstevel@tonic-gatehidparser:                     Logical Minimum(0x80)
13317c478bd9Sstevel@tonic-gatehidparser:                     Logical Maximum(0x7F)
13327c478bd9Sstevel@tonic-gatehidparser:                     Report Size(0x8)
13337c478bd9Sstevel@tonic-gatehidparser:                     Report Id(0x4)
13347c478bd9Sstevel@tonic-gatehidparser:                     Report Count(0x4)
13357c478bd9Sstevel@tonic-gatehidparser:                     Usage(0x3A)
13367c478bd9Sstevel@tonic-gatehidparser:                     Feature(0x2)
13377c478bd9Sstevel@tonic-gatehidparser:                End Collection(0x0)
13387c478bd9Sstevel@tonic-gatehidparser:                Physical Minimum(0x0)
13397c478bd9Sstevel@tonic-gatehidparser:                Physical Maximum(0x1)
13407c478bd9Sstevel@tonic-gatehidparser:                Usage Page(0x1)
13417c478bd9Sstevel@tonic-gatehidparser:                Logical Minimum(0x80)
13427c478bd9Sstevel@tonic-gatehidparser:                Logical Maximum(0x7F)
13437c478bd9Sstevel@tonic-gatehidparser:                Report Size(0x8)
13447c478bd9Sstevel@tonic-gatehidparser:                Report Id(0x4)
13457c478bd9Sstevel@tonic-gatehidparser:                Report Count(0x4)
13467c478bd9Sstevel@tonic-gatehidparser:                Collection(0x2)
13477c478bd9Sstevel@tonic-gatehidparser:                     Physical Minimum(0x0)
13487c478bd9Sstevel@tonic-gatehidparser:                     Physical Maximum(0x1)
13497c478bd9Sstevel@tonic-gatehidparser:                     Usage Page(0x1)
13507c478bd9Sstevel@tonic-gatehidparser:                     Logical Minimum(0x80)
13517c478bd9Sstevel@tonic-gatehidparser:                     Logical Maximum(0x7F)
13527c478bd9Sstevel@tonic-gatehidparser:                     Report Size(0x8)
13537c478bd9Sstevel@tonic-gatehidparser:                     Report Id(0x5)
13547c478bd9Sstevel@tonic-gatehidparser:                     Report Count(0x1)
13557c478bd9Sstevel@tonic-gatehidparser:                     Usage(0x3A)
13567c478bd9Sstevel@tonic-gatehidparser:                     Feature(0x2)
13577c478bd9Sstevel@tonic-gatehidparser:                End Collection(0x0)
13587c478bd9Sstevel@tonic-gatehidparser:                Physical Minimum(0x0)
13597c478bd9Sstevel@tonic-gatehidparser:                Physical Maximum(0x1)
13607c478bd9Sstevel@tonic-gatehidparser:                Usage Page(0x1)
13617c478bd9Sstevel@tonic-gatehidparser:                Logical Minimum(0x80)
13627c478bd9Sstevel@tonic-gatehidparser:                Logical Maximum(0x7F)
13637c478bd9Sstevel@tonic-gatehidparser:                Report Size(0x8)
13647c478bd9Sstevel@tonic-gatehidparser:                Report Id(0x5)
13657c478bd9Sstevel@tonic-gatehidparser:                Report Count(0x1)
13667c478bd9Sstevel@tonic-gatehidparser:                Collection(0x2)
13677c478bd9Sstevel@tonic-gatehidparser:                     Physical Minimum(0x0)
13687c478bd9Sstevel@tonic-gatehidparser:                     Physical Maximum(0x1)
13697c478bd9Sstevel@tonic-gatehidparser:                     Usage Page(0x1)
13707c478bd9Sstevel@tonic-gatehidparser:                     Logical Minimum(0x80)
13717c478bd9Sstevel@tonic-gatehidparser:                     Logical Maximum(0x7F)
13727c478bd9Sstevel@tonic-gatehidparser:                     Report Size(0x8)
13737c478bd9Sstevel@tonic-gatehidparser:                     Report Id(0x6)
13747c478bd9Sstevel@tonic-gatehidparser:                     Report Count(0x1)
13757c478bd9Sstevel@tonic-gatehidparser:                     Usage(0x3A)
13767c478bd9Sstevel@tonic-gatehidparser:                     Feature(0x2)
13777c478bd9Sstevel@tonic-gatehidparser:                End Collection(0x0)
13787c478bd9Sstevel@tonic-gatehidparser:                Physical Minimum(0x0)
13797c478bd9Sstevel@tonic-gatehidparser:                Physical Maximum(0x1)
13807c478bd9Sstevel@tonic-gatehidparser:                Usage Page(0x1)
13817c478bd9Sstevel@tonic-gatehidparser:                Logical Minimum(0x80)
13827c478bd9Sstevel@tonic-gatehidparser:                Logical Maximum(0x7F)
13837c478bd9Sstevel@tonic-gatehidparser:                Report Size(0x8)
13847c478bd9Sstevel@tonic-gatehidparser:                Report Id(0x6)
13857c478bd9Sstevel@tonic-gatehidparser:                Report Count(0x1)
13867c478bd9Sstevel@tonic-gatehidparser:                Collection(0x2)
13877c478bd9Sstevel@tonic-gatehidparser:                     Physical Minimum(0x0)
13887c478bd9Sstevel@tonic-gatehidparser:                     Physical Maximum(0x1)
13897c478bd9Sstevel@tonic-gatehidparser:                     Usage Page(0x1)
13907c478bd9Sstevel@tonic-gatehidparser:                     Logical Minimum(0x80)
13917c478bd9Sstevel@tonic-gatehidparser:                     Logical Maximum(0x7F)
13927c478bd9Sstevel@tonic-gatehidparser:                     Report Size(0x8)
13937c478bd9Sstevel@tonic-gatehidparser:                     Report Id(0x7)
13947c478bd9Sstevel@tonic-gatehidparser:                     Report Count(0x10)
13957c478bd9Sstevel@tonic-gatehidparser:                     Usage(0x3A)
13967c478bd9Sstevel@tonic-gatehidparser:                     Feature(0x2)
13977c478bd9Sstevel@tonic-gatehidparser:                End Collection(0x0)
13987c478bd9Sstevel@tonic-gatehidparser:                Physical Minimum(0x0)
13997c478bd9Sstevel@tonic-gatehidparser:                Physical Maximum(0x1)
14007c478bd9Sstevel@tonic-gatehidparser:                Usage Page(0x1)
14017c478bd9Sstevel@tonic-gatehidparser:                Logical Minimum(0x80)
14027c478bd9Sstevel@tonic-gatehidparser:                Logical Maximum(0x7F)
14037c478bd9Sstevel@tonic-gatehidparser:                Report Size(0x8)
14047c478bd9Sstevel@tonic-gatehidparser:                Report Id(0x7)
14057c478bd9Sstevel@tonic-gatehidparser:                Report Count(0x10)
14067c478bd9Sstevel@tonic-gatehidparser:                Collection(0x2)
14077c478bd9Sstevel@tonic-gatehidparser:                     Physical Minimum(0x0)
14087c478bd9Sstevel@tonic-gatehidparser:                     Physical Maximum(0x1)
14097c478bd9Sstevel@tonic-gatehidparser:                     Usage Page(0x1)
14107c478bd9Sstevel@tonic-gatehidparser:                     Logical Minimum(0x80)
14117c478bd9Sstevel@tonic-gatehidparser:                     Logical Maximum(0x7F)
14127c478bd9Sstevel@tonic-gatehidparser:                     Report Size(0x8)
14137c478bd9Sstevel@tonic-gatehidparser:                     Report Id(0x8)
14147c478bd9Sstevel@tonic-gatehidparser:                     Report Count(0x10)
14157c478bd9Sstevel@tonic-gatehidparser:                     Usage(0x3A)
14167c478bd9Sstevel@tonic-gatehidparser:                     Feature(0x2)
14177c478bd9Sstevel@tonic-gatehidparser:                End Collection(0x0)
14187c478bd9Sstevel@tonic-gatehidparser:                Physical Minimum(0x0)
14197c478bd9Sstevel@tonic-gatehidparser:                Physical Maximum(0x1)
14207c478bd9Sstevel@tonic-gatehidparser:                Usage Page(0x1)
14217c478bd9Sstevel@tonic-gatehidparser:                Logical Minimum(0x80)
14227c478bd9Sstevel@tonic-gatehidparser:                Logical Maximum(0x7F)
14237c478bd9Sstevel@tonic-gatehidparser:                Report Size(0x8)
14247c478bd9Sstevel@tonic-gatehidparser:                Report Id(0x8)
14257c478bd9Sstevel@tonic-gatehidparser:                Report Count(0x10)
14267c478bd9Sstevel@tonic-gatehidparser:                Collection(0x2)
14277c478bd9Sstevel@tonic-gatehidparser:                     Physical Minimum(0x0)
14287c478bd9Sstevel@tonic-gatehidparser:                     Physical Maximum(0x1)
14297c478bd9Sstevel@tonic-gatehidparser:                     Usage Page(0x1)
14307c478bd9Sstevel@tonic-gatehidparser:                     Logical Minimum(0x80)
14317c478bd9Sstevel@tonic-gatehidparser:                     Logical Maximum(0x7F)
14327c478bd9Sstevel@tonic-gatehidparser:                     Report Size(0x8)
14337c478bd9Sstevel@tonic-gatehidparser:                     Report Id(0x9)
14347c478bd9Sstevel@tonic-gatehidparser:                     Report Count(0xC)
14357c478bd9Sstevel@tonic-gatehidparser:                     Usage(0x3A)
14367c478bd9Sstevel@tonic-gatehidparser:                     Feature(0x2)
14377c478bd9Sstevel@tonic-gatehidparser:                End Collection(0x0)
14387c478bd9Sstevel@tonic-gatehidparser:                Physical Minimum(0x0)
14397c478bd9Sstevel@tonic-gatehidparser:                Physical Maximum(0x1)
14407c478bd9Sstevel@tonic-gatehidparser:                Usage Page(0x1)
14417c478bd9Sstevel@tonic-gatehidparser:                Logical Minimum(0x80)
14427c478bd9Sstevel@tonic-gatehidparser:                Logical Maximum(0x7F)
14437c478bd9Sstevel@tonic-gatehidparser:                Report Size(0x8)
14447c478bd9Sstevel@tonic-gatehidparser:                Report Id(0x9)
14457c478bd9Sstevel@tonic-gatehidparser:                Report Count(0xC)
14467c478bd9Sstevel@tonic-gatehidparser:                Collection(0x2)
14477c478bd9Sstevel@tonic-gatehidparser:                     Physical Minimum(0x0)
14487c478bd9Sstevel@tonic-gatehidparser:                     Physical Maximum(0x1)
14497c478bd9Sstevel@tonic-gatehidparser:                     Usage Page(0x1)
14507c478bd9Sstevel@tonic-gatehidparser:                     Logical Minimum(0x80)
14517c478bd9Sstevel@tonic-gatehidparser:                     Logical Maximum(0x7F)
14527c478bd9Sstevel@tonic-gatehidparser:                     Report Size(0x8)
14537c478bd9Sstevel@tonic-gatehidparser:                     Report Id(0xA)
14547c478bd9Sstevel@tonic-gatehidparser:                     Report Count(0x1)
14557c478bd9Sstevel@tonic-gatehidparser:                     Usage(0x3A)
14567c478bd9Sstevel@tonic-gatehidparser:                     Feature(0x2)
14577c478bd9Sstevel@tonic-gatehidparser:                End Collection(0x0)
14587c478bd9Sstevel@tonic-gatehidparser:                Physical Minimum(0x0)
14597c478bd9Sstevel@tonic-gatehidparser:                Physical Maximum(0x1)
14607c478bd9Sstevel@tonic-gatehidparser:                Usage Page(0x1)
14617c478bd9Sstevel@tonic-gatehidparser:                Logical Minimum(0x80)
14627c478bd9Sstevel@tonic-gatehidparser:                Logical Maximum(0x7F)
14637c478bd9Sstevel@tonic-gatehidparser:                Report Size(0x8)
14647c478bd9Sstevel@tonic-gatehidparser:                Report Id(0xA)
14657c478bd9Sstevel@tonic-gatehidparser:                Report Count(0x1)
14667c478bd9Sstevel@tonic-gatehidparser:                Collection(0x2)
14677c478bd9Sstevel@tonic-gatehidparser:                     Physical Minimum(0x0)
14687c478bd9Sstevel@tonic-gatehidparser:                     Physical Maximum(0x1)
14697c478bd9Sstevel@tonic-gatehidparser:                     Usage Page(0x1)
14707c478bd9Sstevel@tonic-gatehidparser:                     Logical Minimum(0x80)
14717c478bd9Sstevel@tonic-gatehidparser:                     Logical Maximum(0x7F)
14727c478bd9Sstevel@tonic-gatehidparser:                     Report Size(0x8)
14737c478bd9Sstevel@tonic-gatehidparser:                     Report Id(0xB)
14747c478bd9Sstevel@tonic-gatehidparser:                     Report Count(0x1)
14757c478bd9Sstevel@tonic-gatehidparser:                     Usage(0x3A)
14767c478bd9Sstevel@tonic-gatehidparser:                     Feature(0x2)
14777c478bd9Sstevel@tonic-gatehidparser:                End Collection(0x0)
14787c478bd9Sstevel@tonic-gatehidparser:                Physical Minimum(0x0)
14797c478bd9Sstevel@tonic-gatehidparser:                Physical Maximum(0x1)
14807c478bd9Sstevel@tonic-gatehidparser:                Usage Page(0x1)
14817c478bd9Sstevel@tonic-gatehidparser:                Logical Minimum(0x80)
14827c478bd9Sstevel@tonic-gatehidparser:                Logical Maximum(0x7F)
14837c478bd9Sstevel@tonic-gatehidparser:                Report Size(0x8)
14847c478bd9Sstevel@tonic-gatehidparser:                Report Id(0xB)
14857c478bd9Sstevel@tonic-gatehidparser:                Report Count(0x1)
14867c478bd9Sstevel@tonic-gatehidparser:                Collection(0x2)
14877c478bd9Sstevel@tonic-gatehidparser:                     Physical Minimum(0x0)
14887c478bd9Sstevel@tonic-gatehidparser:                     Physical Maximum(0x1)
14897c478bd9Sstevel@tonic-gatehidparser:                     Usage Page(0x1)
14907c478bd9Sstevel@tonic-gatehidparser:                     Logical Minimum(0x80)
14917c478bd9Sstevel@tonic-gatehidparser:                     Logical Maximum(0x7F)
14927c478bd9Sstevel@tonic-gatehidparser:                     Report Size(0x8)
14937c478bd9Sstevel@tonic-gatehidparser:                     Report Id(0xC)
14947c478bd9Sstevel@tonic-gatehidparser:                     Report Count(0x1)
14957c478bd9Sstevel@tonic-gatehidparser:                     Usage(0x3A)
14967c478bd9Sstevel@tonic-gatehidparser:                     Feature(0x2)
14977c478bd9Sstevel@tonic-gatehidparser:                End Collection(0x0)
14987c478bd9Sstevel@tonic-gatehidparser:                Physical Minimum(0x0)
14997c478bd9Sstevel@tonic-gatehidparser:                Physical Maximum(0x1)
15007c478bd9Sstevel@tonic-gatehidparser:                Usage Page(0x1)
15017c478bd9Sstevel@tonic-gatehidparser:                Logical Minimum(0x80)
15027c478bd9Sstevel@tonic-gatehidparser:                Logical Maximum(0x7F)
15037c478bd9Sstevel@tonic-gatehidparser:                Report Size(0x8)
15047c478bd9Sstevel@tonic-gatehidparser:                Report Id(0xC)
15057c478bd9Sstevel@tonic-gatehidparser:                Report Count(0x1)
15067c478bd9Sstevel@tonic-gatehidparser:                Collection(0x2)
15077c478bd9Sstevel@tonic-gatehidparser:                     Physical Minimum(0x0)
15087c478bd9Sstevel@tonic-gatehidparser:                     Physical Maximum(0x1)
15097c478bd9Sstevel@tonic-gatehidparser:                     Usage Page(0x1)
15107c478bd9Sstevel@tonic-gatehidparser:                     Logical Minimum(0x80)
15117c478bd9Sstevel@tonic-gatehidparser:                     Logical Maximum(0x7F)
15127c478bd9Sstevel@tonic-gatehidparser:                     Report Size(0x8)
15137c478bd9Sstevel@tonic-gatehidparser:                     Report Id(0xD)
15147c478bd9Sstevel@tonic-gatehidparser:                     Report Count(0x2)
15157c478bd9Sstevel@tonic-gatehidparser:                     Usage(0x3A)
15167c478bd9Sstevel@tonic-gatehidparser:                     Feature(0x2)
15177c478bd9Sstevel@tonic-gatehidparser:                End Collection(0x0)
15187c478bd9Sstevel@tonic-gatehidparser:           End Collection(0x0)
15197c478bd9Sstevel@tonic-gatehidparser:      End Collection(0x0)
15207c478bd9Sstevel@tonic-gate
15217c478bd9Sstevel@tonic-gateThe actual tree is
15227c478bd9Sstevel@tonic-gate
15237c478bd9Sstevel@tonic-gate
15247c478bd9Sstevel@tonic-gateunsigned char hid_report_desc[] = {
15257c478bd9Sstevel@tonic-gate	0x5, 0x1,              /* Usage Page (Generic Desktop)             */
15267c478bd9Sstevel@tonic-gate	0x9, 0x8,              /* Usage (0x8:Multi-axis controller)        */
15277c478bd9Sstevel@tonic-gate	0xa1, 0x1,             /* Collection (Application)                 */
15287c478bd9Sstevel@tonic-gate	0xa1, 0,               /*     Collection (Physical)                */
15297c478bd9Sstevel@tonic-gate	0x85, 0x1,             /*         Report ID (0x1)                  */
15307c478bd9Sstevel@tonic-gate	0x16, 0, 0x80,         /*         Logical Minimum (0x8000)         */
15317c478bd9Sstevel@tonic-gate	0x26, 0xff, 0x7f,      /*         Logical Maximum (0x7fff)         */
15327c478bd9Sstevel@tonic-gate	0x9, 0x30,             /*         Usage (0x30:X)                   */
15337c478bd9Sstevel@tonic-gate	0x9, 0x31,             /*         Usage (0x31:Y)                   */
15347c478bd9Sstevel@tonic-gate	0x9, 0x32,             /*         Usage (0x32:Z)                   */
15357c478bd9Sstevel@tonic-gate	0x75, 0x10,            /*         Report Size (0x10)               */
15367c478bd9Sstevel@tonic-gate	0x95, 0x3,             /*         Report Count (0x3)               */
15377c478bd9Sstevel@tonic-gate	0x81, 0x2,             /*         Input (Data, Variable, Absolute) */
15387c478bd9Sstevel@tonic-gate	0xc0,                  /*     End Collection                       */
15397c478bd9Sstevel@tonic-gate	0xa1, 0,               /*     Collection (Physical)                */
15407c478bd9Sstevel@tonic-gate	0x85, 0x2,             /*         Report ID (0x2)                  */
15417c478bd9Sstevel@tonic-gate	0x9, 0x33,             /*         Usage (0x33:Rx)                  */
15427c478bd9Sstevel@tonic-gate	0x9, 0x34,             /*         Usage (0x34:Ry)                  */
15437c478bd9Sstevel@tonic-gate	0x9, 0x35,             /*         Usage (0x35:Rz)                  */
15447c478bd9Sstevel@tonic-gate	0x75, 0x10,            /*         Report Size (0x10)               */
15457c478bd9Sstevel@tonic-gate	0x95, 0x3,             /*         Report Count (0x3)               */
15467c478bd9Sstevel@tonic-gate	0x81, 0x2,             /*         Input (Data, Variable, Absolute) */
15477c478bd9Sstevel@tonic-gate	0xc0,                  /*     End Collection                       */
15487c478bd9Sstevel@tonic-gate	0xa1, 0x2,             /*     Collection (Logical)                 */
15497c478bd9Sstevel@tonic-gate	0x85, 0x3,             /*         Report ID (0x3)                  */
15507c478bd9Sstevel@tonic-gate	0x5, 0x1,              /*         Usage Page (Generic Desktop)     */
15517c478bd9Sstevel@tonic-gate	0x9, 0x3a,             /*         Usage (0x3a: Counted Buffer)     */
15527c478bd9Sstevel@tonic-gate	0x75, 0x10,            /*         Report Size (0x10)               */
15537c478bd9Sstevel@tonic-gate	0x95, 0x1,             /*         Report Count (0x1)               */
15547c478bd9Sstevel@tonic-gate	0x81, 0x2,             /*         Input (Data, Variable, Absolute) */
15557c478bd9Sstevel@tonic-gate	0x5, 0x9,              /*         Usage Page (Button)              */
15567c478bd9Sstevel@tonic-gate	0x19, 0x1,             /*         Usage Minimum (0x1)              */
15577c478bd9Sstevel@tonic-gate	0x29, 0xd,             /*         Usage Maximum (0xd)              */
15587c478bd9Sstevel@tonic-gate	0x15, 0,               /*         Logical Minimum (0)              */
15597c478bd9Sstevel@tonic-gate	0x25, 0x1,             /*         Logical Maximum (0x1)            */
15607c478bd9Sstevel@tonic-gate	0x35, 0,               /*         Physical Minimum (0)             */
15617c478bd9Sstevel@tonic-gate	0x45, 0x1,             /*         Physical Maximum (0x1)           */
15627c478bd9Sstevel@tonic-gate	0x75, 0x1,             /*         Report Size (0x1)                */
15637c478bd9Sstevel@tonic-gate	0x95, 0xd,             /*         Report Count (0xd)               */
15647c478bd9Sstevel@tonic-gate	0x81, 0x2,             /*         Input (Data, Variable, Absolute) */
15657c478bd9Sstevel@tonic-gate	0x95, 0x3,             /*         Report Count (0x3)               */
15667c478bd9Sstevel@tonic-gate	0x81, 0x1,             /*         Input (Constant, Array, Absolute) */
15677c478bd9Sstevel@tonic-gate	0xc0,                  /*     End Collection                       */
15687c478bd9Sstevel@tonic-gate	0x5, 0x1,              /*     Usage Page (Generic Desktop)         */
15697c478bd9Sstevel@tonic-gate	0x9, 0x3a,             /*     Usage (0x3a: Counted Buffer)         */
15707c478bd9Sstevel@tonic-gate	0xa1, 0x2,             /*     Collection (Logical)                 */
15717c478bd9Sstevel@tonic-gate	0x15, 0x80,            /*         Logical Minimum (0x80)           */
15727c478bd9Sstevel@tonic-gate	0x25, 0x7f,            /*         Logical Maximum (0x7f)           */
15737c478bd9Sstevel@tonic-gate	0x75, 0x8,             /*         Report Size (0x8)                */
15747c478bd9Sstevel@tonic-gate	0x9, 0x3a,             /*         Usage (0x3a: Counted Buffer)     */
15757c478bd9Sstevel@tonic-gate	0xa1, 0x2,             /*         Collection (Logical)             */
15767c478bd9Sstevel@tonic-gate	0x85, 0x4,             /*             Report ID (0x4)              */
15777c478bd9Sstevel@tonic-gate	0x9, 0x3a,             /*             Usage (0x3a: Counted Buffer) */
15787c478bd9Sstevel@tonic-gate	0x95, 0x4,             /*             Report Count (0x4)           */
15797c478bd9Sstevel@tonic-gate	0xb1, 0x2,             /*             Feature (Data, Variable, Absolute) */
15807c478bd9Sstevel@tonic-gate	0xc0,                  /*         End Collection                   */
15817c478bd9Sstevel@tonic-gate	0xa1, 0x2,             /*         Collection (Logical)             */
15827c478bd9Sstevel@tonic-gate	0x85, 0x5,             /*             Report ID (0x5)              */
15837c478bd9Sstevel@tonic-gate	0x9, 0x3a,             /*             Usage (0x3a:Counted Buffer)  */
15847c478bd9Sstevel@tonic-gate	0x95, 0x1,             /*             Report Count (0x1)           */
15857c478bd9Sstevel@tonic-gate	0xb1, 0x2,             /*             Feature (Data, Variable, Absolute) */
15867c478bd9Sstevel@tonic-gate	0xc0,                  /*         End Collection                   */
15877c478bd9Sstevel@tonic-gate	0xa1, 0x2,             /*         Collection (Logical)             */
15887c478bd9Sstevel@tonic-gate	0x85, 0x6,             /*             Report ID (0x6)              */
15897c478bd9Sstevel@tonic-gate	0x9, 0x3a,             /*             Usage (0x3a: Counted Buffer) */
15907c478bd9Sstevel@tonic-gate	0x95, 0x1,             /*             Report Count (0x1)           */
15917c478bd9Sstevel@tonic-gate	0xb1, 0x2,             /*             Feature (Data, Variable, Absolute) */
15927c478bd9Sstevel@tonic-gate	0xc0,                  /*         End Collection                   */
15937c478bd9Sstevel@tonic-gate	0xa1, 0x2,             /*         Collection (Logical)             */
15947c478bd9Sstevel@tonic-gate	0x85, 0x7,             /*             Report ID (0x7)              */
15957c478bd9Sstevel@tonic-gate	0x9, 0x3a,             /*             Usage (0x3a: Counted Buffer) */
15967c478bd9Sstevel@tonic-gate	0x95, 0x10,            /*             Report Count (0x10)          */
15977c478bd9Sstevel@tonic-gate	0xb1, 0x2,             /*             Feature (Data, Variable, Absolute) */
15987c478bd9Sstevel@tonic-gate	0xc0,                  /*         End Collection                   */
15997c478bd9Sstevel@tonic-gate	0xa1, 0x2,             /*         Collection (Logical)             */
16007c478bd9Sstevel@tonic-gate	0x85, 0x8,             /*             Report ID (0x8)              */
16017c478bd9Sstevel@tonic-gate	0x9, 0x3a,             /*             Usage (0x3a: Counted Buffer) */
16027c478bd9Sstevel@tonic-gate	0x95, 0x10,            /*             Report Count (0x10)          */
16037c478bd9Sstevel@tonic-gate	0xb1, 0x2,             /*             Feature (Data, Variable, Absolute) */
16047c478bd9Sstevel@tonic-gate	0xc0,                  /*         End Collection                   */
16057c478bd9Sstevel@tonic-gate	0xa1, 0x2,             /*         Collection (Logical)             */
16067c478bd9Sstevel@tonic-gate	0x85, 0x9,             /*             Report ID (0x9)              */
16077c478bd9Sstevel@tonic-gate	0x9, 0x3a,             /*             Usage (0x3a: Counted Buffer) */
16087c478bd9Sstevel@tonic-gate	0x95, 0xc,             /*             Report Count (0xc)           */
16097c478bd9Sstevel@tonic-gate	0xb1, 0x2,             /*             Feature (Data, Variable, Absolute) */
16107c478bd9Sstevel@tonic-gate	0xc0,                  /*         End Collection                   */
16117c478bd9Sstevel@tonic-gate	0xa1, 0x2,             /*         Collection (Logical)             */
16127c478bd9Sstevel@tonic-gate	0x85, 0xa,             /*             Report ID (0xa)              */
16137c478bd9Sstevel@tonic-gate	0x9, 0x3a,             /*             Usage (0x3a: Counted Buffer) */
16147c478bd9Sstevel@tonic-gate	0x95, 0x1,             /*             Report Count (0x1)           */
16157c478bd9Sstevel@tonic-gate	0xb1, 0x2,             /*             Feature (Data, Variable, Absolute) */
16167c478bd9Sstevel@tonic-gate	0xc0,                  /*         End Collection                   */
16177c478bd9Sstevel@tonic-gate	0xa1, 0x2,             /*         Collection (Logical)             */
16187c478bd9Sstevel@tonic-gate	0x85, 0xb,             /*             Report ID (0xb)              */
16197c478bd9Sstevel@tonic-gate	0x9, 0x3a,             /*             Usage (0x3a: Counted Buffer) */
16207c478bd9Sstevel@tonic-gate	0x95, 0x1,             /*             Report Count (0x1)           */
16217c478bd9Sstevel@tonic-gate	0xb1, 0x2,             /*             Feature (Data, Variable, Absolute) */
16227c478bd9Sstevel@tonic-gate	0xc0,                  /*         End Collection                   */
16237c478bd9Sstevel@tonic-gate	0xa1, 0x2,             /*         Collection (Logical)             */
16247c478bd9Sstevel@tonic-gate	0x85, 0xc,             /*             Report ID (0xc)              */
16257c478bd9Sstevel@tonic-gate	0x9, 0x3a,             /*             Usage (0x3a: Counted Buffer) */
16267c478bd9Sstevel@tonic-gate	0x95, 0x1,             /*             Report Count (0x1)           */
16277c478bd9Sstevel@tonic-gate	0xb1, 0x2,             /*             Feature (Data, Variable, Absolute) */
16287c478bd9Sstevel@tonic-gate	0xc0,                  /*         End Collection                   */
16297c478bd9Sstevel@tonic-gate	0xa1, 0x2,             /*         Collection (Logical)             */
16307c478bd9Sstevel@tonic-gate	0x85, 0xd,             /*             Report ID (0xd)              */
16317c478bd9Sstevel@tonic-gate	0x9, 0x3a,             /*             Usage (0x3a: Counted Buffer) */
16327c478bd9Sstevel@tonic-gate	0x95, 0x2,             /*             Report Count (0x2)           */
16337c478bd9Sstevel@tonic-gate	0xb1, 0x2,             /*             Feature (Data, Variable, Absolute) */
16347c478bd9Sstevel@tonic-gate	0xc0,                  /*         End Collection                   */
16357c478bd9Sstevel@tonic-gate	0xc0,                  /*     End Collection                       */
16367c478bd9Sstevel@tonic-gate	0xc0,                  /* End Collection                           */
16377c478bd9Sstevel@tonic-gate};
16387c478bd9Sstevel@tonic-gate
16397c478bd9Sstevel@tonic-gate______________________________________________________________________________
1640