xref: /onnv-gate/usr/src/uts/common/io/usb/clients/hidparser/README (revision 7425:e4dbffd35ebc)
10Sstevel@tonic-gate#
20Sstevel@tonic-gate# CDDL HEADER START
30Sstevel@tonic-gate#
40Sstevel@tonic-gate# The contents of this file are subject to the terms of the
5*7425SGongtian.Zhao@Sun.COM# Common Development and Distribution License (the "License").
6*7425SGongtian.Zhao@Sun.COM# You may not use this file except in compliance with the License.
70Sstevel@tonic-gate#
80Sstevel@tonic-gate# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
90Sstevel@tonic-gate# or http://www.opensolaris.org/os/licensing.
100Sstevel@tonic-gate# See the License for the specific language governing permissions
110Sstevel@tonic-gate# and limitations under the License.
120Sstevel@tonic-gate#
130Sstevel@tonic-gate# When distributing Covered Code, include this CDDL HEADER in each
140Sstevel@tonic-gate# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
150Sstevel@tonic-gate# If applicable, add the following below this CDDL HEADER, with the
160Sstevel@tonic-gate# fields enclosed by brackets "[]" replaced with your own identifying
170Sstevel@tonic-gate# information: Portions Copyright [yyyy] [name of copyright owner]
180Sstevel@tonic-gate#
190Sstevel@tonic-gate# CDDL HEADER END
200Sstevel@tonic-gate#
210Sstevel@tonic-gate/*
22*7425SGongtian.Zhao@Sun.COM * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
230Sstevel@tonic-gate * Use is subject to license terms.
240Sstevel@tonic-gate */
250Sstevel@tonic-gate
260Sstevel@tonic-gate
270Sstevel@tonic-gate
280Sstevel@tonic-gate
290Sstevel@tonic-gate
300Sstevel@tonic-gate                  Hidparser: Solaris implementation
310Sstevel@tonic-gate		  _________________________________
320Sstevel@tonic-gate
330Sstevel@tonic-gate
340Sstevel@tonic-gateReport descriptors  are  basically  made of  items.   Items  can  be  'Main'
350Sstevel@tonic-gateitems,  'Local' Items  and  'Global' Items. Local and  Global items  differ
360Sstevel@tonic-gatein their  scope. Local  items  hold their value only   within the main item
370Sstevel@tonic-gatein which  they are  defined  while global items retain their values through
380Sstevel@tonic-gateout all main items  unless *redefined*.
390Sstevel@tonic-gate
400Sstevel@tonic-gateMain Items  are  collection,  input, output and  feature and end collection
410Sstevel@tonic-gateitems. Each  of  the  main  items are represented by an 'entity_item' struc-
420Sstevel@tonic-gateture.  Solaris    maintains   global and  local items  as a  linked list of
430Sstevel@tonic-gateentity_attribute   structures  in the 'entity_item' structure.  Since local
440Sstevel@tonic-gateitems are specific  to a main  item it   makes  sense to  keep  local items
450Sstevel@tonic-gatewith in the main item.  List   of   global  items can't be kept as a single
460Sstevel@tonic-gateglobal list because they  can   get redefined in any  subsequent main  item
470Sstevel@tonic-gateand Solaris won't be able  to   know what  will  be the value for each main
480Sstevel@tonic-gateitem. Hence they also  figure   in the list  maintained  by the entity_item
490Sstevel@tonic-gatestructure.
500Sstevel@tonic-gate
510Sstevel@tonic-gateSo how do we construct the tree ?
520Sstevel@tonic-gate
530Sstevel@tonic-gateEach main item forms a sibling or child of another main item except for the
540Sstevel@tonic-gateroot  main  item which will  always be a Collection main item. Each collect-
550Sstevel@tonic-gateion item  should be closed  by  an end  collection.  So  root  collection's
560Sstevel@tonic-gatesibling  will be an end  collection. Whatever  input,  output  and  feature
570Sstevel@tonic-gateitems  which fall inside  a collection (please  see a collection as '{' and
580Sstevel@tonic-gateend  collection as '}' in  'C' language) will  form a child  of  the parent
590Sstevel@tonic-gatecollection  with each of  them  forming  a sibling  of  each  other. i.e if
600Sstevel@tonic-gatean Input  main item comes  first within a  collection  then  it'll form the
610Sstevel@tonic-gatechild of  the collection  with the subsequent  main  items  being linked as
620Sstevel@tonic-gatesiblings  of each other.  When we reach an end collection, it must form the
630Sstevel@tonic-gatesibling of  the collection.  This applies for nested collections  also. i.e
640Sstevel@tonic-gateif a  collection falls within  another collection, it'll form  a  child  of
650Sstevel@tonic-gatethe  parent collection with  the 'input','output' and 'feature' main  items
660Sstevel@tonic-gatefalling within  the child collection forming a child  of child  collection.
670Sstevel@tonic-gateWhatever falls  outside the child collection,but inside a parent collection
680Sstevel@tonic-gatewill form a sibling of the child collection.
690Sstevel@tonic-gate
700Sstevel@tonic-gateWhen  hidparser starts, it'll get the raw  descriptor in a structure called
710Sstevel@tonic-gate'hidparser_tok'  structure. Solaris  will  proceed by taking one byte first
720Sstevel@tonic-gate(which sort of forms a header and  indicates  how many  to  follow for each
730Sstevel@tonic-gateitem for the 'item data') and then proceeds to take the  value for the item
740Sstevel@tonic-gate(which is the item data). This  'hidparser_tok'  structure  contains a list
750Sstevel@tonic-gateof global and local items. As  and when the parser encounters a global item
760Sstevel@tonic-gateit'll add it to the global item list. The same applies for local items also.
770Sstevel@tonic-gateThe only difference is that if  a global item is getting redefined (i.e the
780Sstevel@tonic-gateglobal item is already present  in the gitem list),  then "the global item"
790Sstevel@tonic-gate(i.e one of the global item) is freed and the new one is put instead. Local
800Sstevel@tonic-gateitems can get redefined without  disturbing the earlier  values.  This goes
810Sstevel@tonic-gateon till a main item is encountered. When a  main  item  is encountered  the
820Sstevel@tonic-gateglobal item list  is copied over to the entity_item structure and the local
830Sstevel@tonic-gateitem list will start  where  the global item  list  stops ( in the 'entity_
840Sstevel@tonic-gateattribute' list). Before we start on the next item the local item list will
850Sstevel@tonic-gatebe freed (in the hidparser_tok  structure) but the global item list will be
860Sstevel@tonic-gatemaintained since their scope is through out the report descriptor.
870Sstevel@tonic-gate
880Sstevel@tonic-gateThe two additions which has happened  in this  round  of  changes  are  the
890Sstevel@tonic-gatesupport for push|pop and delimiter items. 'push' basically asks the  parser
900Sstevel@tonic-gateto copy over the list of  global  items, while  'pop' takes the last pushed
910Sstevel@tonic-gatelist as the current one. The entity_attribute_stack forms a stack of global
920Sstevel@tonic-gateitem list pointers from which they can be pop-ed on the gitem list.'delimit-
930Sstevel@tonic-gateer'items basically allows you to interpret the data that is  being received
940Sstevel@tonic-gatedifferently depending on the way you use it and requires the parser to reco-
950Sstevel@tonic-gategnize only the first 'usage' (which is what Solaris does with my changes).
960Sstevel@tonic-gate
970Sstevel@tonic-gate
980Sstevel@tonic-gate___________________________________________________________________________
990Sstevel@tonic-gate
1000Sstevel@tonic-gateExample:
1010Sstevel@tonic-gate
1020Sstevel@tonic-gate
1030Sstevel@tonic-gateFollowing is the report descriptor dump for Labtec Spaceball (you can  call
1040Sstevel@tonic-gateit a mouse).
1050Sstevel@tonic-gate
1060Sstevel@tonic-gatehid1:   Index = 0       value =0x5
1070Sstevel@tonic-gatehid1:   Index = 1       value =0x1
1080Sstevel@tonic-gatehid1:   Index = 2       value =0x9
1090Sstevel@tonic-gatehid1:   Index = 3       value =0x8
1100Sstevel@tonic-gatehid1:   Index = 4       value =0xa1
1110Sstevel@tonic-gatehid1:   Index = 5       value =0x1
1120Sstevel@tonic-gatehid1:   Index = 6       value =0xa1
1130Sstevel@tonic-gatehid1:   Index = 7       value =0x0
1140Sstevel@tonic-gatehid1:   Index = 8       value =0x85
1150Sstevel@tonic-gatehid1:   Index = 9       value =0x1
1160Sstevel@tonic-gatehid1:   Index = 10      value =0x16
1170Sstevel@tonic-gatehid1:   Index = 11      value =0x0
1180Sstevel@tonic-gatehid1:   Index = 12      value =0x80
1190Sstevel@tonic-gatehid1:   Index = 13      value =0x26
1200Sstevel@tonic-gatehid1:   Index = 14      value =0xff
1210Sstevel@tonic-gatehid1:   Index = 15      value =0x7f
1220Sstevel@tonic-gatehid1:   Index = 16      value =0x9
1230Sstevel@tonic-gatehid1:   Index = 17      value =0x30
1240Sstevel@tonic-gatehid1:   Index = 18      value =0x9
1250Sstevel@tonic-gatehid1:   Index = 19      value =0x31
1260Sstevel@tonic-gatehid1:   Index = 20      value =0x9
1270Sstevel@tonic-gatehid1:   Index = 21      value =0x32
1280Sstevel@tonic-gatehid1:   Index = 22      value =0x75
1290Sstevel@tonic-gatehid1:   Index = 23      value =0x10
1300Sstevel@tonic-gatehid1:   Index = 24      value =0x95
1310Sstevel@tonic-gatehid1:   Index = 25      value =0x3
1320Sstevel@tonic-gatehid1:   Index = 26      value =0x81
1330Sstevel@tonic-gatehid1:   Index = 27      value =0x2
1340Sstevel@tonic-gatehid1:   Index = 28      value =0xc0
1350Sstevel@tonic-gatehid1:   Index = 29      value =0xa1
1360Sstevel@tonic-gatehid1:   Index = 30      value =0x0
1370Sstevel@tonic-gatehid1:   Index = 31      value =0x85
1380Sstevel@tonic-gatehid1:   Index = 32      value =0x2
1390Sstevel@tonic-gatehid1:   Index = 33      value =0x9
1400Sstevel@tonic-gatehid1:   Index = 34      value =0x33
1410Sstevel@tonic-gatehid1:   Index = 35      value =0x9
1420Sstevel@tonic-gatehid1:   Index = 36      value =0x34
1430Sstevel@tonic-gatehid1:   Index = 37      value =0x9
1440Sstevel@tonic-gatehid1:   Index = 38      value =0x35
1450Sstevel@tonic-gatehid1:   Index = 39      value =0x75
1460Sstevel@tonic-gatehid1:   Index = 40      value =0x10
1470Sstevel@tonic-gatehid1:   Index = 41      value =0x95
1480Sstevel@tonic-gatehid1:   Index = 42      value =0x3
1490Sstevel@tonic-gatehid1:   Index = 43      value =0x81
1500Sstevel@tonic-gatehid1:   Index = 44      value =0x2
1510Sstevel@tonic-gatehid1:   Index = 45      value =0xc0
1520Sstevel@tonic-gatehid1:   Index = 46      value =0xa1
1530Sstevel@tonic-gatehid1:   Index = 47      value =0x2
1540Sstevel@tonic-gatehid1:   Index = 48      value =0x85
1550Sstevel@tonic-gatehid1:   Index = 49      value =0x3
1560Sstevel@tonic-gatehid1:   Index = 50      value =0x5
1570Sstevel@tonic-gatehid1:   Index = 51      value =0x1
1580Sstevel@tonic-gatehid1:   Index = 52      value =0x9
1590Sstevel@tonic-gatehid1:   Index = 53      value =0x3a
1600Sstevel@tonic-gatehid1:   Index = 54      value =0x75
1610Sstevel@tonic-gatehid1:   Index = 55      value =0x10
1620Sstevel@tonic-gatehid1:   Index = 56      value =0x95
1630Sstevel@tonic-gatehid1:   Index = 57      value =0x1
1640Sstevel@tonic-gatehid1:   Index = 58      value =0x81
1650Sstevel@tonic-gatehid1:   Index = 59      value =0x2
1660Sstevel@tonic-gatehid1:   Index = 60      value =0x5
1670Sstevel@tonic-gatehid1:   Index = 61      value =0x9
1680Sstevel@tonic-gatehid1:   Index = 62      value =0x19
1690Sstevel@tonic-gatehid1:   Index = 63      value =0x1
1700Sstevel@tonic-gatehid1:   Index = 64      value =0x29
1710Sstevel@tonic-gatehid1:   Index = 65      value =0xd
1720Sstevel@tonic-gatehid1:   Index = 66      value =0x15
1730Sstevel@tonic-gatehid1:   Index = 67      value =0x0
1740Sstevel@tonic-gatehid1:   Index = 68      value =0x25
1750Sstevel@tonic-gatehid1:   Index = 69      value =0x1
1760Sstevel@tonic-gatehid1:   Index = 70      value =0x35
1770Sstevel@tonic-gatehid1:   Index = 71      value =0x0
1780Sstevel@tonic-gatehid1:   Index = 72      value =0x45
1790Sstevel@tonic-gatehid1:   Index = 73      value =0x1
1800Sstevel@tonic-gatehid1:   Index = 74      value =0x75
1810Sstevel@tonic-gatehid1:   Index = 75      value =0x1
1820Sstevel@tonic-gatehid1:   Index = 76      value =0x95
1830Sstevel@tonic-gatehid1:   Index = 77      value =0xd
1840Sstevel@tonic-gatehid1:   Index = 78      value =0x81
1850Sstevel@tonic-gatehid1:   Index = 79      value =0x2
1860Sstevel@tonic-gatehid1:   Index = 80      value =0x95
1870Sstevel@tonic-gatehid1:   Index = 81      value =0x3
1880Sstevel@tonic-gatehid1:   Index = 82      value =0x81
1890Sstevel@tonic-gatehid1:   Index = 83      value =0x1
1900Sstevel@tonic-gatehid1:   Index = 84      value =0xc0
1910Sstevel@tonic-gatehid1:   Index = 85      value =0x5
1920Sstevel@tonic-gatehid1:   Index = 86      value =0x1
1930Sstevel@tonic-gatehid1:   Index = 87      value =0x9
1940Sstevel@tonic-gatehid1:   Index = 88      value =0x3a
1950Sstevel@tonic-gatehid1:   Index = 89      value =0xa1
1960Sstevel@tonic-gatehid1:   Index = 90      value =0x2
1970Sstevel@tonic-gatehid1:   Index = 91      value =0x15
1980Sstevel@tonic-gatehid1:   Index = 92      value =0x80
1990Sstevel@tonic-gatehid1:   Index = 93      value =0x25
2000Sstevel@tonic-gatehid1:   Index = 94      value =0x7f
2010Sstevel@tonic-gatehid1:   Index = 95      value =0x75
2020Sstevel@tonic-gatehid1:   Index = 96      value =0x8
2030Sstevel@tonic-gatehid1:   Index = 97      value =0x9
2040Sstevel@tonic-gatehid1:   Index = 98      value =0x3a
2050Sstevel@tonic-gatehid1:   Index = 99      value =0xa1
2060Sstevel@tonic-gatehid1:   Index = 100     value =0x2
2070Sstevel@tonic-gatehid1:   Index = 101     value =0x85
2080Sstevel@tonic-gatehid1:   Index = 102     value =0x4
2090Sstevel@tonic-gatehid1:   Index = 103     value =0x9
2100Sstevel@tonic-gatehid1:   Index = 104     value =0x3a
2110Sstevel@tonic-gatehid1:   Index = 105     value =0x95
2120Sstevel@tonic-gatehid1:   Index = 106     value =0x4
2130Sstevel@tonic-gatehid1:   Index = 107     value =0xb1
2140Sstevel@tonic-gatehid1:   Index = 108     value =0x2
2150Sstevel@tonic-gatehid1:   Index = 109     value =0xc0
2160Sstevel@tonic-gatehid1:   Index = 110     value =0xa1
2170Sstevel@tonic-gatehid1:   Index = 111     value =0x2
2180Sstevel@tonic-gatehid1:   Index = 112     value =0x85
2190Sstevel@tonic-gatehid1:   Index = 113     value =0x5
2200Sstevel@tonic-gatehid1:   Index = 114     value =0x9
2210Sstevel@tonic-gatehid1:   Index = 115     value =0x3a
2220Sstevel@tonic-gatehid1:   Index = 116     value =0x95
2230Sstevel@tonic-gatehid1:   Index = 117     value =0x1
2240Sstevel@tonic-gatehid1:   Index = 118     value =0xb1
2250Sstevel@tonic-gatehid1:   Index = 119     value =0x2
2260Sstevel@tonic-gatehid1:   Index = 120     value =0xc0
2270Sstevel@tonic-gatehid1:   Index = 121     value =0xa1
2280Sstevel@tonic-gatehid1:   Index = 122     value =0x2
2290Sstevel@tonic-gatehid1:   Index = 123     value =0x85
2300Sstevel@tonic-gatehid1:   Index = 124     value =0x6
2310Sstevel@tonic-gatehid1:   Index = 125     value =0x9
2320Sstevel@tonic-gatehid1:   Index = 126     value =0x3a
2330Sstevel@tonic-gatehid1:   Index = 127     value =0x95
2340Sstevel@tonic-gatehid1:   Index = 128     value =0x1
2350Sstevel@tonic-gatehid1:   Index = 129     value =0xb1
2360Sstevel@tonic-gatehid1:   Index = 130     value =0x2
2370Sstevel@tonic-gatehid1:   Index = 131     value =0xc0
2380Sstevel@tonic-gatehid1:   Index = 132     value =0xa1
2390Sstevel@tonic-gatehid1:   Index = 133     value =0x2
2400Sstevel@tonic-gatehid1:   Index = 134     value =0x85
2410Sstevel@tonic-gatehid1:   Index = 135     value =0x7
2420Sstevel@tonic-gatehid1:   Index = 136     value =0x9
2430Sstevel@tonic-gatehid1:   Index = 137     value =0x3a
2440Sstevel@tonic-gatehid1:   Index = 138     value =0x95
2450Sstevel@tonic-gatehid1:   Index = 139     value =0x10
2460Sstevel@tonic-gatehid1:   Index = 140     value =0xb1
2470Sstevel@tonic-gatehid1:   Index = 141     value =0x2
2480Sstevel@tonic-gatehid1:   Index = 142     value =0xc0
2490Sstevel@tonic-gatehid1:   Index = 143     value =0xa1
2500Sstevel@tonic-gatehid1:   Index = 144     value =0x2
2510Sstevel@tonic-gatehid1:   Index = 145     value =0x85
2520Sstevel@tonic-gatehid1:   Index = 146     value =0x8
2530Sstevel@tonic-gatehid1:   Index = 147     value =0x9
2540Sstevel@tonic-gatehid1:   Index = 148     value =0x3a
2550Sstevel@tonic-gatehid1:   Index = 149     value =0x95
2560Sstevel@tonic-gatehid1:   Index = 150     value =0x10
2570Sstevel@tonic-gatehid1:   Index = 151     value =0xb1
2580Sstevel@tonic-gatehid1:   Index = 152     value =0x2
2590Sstevel@tonic-gatehid1:   Index = 153     value =0xc0
2600Sstevel@tonic-gatehid1:   Index = 154     value =0xa1
2610Sstevel@tonic-gatehid1:   Index = 155     value =0x2
2620Sstevel@tonic-gatehid1:   Index = 156     value =0x85
2630Sstevel@tonic-gatehid1:   Index = 157     value =0x9
2640Sstevel@tonic-gatehid1:   Index = 158     value =0x9
2650Sstevel@tonic-gatehid1:   Index = 159     value =0x3a
2660Sstevel@tonic-gatehid1:   Index = 160     value =0x95
2670Sstevel@tonic-gatehid1:   Index = 161     value =0xc
2680Sstevel@tonic-gatehid1:   Index = 162     value =0xb1
2690Sstevel@tonic-gatehid1:   Index = 163     value =0x2
2700Sstevel@tonic-gatehid1:   Index = 164     value =0xc0
2710Sstevel@tonic-gatehid1:   Index = 165     value =0xa1
2720Sstevel@tonic-gatehid1:   Index = 166     value =0x2
2730Sstevel@tonic-gatehid1:   Index = 167     value =0x85
2740Sstevel@tonic-gatehid1:   Index = 168     value =0xa
2750Sstevel@tonic-gatehid1:   Index = 169     value =0x9
2760Sstevel@tonic-gatehid1:   Index = 170     value =0x3a
2770Sstevel@tonic-gatehid1:   Index = 171     value =0x95
2780Sstevel@tonic-gatehid1:   Index = 172     value =0x1
2790Sstevel@tonic-gatehid1:   Index = 173     value =0xb1
2800Sstevel@tonic-gatehid1:   Index = 174     value =0x2
2810Sstevel@tonic-gatehid1:   Index = 175     value =0xc0
2820Sstevel@tonic-gatehid1:   Index = 176     value =0xa1
2830Sstevel@tonic-gatehid1:   Index = 177     value =0x2
2840Sstevel@tonic-gatehid1:   Index = 178     value =0x85
2850Sstevel@tonic-gatehid1:   Index = 179     value =0xb
2860Sstevel@tonic-gatehid1:   Index = 180     value =0x9
2870Sstevel@tonic-gatehid1:   Index = 181     value =0x3a
2880Sstevel@tonic-gatehid1:   Index = 182     value =0x95
2890Sstevel@tonic-gatehid1:   Index = 183     value =0x1
2900Sstevel@tonic-gatehid1:   Index = 184     value =0xb1
2910Sstevel@tonic-gatehid1:   Index = 185     value =0x2
2920Sstevel@tonic-gatehid1:   Index = 186     value =0xc0
2930Sstevel@tonic-gatehid1:   Index = 187     value =0xa1
2940Sstevel@tonic-gatehid1:   Index = 188     value =0x2
2950Sstevel@tonic-gatehid1:   Index = 189     value =0x85
2960Sstevel@tonic-gatehid1:   Index = 190     value =0xc
2970Sstevel@tonic-gatehid1:   Index = 191     value =0x9
2980Sstevel@tonic-gatehid1:   Index = 192     value =0x3a
2990Sstevel@tonic-gatehid1:   Index = 193     value =0x95
3000Sstevel@tonic-gatehid1:   Index = 194     value =0x1
3010Sstevel@tonic-gatehid1:   Index = 195     value =0xb1
3020Sstevel@tonic-gatehid1:   Index = 196     value =0x2
3030Sstevel@tonic-gatehid1:   Index = 197     value =0xc0
3040Sstevel@tonic-gatehid1:   Index = 198     value =0xa1
3050Sstevel@tonic-gatehid1:   Index = 199     value =0x2
3060Sstevel@tonic-gatehid1:   Index = 200     value =0x85
3070Sstevel@tonic-gatehid1:   Index = 201     value =0xd
3080Sstevel@tonic-gatehid1:   Index = 202     value =0x9
3090Sstevel@tonic-gatehid1:   Index = 203     value =0x3a
3100Sstevel@tonic-gatehid1:   Index = 204     value =0x95
3110Sstevel@tonic-gatehid1:   Index = 205     value =0x2
3120Sstevel@tonic-gatehid1:   Index = 206     value =0xb1
3130Sstevel@tonic-gatehid1:   Index = 207     value =0x2
3140Sstevel@tonic-gatehid1:   Index = 208     value =0xc0
3150Sstevel@tonic-gatehid1:   Index = 209     value =0xc0
3160Sstevel@tonic-gatehid1:   Index = 210     value =0xc0
3170Sstevel@tonic-gate
3180Sstevel@tonic-gate___________________________________________________________________________
3190Sstevel@tonic-gate
3200Sstevel@tonic-gateItem format:
3210Sstevel@tonic-gate
3220Sstevel@tonic-gate	------------------------------------
3230Sstevel@tonic-gate	|data|data(8)|tag(4),type(2),size(2)|
3240Sstevel@tonic-gate	------------------------------------
3250Sstevel@tonic-gate                            |<------'ch'---------->|
3260Sstevel@tonic-gate
3270Sstevel@tonic-gate___________________________________________________________________________
3280Sstevel@tonic-gate
3290Sstevel@tonic-gate'hidparser_ReportDescriptor()' will call  'hidparser_scan()'  first.  Hence
3300Sstevel@tonic-gateyou will see the  'scanner'  output first.  The scanner will go through the
3310Sstevel@tonic-gatefirst byte and set hidparser_tok_token to the tag|type value. hidparser_tok
3320Sstevel@tonic-gate_leng  will be set to size and the 'data' part will be copied to tok_ text.
3330Sstevel@tonic-gate'hidparser_ReportDescriptor'  will   call  'hidparser_ItemList()'  to  take
3340Sstevel@tonic-gatecharge of the rest of the parsing.
3350Sstevel@tonic-gate
3360Sstevel@tonic-gate___________________________________________________________________________
3370Sstevel@tonic-gate
3380Sstevel@tonic-gatehidparser:      scanner: index  = 0x0 ch = 0x5 [ = 0x00000101 = tag[0],
3390Sstevel@tonic-gate                                               type[1], size[1] ]
3400Sstevel@tonic-gate
3410Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1 <========size[1] [Type 1 = Global
3420Sstevel@tonic-gate			Tag[0] = Usage Page ]
3430Sstevel@tonic-gate
3440Sstevel@tonic-gate___________________________________________________________________________
3450Sstevel@tonic-gate
3460Sstevel@tonic-gateHere the length of 1 indicates that the parameter or value associated  with
3470Sstevel@tonic-gatethe usage page is contained in the next character/byte.
3480Sstevel@tonic-gate
3490Sstevel@tonic-gate___________________________________________________________________________
3500Sstevel@tonic-gate
3510Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x1,index = 0x1
3520Sstevel@tonic-gate___________________________________________________________________________
3530Sstevel@tonic-gate
3540Sstevel@tonic-gateThe next byte contains a value of 0x1. If you look at the usage table spec
3550Sstevel@tonic-gateyou can see that value of 1 stands for Generic Desktop.
3560Sstevel@tonic-gate___________________________________________________________________________
3570Sstevel@tonic-gate
3580Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x5 before translation
3590Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x2
3600Sstevel@tonic-gate___________________________________________________________________________
3610Sstevel@tonic-gate
3620Sstevel@tonic-gateHere  'hidparser_ItemList()'  would have  been called,   which  again calls
3630Sstevel@tonic-gate'hidparser_Items()'. The purpose of 'hidparser_Items()'  is to  get through
3640Sstevel@tonic-gateall the Items and break when it encounters a main item.  'hidparser_Items()
3650Sstevel@tonic-gatewill  again  call  'hidparser_GlobalItem()'  and 'hidparser_LocalItem()' to
3660Sstevel@tonic-gatemake a list of entity attributes in the hidparser_tok structure.
3670Sstevel@tonic-gate___________________________________________________________________________
3680Sstevel@tonic-gate
3690Sstevel@tonic-gatehidparser:      hidparser_GlobalItem:index = 0x0 token = 0x4
3700Sstevel@tonic-gate
3710Sstevel@tonic-gate___________________________________________________________________________
3720Sstevel@tonic-gate
3730Sstevel@tonic-gateThe above goes to gitem list.
3740Sstevel@tonic-gate___________________________________________________________________________
3750Sstevel@tonic-gate
3760Sstevel@tonic-gate
3770Sstevel@tonic-gatehidparser:      scanner: index  = 0x2 ch = 0x9 [ = 0x00001001 = tag[0],
3780Sstevel@tonic-gate			type[2], size[1]]
3790Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
3800Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x8,index = 0x3
3810Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x9 before translation
3820Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x4
3830Sstevel@tonic-gatehidparser:      hidparser_LocalItem:index = 0x2 token = 0x8
3840Sstevel@tonic-gate___________________________________________________________________________
3850Sstevel@tonic-gate
3860Sstevel@tonic-gateThe above goes to local item list in hidparser_tok_structure.
3870Sstevel@tonic-gate___________________________________________________________________________
3880Sstevel@tonic-gate
3890Sstevel@tonic-gatehidparser:      scanner: index  = 0x4 ch = 0xa1 [= 0x10100001 = tag[a],
3900Sstevel@tonic-gate			type[0], size[1]]
3910Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1	[ This is a main item ]
3920Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x1,index = 0x5
3930Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0xa1 before translation
3940Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x6
3950Sstevel@tonic-gate
3960Sstevel@tonic-gate____________________________________________________________________________
3970Sstevel@tonic-gate
3980Sstevel@tonic-gateHere 'hidparser_Items()' will break and pass the control back to 'hidparser_
3990Sstevel@tonic-gateItemList()' which will call 'hidparser_MainItem()'  to do things specific to
4000Sstevel@tonic-gatea main item (like allocating  an entity_item  structure  and returning it in
4010Sstevel@tonic-gatecurr_ei).  'hidparser_MainItem()' will allocate an entity_item structure and
4020Sstevel@tonic-gatecopy the gitem list from hidparser tok structure and add the local item list
4030Sstevel@tonic-gateto the end of global item list  (in  the  entity_item_attributes  member  of
4040Sstevel@tonic-gateentity_item structure).
4050Sstevel@tonic-gate
4060Sstevel@tonic-gate____________________________________________________________________________
4070Sstevel@tonic-gate
4080Sstevel@tonic-gatehidparser:      hidparser_MainItem:index = 0x4 token = 0xa0
4090Sstevel@tonic-gatehidparser:      scanner: index  = 0x6 ch = 0xa1
4100Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
4110Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x0,index = 0x7
4120Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0xa1 before translation
4130Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x8
4140Sstevel@tonic-gatehidparser:      Start Collection:cache_ei = 0xcab8d220, curr_ei = 0xcab8d220
4150Sstevel@tonic-gate
4160Sstevel@tonic-gate____________________________________________________________________________
4170Sstevel@tonic-gate
4180Sstevel@tonic-gateThis forms the root collection.  'cache_ei'  or the cached  entity_item will
4190Sstevel@tonic-gatealways point to the last collection encountered.  Each entity_item structure
4200Sstevel@tonic-gatewill have a pointer to the previous collection.  This is basically to remove
4210Sstevel@tonic-gaterecursion when we support nested collections.  So if I have something like
4220Sstevel@tonic-gate
4230Sstevel@tonic-gateCollection
4240Sstevel@tonic-gate	....
4250Sstevel@tonic-gate	Collection
4260Sstevel@tonic-gate		....
4270Sstevel@tonic-gate		Collection
4280Sstevel@tonic-gate		....
4290Sstevel@tonic-gate		End Collection
4300Sstevel@tonic-gate		....
4310Sstevel@tonic-gate	End collection
4320Sstevel@tonic-gate	....
4330Sstevel@tonic-gateEnd Collection
4340Sstevel@tonic-gate
4350Sstevel@tonic-gateand if we assume  that  the parser is currently @ the third Collection item,
4360Sstevel@tonic-gatethen cache_ei will point to the third collection, it's prev_ei will point to
4370Sstevel@tonic-gatethe second collection and it's prev_ei will point to the root collection. As
4380Sstevel@tonic-gatewe move down the first end collection, cache_ei would have changed to second
4390Sstevel@tonic-gatecollection and so on.
4400Sstevel@tonic-gate____________________________________________________________________________
4410Sstevel@tonic-gate
4420Sstevel@tonic-gatehidparser:      hidparser_MainItem:index = 0x6 token = 0xa0
4430Sstevel@tonic-gate
4440Sstevel@tonic-gate____________________________________________________________________________
4450Sstevel@tonic-gate
4460Sstevel@tonic-gateWe encounter  another collection here [ so a nested collection ].  This   'ei'
4470Sstevel@tonic-gatewill have a  global  item  list (only,  as there are no local items. Remember
4480Sstevel@tonic-gatethat  we  preserve  global  item list  in  the  hidparser_tok_structure while
4490Sstevel@tonic-gateblanking out the local item list as we encounter a main item).
4500Sstevel@tonic-gate____________________________________________________________________________
4510Sstevel@tonic-gate
4520Sstevel@tonic-gatehidparser:      scanner: index  = 0x8 ch = 0x85
4530Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
4540Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x1,index = 0x9
4550Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x85 before translation
4560Sstevel@tonic-gatehidparser:      scanner: aindex  = 0xa
4570Sstevel@tonic-gatehidparser:      Start Collection:cache_ei = 0xcab84db0, curr_ei = 0xcab84db0
4580Sstevel@tonic-gate
4590Sstevel@tonic-gate
4600Sstevel@tonic-gatehidparser:      hidparser_GlobalItem:index = 0x8 token = 0x84
4610Sstevel@tonic-gate_____________________________________________________________________________
4620Sstevel@tonic-gate
4630Sstevel@tonic-gateThis is a global item. Will get added to already existent Usage page GI in the
4640Sstevel@tonic-gate'hidparser_tok' structure.
4650Sstevel@tonic-gate
4660Sstevel@tonic-gatehidparser:      scanner: index  = 0xa ch = 0x16
4670Sstevel@tonic-gatehidparser:      scanner: parsed_length = 2
4680Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x0,index = 0xb
4690Sstevel@tonic-gatehidparser:      scanner: parsed_text[1] = 0x80,index = 0xc
4700Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x16 before translation
4710Sstevel@tonic-gatehidparser:      scanner: aindex  = 0xd
4720Sstevel@tonic-gatehidparser:      hidparser_GlobalItem:index = 0xa token = 0x14
4730Sstevel@tonic-gatehidparser:      scanner: index  = 0xd ch = 0x26
4740Sstevel@tonic-gatehidparser:      scanner: parsed_length = 2
4750Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0xff,index = 0xe
4760Sstevel@tonic-gatehidparser:      scanner: parsed_text[1] = 0x7f,index = 0xf
4770Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x26 before translation
4780Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x10
4790Sstevel@tonic-gatehidparser:      hidparser_GlobalItem:index = 0xd token = 0x24
4800Sstevel@tonic-gatehidparser:      scanner: index  = 0x10 ch = 0x9
4810Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
4820Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x30,index = 0x11
4830Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x9 before translation
4840Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x12
4850Sstevel@tonic-gatehidparser:      hidparser_LocalItem:index = 0x10 token = 0x8
4860Sstevel@tonic-gatehidparser:      scanner: index  = 0x12 ch = 0x9
4870Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
4880Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x31,index = 0x13
4890Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x9 before translation
4900Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x14
4910Sstevel@tonic-gatehidparser:      hidparser_LocalItem:index = 0x12 token = 0x8
4920Sstevel@tonic-gatehidparser:      scanner: index  = 0x14 ch = 0x9
4930Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
4940Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x32,index = 0x15
4950Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x9 before translation
4960Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x16
4970Sstevel@tonic-gatehidparser:      hidparser_LocalItem:index = 0x14 token = 0x8
4980Sstevel@tonic-gatehidparser:      scanner: index  = 0x16 ch = 0x75
4990Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
5000Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x10,index = 0x17
5010Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x75 before translation
5020Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x18
5030Sstevel@tonic-gatehidparser:      hidparser_GlobalItem:index = 0x16 token = 0x74
5040Sstevel@tonic-gatehidparser:      scanner: index  = 0x18 ch = 0x95
5050Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
5060Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x3,index = 0x19
5070Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x95 before translation
5080Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x1a
5090Sstevel@tonic-gatehidparser:      hidparser_GlobalItem:index = 0x18 token = 0x94
5100Sstevel@tonic-gatehidparser:      scanner: index  = 0x1a ch = 0x81
5110Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
5120Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x2,index = 0x1b
5130Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x81 before translation
5140Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x1c
5150Sstevel@tonic-gatehidparser:      hidparser_MainItem:index = 0x1a token = 0x80
5160Sstevel@tonic-gatehidparser:      scanner: index  = 0x1c ch = 0xc0
5170Sstevel@tonic-gatehidparser:      scanner: parsed_length = 0
5180Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0xc0 before translation
5190Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x1d
5200Sstevel@tonic-gatehidparser:      Main Item: token = 0x80, curr_ei = 0xcab7ecf8  will be  the
5210Sstevel@tonic-gate	child of prev_ei = 0xcab84db0, cache_ei being 0xcab84db0
5220Sstevel@tonic-gate
5230Sstevel@tonic-gate___________________________________________________________________________
5240Sstevel@tonic-gate
5250Sstevel@tonic-gateThis is the Input main item and will form the child of collection @ 0xcab84-
5260Sstevel@tonic-gatedb0.
5270Sstevel@tonic-gate___________________________________________________________________________
5280Sstevel@tonic-gate
5290Sstevel@tonic-gatehidparser:      hidparser_MainItem:index = 0x1c token = 0xc0
5300Sstevel@tonic-gatehidparser:      scanner: index  = 0x1d ch = 0xa1
5310Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
5320Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x0,index = 0x1e
5330Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0xa1 before translation
5340Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x1f
5350Sstevel@tonic-gatehidparser:      End Collection: cache_ei = 0xcab84db0, curr_ei = 0xcab84630
5360Sstevel@tonic-gate____________________________________________________________________________
5370Sstevel@tonic-gate
5380Sstevel@tonic-gateThis  End collection and will for the right sibling of 0xcab84db0 which will
5390Sstevel@tonic-gatemake cache_ei point to root collection.
5400Sstevel@tonic-gate____________________________________________________________________________
5410Sstevel@tonic-gate
5420Sstevel@tonic-gatehidparser:      hidparser_MainItem:index = 0x1d token = 0xa0
5430Sstevel@tonic-gatehidparser:      scanner: index  = 0x1f ch = 0x85
5440Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
5450Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x2,index = 0x20
5460Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x85 before translation
5470Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x21
5480Sstevel@tonic-gatehidparser:      Start Collection:cache_ei = 0xcab84750, curr_ei = 0xcab84750
5490Sstevel@tonic-gate____________________________________________________________________________
5500Sstevel@tonic-gate
5510Sstevel@tonic-gateAgain a Collection Item.
5520Sstevel@tonic-gate
5530Sstevel@tonic-gateThe tree corresponding to the above list will be
5540Sstevel@tonic-gate
5550Sstevel@tonic-gatehidparser:      Usage Page(0x1) <---------------------- GI
5560Sstevel@tonic-gatehidparser:      Usage(0x8) <--------------------------- LI
5570Sstevel@tonic-gatehidparser:      Collection(0x1)<----------------------- MI
5580Sstevel@tonic-gatehidparser:           Usage Page(0x1)<------------------ Carried over GI
5590Sstevel@tonic-gatehidparser:           Collection(0x0)<------------------ MI
5600Sstevel@tonic-gatehidparser:                Usage Page(0x1)<------------- Carried over GI
5610Sstevel@tonic-gatehidparser:                Report Id(0x1)<-------------- GI [ New ]
5620Sstevel@tonic-gatehidparser:                Logical Minimum(0x8000)<----- GI
5630Sstevel@tonic-gatehidparser:                Logical Maximum(0x7FFF)<----- GI
5640Sstevel@tonic-gatehidparser:                Report Size(0x10)<----------- GI
5650Sstevel@tonic-gatehidparser:                Report Count(0x3)<----------- GI
5660Sstevel@tonic-gatehidparser:                Usage(0x30)<----------------- LI
5670Sstevel@tonic-gatehidparser:                Usage(0x31)<----------------- LI
5680Sstevel@tonic-gatehidparser:                Usage(0x32)<----------------- LI
5690Sstevel@tonic-gatehidparser:                Input(0x2)<------------------ MI
5700Sstevel@tonic-gatehidparser:           End Collection(0x0)<-------------- MI
5710Sstevel@tonic-gatehidparser:           Usage Page(0x1)<------------------ Carried over GI
5720Sstevel@tonic-gatehidparser:           Report Id(0x1)<------------------- Carried over GI
5730Sstevel@tonic-gatehidparser:           Logical Minimum(0x8000)<----------   " "
5740Sstevel@tonic-gatehidparser:           Logical Maximum(0x7FFF)<----------   " "
5750Sstevel@tonic-gatehidparser:           Report Size(0x10)<----------------   " "
5760Sstevel@tonic-gatehidparser:           Report Count(0x3)<----------------   " "
5770Sstevel@tonic-gatehidparser:           Collection(0x0)<------------------ MI
5780Sstevel@tonic-gate
5790Sstevel@tonic-gateThe actual tree corresponding to a descriptor dump will be
5800Sstevel@tonic-gate
5810Sstevel@tonic-gate
5820Sstevel@tonic-gate      0x5, 0x1,              /* Usage Page (Generic Desktop)             */
5830Sstevel@tonic-gate      0x9, 0x8,              /* Usage (0x8:Multi-axis controller)        */
5840Sstevel@tonic-gate      0xa1, 0x1,             /* Collection (Application)                 */
5850Sstevel@tonic-gate      0xa1, 0,               /*     Collection (Physical)                */
5860Sstevel@tonic-gate      0x85, 0x1,             /*         Report ID (0x1)                  */
5870Sstevel@tonic-gate      0x16, 0, 0x80,         /*         Logical Minimum (0x8000)         */
5880Sstevel@tonic-gate      0x26, 0xff, 0x7f,      /*         Logical Maximum (0x7fff)         */
5890Sstevel@tonic-gate      0x9, 0x30,             /*         Usage (0x30:X)                   */
5900Sstevel@tonic-gate      0x9, 0x31,             /*         Usage (0x31:Y)                   */
5910Sstevel@tonic-gate      0x9, 0x32,             /*         Usage (0x32:Z)                   */
5920Sstevel@tonic-gate      0x75, 0x10,            /*         Report Size (0x10)               */
5930Sstevel@tonic-gate      0x95, 0x3,             /*         Report Count (0x3)               */
5940Sstevel@tonic-gate      0x81, 0x2,             /*         Input (Data, Variable, Absolute) */
5950Sstevel@tonic-gate      0xc0,                  /*     End Collection                       */
5960Sstevel@tonic-gate      0xa1, 0,               /*     Collection (Physical)                */
5970Sstevel@tonic-gate
5980Sstevel@tonic-gateAs can be seen, the tree that Solaris constructs have carried over GI extra
5990Sstevel@tonic-gatewhich is the only difference. But that doesn't make a difference in the way
6000Sstevel@tonic-gatewe handle data.
6010Sstevel@tonic-gate
6020Sstevel@tonic-gateThere are somethings to be noted at this point. If subsequently we encount-
6030Sstevel@tonic-gateer another  global item  which has already been defined (say report size),
6040Sstevel@tonic-gatethen we  will go to the  global list  maintained in the 'hidparser_tok' st-
6050Sstevel@tonic-gateructure and replace the already existant one  (i.e report size(0x10)  with
6060Sstevel@tonic-gatethe new one ).
6070Sstevel@tonic-gate
6080Sstevel@tonic-gateFor end collection  main item, we don't attach the global item list to the
6090Sstevel@tonic-gateentity item structure.
6100Sstevel@tonic-gate
6110Sstevel@tonic-gateThe rest of the document is a continuation of where we left off the parsing.
6120Sstevel@tonic-gateThe theory of operation is the same.
6130Sstevel@tonic-gate
6140Sstevel@tonic-gate___________________________________________________________________________
6150Sstevel@tonic-gate
6160Sstevel@tonic-gate
6170Sstevel@tonic-gatehidparser:      hidparser_GlobalItem:index = 0x1f token = 0x84
6180Sstevel@tonic-gatehidparser:      scanner: index  = 0x21 ch = 0x9
6190Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
6200Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x33,index = 0x22
6210Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x9 before translation
6220Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x23
6230Sstevel@tonic-gatehidparser:      hidparser_LocalItem:index = 0x21 token = 0x8
6240Sstevel@tonic-gatehidparser:      scanner: index  = 0x23 ch = 0x9
6250Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
6260Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x34,index = 0x24
6270Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x9 before translation
6280Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x25
6290Sstevel@tonic-gatehidparser:      hidparser_LocalItem:index = 0x23 token = 0x8
6300Sstevel@tonic-gatehidparser:      scanner: index  = 0x25 ch = 0x9
6310Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
6320Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x35,index = 0x26
6330Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x9 before translation
6340Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x27
6350Sstevel@tonic-gatehidparser:      hidparser_LocalItem:index = 0x25 token = 0x8
6360Sstevel@tonic-gatehidparser:      scanner: index  = 0x27 ch = 0x75
6370Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
6380Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x10,index = 0x28
6390Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x75 before translation
6400Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x29
6410Sstevel@tonic-gatehidparser:      hidparser_GlobalItem:index = 0x27 token = 0x74
6420Sstevel@tonic-gatehidparser:      scanner: index  = 0x29 ch = 0x95
6430Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
6440Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x3,index = 0x2a
6450Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x95 before translation
6460Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x2b
6470Sstevel@tonic-gatehidparser:      hidparser_GlobalItem:index = 0x29 token = 0x94
6480Sstevel@tonic-gatehidparser:      scanner: index  = 0x2b ch = 0x81
6490Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
6500Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x2,index = 0x2c
6510Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x81 before translation
6520Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x2d
6530Sstevel@tonic-gatehidparser:      hidparser_MainItem:index = 0x2b token = 0x80
6540Sstevel@tonic-gatehidparser:      scanner: index  = 0x2d ch = 0xc0
6550Sstevel@tonic-gatehidparser:      scanner: parsed_length = 0
6560Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0xc0 before translation
6570Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x2e
6580Sstevel@tonic-gatehidparser:      Main Item: token = 0x80, curr_ei = 0xcab7e098 will be the
6590Sstevel@tonic-gate	 child of prev_ei = 0xcab84750, cache_ei being 0xcab84750
6600Sstevel@tonic-gatehidparser:      hidparser_MainItem:index = 0x2d token = 0xc0
6610Sstevel@tonic-gatehidparser:      scanner: index  = 0x2e ch = 0xa1
6620Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
6630Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x2,index = 0x2f
6640Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0xa1 before translation
6650Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x30
6660Sstevel@tonic-gatehidparser:      End Collection: cache_ei = 0xcab84750, curr_ei = 0xcab7af40
6670Sstevel@tonic-gatehidparser:      hidparser_MainItem:index = 0x2e token = 0xa0
6680Sstevel@tonic-gatehidparser:      scanner: index  = 0x30 ch = 0x85
6690Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
6700Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x3,index = 0x31
6710Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x85 before translation
6720Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x32
6730Sstevel@tonic-gatehidparser:      Start Collection:cache_ei = 0xcab7ad30, curr_ei = 0xcab7ad30
6740Sstevel@tonic-gatehidparser:      hidparser_GlobalItem:index = 0x30 token = 0x84
6750Sstevel@tonic-gatehidparser:      scanner: index  = 0x32 ch = 0x5
6760Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
6770Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x1,index = 0x33
6780Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x5 before translation
6790Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x34
6800Sstevel@tonic-gatehidparser:      hidparser_GlobalItem:index = 0x32 token = 0x4
6810Sstevel@tonic-gatehidparser:      scanner: index  = 0x34 ch = 0x9
6820Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
6830Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x3a,index = 0x35
6840Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x9 before translation
6850Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x36
6860Sstevel@tonic-gatehidparser:      hidparser_LocalItem:index = 0x34 token = 0x8
6870Sstevel@tonic-gatehidparser:      scanner: index  = 0x36 ch = 0x75
6880Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
6890Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x10,index = 0x37
6900Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x75 before translation
6910Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x38
6920Sstevel@tonic-gatehidparser:      hidparser_GlobalItem:index = 0x36 token = 0x74
6930Sstevel@tonic-gatehidparser:      scanner: index  = 0x38 ch = 0x95
6940Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
6950Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x1,index = 0x39
6960Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x95 before translation
6970Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x3a
6980Sstevel@tonic-gatehidparser:      hidparser_GlobalItem:index = 0x38 token = 0x94
6990Sstevel@tonic-gatehidparser:      scanner: index  = 0x3a ch = 0x81
7000Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
7010Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x2,index = 0x3b
7020Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x81 before translation
7030Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x3c
7040Sstevel@tonic-gatehidparser:      hidparser_MainItem:index = 0x3a token = 0x80
7050Sstevel@tonic-gatehidparser:      scanner: index  = 0x3c ch = 0x5
7060Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
7070Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x9,index = 0x3d
7080Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x5 before translation
7090Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x3e
7100Sstevel@tonic-gatehidparser:      Main Item: token = 0x80, curr_ei = 0xcab7ad60 will be the
7110Sstevel@tonic-gate	 child of prev_ei = 0xcab7ad30, cache_ei being 0xcab7ad30
7120Sstevel@tonic-gatehidparser:      hidparser_GlobalItem:index = 0x3c token = 0x4
7130Sstevel@tonic-gatehidparser:      scanner: index  = 0x3e ch = 0x19
7140Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
7150Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x1,index = 0x3f
7160Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x19 before translation
7170Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x40
7180Sstevel@tonic-gatehidparser:      hidparser_LocalItem:index = 0x3e token = 0x18
7190Sstevel@tonic-gatehidparser:      scanner: index  = 0x40 ch = 0x29
7200Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
7210Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0xd,index = 0x41
7220Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x29 before translation
7230Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x42
7240Sstevel@tonic-gatehidparser:      hidparser_LocalItem:index = 0x40 token = 0x28
7250Sstevel@tonic-gatehidparser:      scanner: index  = 0x42 ch = 0x15
7260Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
7270Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x0,index = 0x43
7280Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x15 before translation
7290Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x44
7300Sstevel@tonic-gatehidparser:      hidparser_GlobalItem:index = 0x42 token = 0x14
7310Sstevel@tonic-gatehidparser:      scanner: index  = 0x44 ch = 0x25
7320Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
7330Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x1,index = 0x45
7340Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x25 before translation
7350Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x46
7360Sstevel@tonic-gatehidparser:      hidparser_GlobalItem:index = 0x44 token = 0x24
7370Sstevel@tonic-gatehidparser:      scanner: index  = 0x46 ch = 0x35
7380Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
7390Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x0,index = 0x47
7400Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x35 before translation
7410Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x48
7420Sstevel@tonic-gatehidparser:      hidparser_GlobalItem:index = 0x46 token = 0x34
7430Sstevel@tonic-gatehidparser:      scanner: index  = 0x48 ch = 0x45
7440Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
7450Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x1,index = 0x49
7460Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x45 before translation
7470Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x4a
7480Sstevel@tonic-gatehidparser:      hidparser_GlobalItem:index = 0x48 token = 0x44
7490Sstevel@tonic-gatehidparser:      scanner: index  = 0x4a ch = 0x75
7500Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
7510Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x1,index = 0x4b
7520Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x75 before translation
7530Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x4c
7540Sstevel@tonic-gatehidparser:      hidparser_GlobalItem:index = 0x4a token = 0x74
7550Sstevel@tonic-gatehidparser:      scanner: index  = 0x4c ch = 0x95
7560Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
7570Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0xd,index = 0x4d
7580Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x95 before translation
7590Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x4e
7600Sstevel@tonic-gatehidparser:      hidparser_GlobalItem:index = 0x4c token = 0x94
7610Sstevel@tonic-gatehidparser:      scanner: index  = 0x4e ch = 0x81
7620Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
7630Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x2,index = 0x4f
7640Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x81 before translation
7650Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x50
7660Sstevel@tonic-gatehidparser:      hidparser_MainItem:index = 0x4e token = 0x80
7670Sstevel@tonic-gatehidparser:      scanner: index  = 0x50 ch = 0x95
7680Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
7690Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x3,index = 0x51
7700Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x95 before translation
7710Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x52
7720Sstevel@tonic-gatehidparser:      Main Item: token = 0x80, curr_ei = 0xcab7ecc8 will be the
7730Sstevel@tonic-gate	 right sibling of prev_ei = 0xcab7ad60, cache_ei being 0xc
7740Sstevel@tonic-gateab7ad30
7750Sstevel@tonic-gatehidparser:      hidparser_GlobalItem:index = 0x50 token = 0x94
7760Sstevel@tonic-gatehidparser:      scanner: index  = 0x52 ch = 0x81
7770Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
7780Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x1,index = 0x53
7790Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x81 before translation
7800Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x54
7810Sstevel@tonic-gatehidparser:      hidparser_MainItem:index = 0x52 token = 0x80
7820Sstevel@tonic-gatehidparser:      scanner: index  = 0x54 ch = 0xc0
7830Sstevel@tonic-gatehidparser:      scanner: parsed_length = 0
7840Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0xc0 before translation
7850Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x55
7860Sstevel@tonic-gatehidparser:      Main Item: token = 0x80, curr_ei = 0xcab7ec98 will be the
7870Sstevel@tonic-gate	 right sibling of prev_ei = 0xcab7ecc8, cache_ei being 0xc
7880Sstevel@tonic-gateab7ad30
7890Sstevel@tonic-gatehidparser:      hidparser_MainItem:index = 0x54 token = 0xc0
7900Sstevel@tonic-gatehidparser:      scanner: index  = 0x55 ch = 0x5
7910Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
7920Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x1,index = 0x56
7930Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x5 before translation
7940Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x57
7950Sstevel@tonic-gatehidparser:      End Collection: cache_ei = 0xcab7ad30, curr_ei = 0xcab7ad00
7960Sstevel@tonic-gatehidparser:      hidparser_GlobalItem:index = 0x55 token = 0x4
7970Sstevel@tonic-gatehidparser:      scanner: index  = 0x57 ch = 0x9
7980Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
7990Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x3a,index = 0x58
8000Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x9 before translation
8010Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x59
8020Sstevel@tonic-gatehidparser:      hidparser_LocalItem:index = 0x57 token = 0x8
8030Sstevel@tonic-gatehidparser:      scanner: index  = 0x59 ch = 0xa1
8040Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
8050Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x2,index = 0x5a
8060Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0xa1 before translation
8070Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x5b
8080Sstevel@tonic-gatehidparser:      hidparser_MainItem:index = 0x59 token = 0xa0
8090Sstevel@tonic-gatehidparser:      scanner: index  = 0x5b ch = 0x15
8100Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
8110Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x80,index = 0x5c
8120Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x15 before translation
8130Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x5d
8140Sstevel@tonic-gatehidparser:      Start Collection:cache_ei = 0xcab7ea58, curr_ei = 0xcab7ea58
8150Sstevel@tonic-gatehidparser:      hidparser_GlobalItem:index = 0x5b token = 0x14
8160Sstevel@tonic-gatehidparser:      scanner: index  = 0x5d ch = 0x25
8170Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
8180Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x7f,index = 0x5e
8190Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x25 before translation
8200Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x5f
8210Sstevel@tonic-gatehidparser:      hidparser_GlobalItem:index = 0x5d token = 0x24
8220Sstevel@tonic-gatehidparser:      scanner: index  = 0x5f ch = 0x75
8230Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
8240Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x8,index = 0x60
8250Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x75 before translation
8260Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x61
8270Sstevel@tonic-gatehidparser:      hidparser_GlobalItem:index = 0x5f token = 0x74
8280Sstevel@tonic-gatehidparser:      scanner: index  = 0x61 ch = 0x9
8290Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
8300Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x3a,index = 0x62
8310Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x9 before translation
8320Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x63
8330Sstevel@tonic-gatehidparser:      hidparser_LocalItem:index = 0x61 token = 0x8
8340Sstevel@tonic-gatehidparser:      scanner: index  = 0x63 ch = 0xa1
8350Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
8360Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x2,index = 0x64
8370Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0xa1 before translation
8380Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x65
8390Sstevel@tonic-gatehidparser:      hidparser_MainItem:index = 0x63 token = 0xa0
8400Sstevel@tonic-gatehidparser:      scanner: index  = 0x65 ch = 0x85
8410Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
8420Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x4,index = 0x66
8430Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x85 before translation
8440Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x67
8450Sstevel@tonic-gatehidparser:      Start Collection:cache_ei = 0xcab7ea88, curr_ei = 0xcab7ea88
8460Sstevel@tonic-gatehidparser:      hidparser_GlobalItem:index = 0x65 token = 0x84
8470Sstevel@tonic-gatehidparser:      scanner: index  = 0x67 ch = 0x9
8480Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
8490Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x3a,index = 0x68
8500Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x9 before translation
8510Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x69
8520Sstevel@tonic-gatehidparser:      hidparser_LocalItem:index = 0x67 token = 0x8
8530Sstevel@tonic-gatehidparser:      scanner: index  = 0x69 ch = 0x95
8540Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
8550Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x4,index = 0x6a
8560Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x95 before translation
8570Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x6b
8580Sstevel@tonic-gatehidparser:      hidparser_GlobalItem:index = 0x69 token = 0x94
8590Sstevel@tonic-gatehidparser:      scanner: index  = 0x6b ch = 0xb1
8600Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
8610Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x2,index = 0x6c
8620Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0xb1 before translation
8630Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x6d
8640Sstevel@tonic-gatehidparser:      hidparser_MainItem:index = 0x6b token = 0xb0
8650Sstevel@tonic-gatehidparser:      scanner: index  = 0x6d ch = 0xc0
8660Sstevel@tonic-gatehidparser:      scanner: parsed_length = 0
8670Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0xc0 before translation
8680Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x6e
8690Sstevel@tonic-gatehidparser:      Main Item: token = 0xb0, curr_ei = 0xcab7acd0 will be the
8700Sstevel@tonic-gate		child of prev_ei = 0xcab7ea88, cache_ei being 0xcab7ea88
8710Sstevel@tonic-gatehidparser:      hidparser_MainItem:index = 0x6d token = 0xc0
8720Sstevel@tonic-gatehidparser:      scanner: index  = 0x6e ch = 0xa1
8730Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
8740Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x2,index = 0x6f
8750Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0xa1 before translation
8760Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x70
8770Sstevel@tonic-gatehidparser:      End Collection: cache_ei = 0xcab7ea88, curr_ei = 0xcab7ab20
8780Sstevel@tonic-gatehidparser:      hidparser_MainItem:index = 0x6e token = 0xa0
8790Sstevel@tonic-gatehidparser:      scanner: index  = 0x70 ch = 0x85
8800Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
8810Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x5,index = 0x71
8820Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x85 before translation
8830Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x72
8840Sstevel@tonic-gatehidparser:      Start Collection:cache_ei = 0xcab7aaf0, curr_ei = 0xcab7aaf0
8850Sstevel@tonic-gatehidparser:      hidparser_GlobalItem:index = 0x70 token = 0x84
8860Sstevel@tonic-gatehidparser:      scanner: index  = 0x72 ch = 0x9
8870Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
8880Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x3a,index = 0x73
8890Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x9 before translation
8900Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x74
8910Sstevel@tonic-gatehidparser:      hidparser_LocalItem:index = 0x72 token = 0x8
8920Sstevel@tonic-gatehidparser:      scanner: index  = 0x74 ch = 0x95
8930Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
8940Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x1,index = 0x75
8950Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x95 before translation
8960Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x76
8970Sstevel@tonic-gatehidparser:      hidparser_GlobalItem:index = 0x74 token = 0x94
8980Sstevel@tonic-gatehidparser:      scanner: index  = 0x76 ch = 0xb1
8990Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
9000Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x2,index = 0x77
9010Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0xb1 before translation
9020Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x78
9030Sstevel@tonic-gatehidparser:      hidparser_MainItem:index = 0x76 token = 0xb0
9040Sstevel@tonic-gatehidparser:      scanner: index  = 0x78 ch = 0xc0
9050Sstevel@tonic-gatehidparser:      scanner: parsed_length = 0
9060Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0xc0 before translation
9070Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x79
9080Sstevel@tonic-gatehidparser:      Main Item: token = 0xb0, curr_ei = 0xcab7aac0 will be the
9090Sstevel@tonic-gate		child of prev_ei = 0xcab7aaf0, cache_ei being 0xcab7aaf0
9100Sstevel@tonic-gatehidparser:      hidparser_MainItem:index = 0x78 token = 0xc0
9110Sstevel@tonic-gatehidparser:      scanner: index  = 0x79 ch = 0xa1
9120Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
9130Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x2,index = 0x7a
9140Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0xa1 before translation
9150Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x7b
9160Sstevel@tonic-gatehidparser:      End Collection: cache_ei = 0xcab7aaf0, curr_ei = 0xcab7e548
9170Sstevel@tonic-gatehidparser:      hidparser_MainItem:index = 0x79 token = 0xa0
9180Sstevel@tonic-gatehidparser:      scanner: index  = 0x7b ch = 0x85
9190Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
9200Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x6,index = 0x7c
9210Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x85 before translation
9220Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x7d
9230Sstevel@tonic-gatehidparser:      Start Collection:cache_ei = 0xcab7ea28, curr_ei = 0xcab7ea28
9240Sstevel@tonic-gatehidparser:      hidparser_GlobalItem:index = 0x7b token = 0x84
9250Sstevel@tonic-gatehidparser:      scanner: index  = 0x7d ch = 0x9
9260Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
9270Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x3a,index = 0x7e
9280Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x9 before translation
9290Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x7f
9300Sstevel@tonic-gatehidparser:      hidparser_LocalItem:index = 0x7d token = 0x8
9310Sstevel@tonic-gatehidparser:      scanner: index  = 0x7f ch = 0x95
9320Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
9330Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x1,index = 0x80
9340Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x95 before translation
9350Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x81
9360Sstevel@tonic-gatehidparser:      hidparser_GlobalItem:index = 0x7f token = 0x94
9370Sstevel@tonic-gatehidparser:      scanner: index  = 0x81 ch = 0xb1
9380Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
9390Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x2,index = 0x82
9400Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0xb1 before translation
9410Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x83
9420Sstevel@tonic-gatehidparser:      hidparser_MainItem:index = 0x81 token = 0xb0
9430Sstevel@tonic-gatehidparser:      scanner: index  = 0x83 ch = 0xc0
9440Sstevel@tonic-gatehidparser:      scanner: parsed_length = 0
9450Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0xc0 before translation
9460Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x84
9470Sstevel@tonic-gatehidparser:      Main Item: token = 0xb0, curr_ei = 0xcab7e608 will be the
9480Sstevel@tonic-gate		child of prev_ei = 0xcab7ea28, cache_ei being 0xcab7ea28
9490Sstevel@tonic-gatehidparser:      hidparser_MainItem:index = 0x83 token = 0xc0
9500Sstevel@tonic-gatehidparser:      scanner: index  = 0x84 ch = 0xa1
9510Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
9520Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x2,index = 0x85
9530Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0xa1 before translation
9540Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x86
9550Sstevel@tonic-gatehidparser:      End Collection: cache_ei = 0xcab7ea28, curr_ei = 0xcab7e5d8
9560Sstevel@tonic-gatehidparser:      hidparser_MainItem:index = 0x84 token = 0xa0
9570Sstevel@tonic-gatehidparser:      scanner: index  = 0x86 ch = 0x85
9580Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
9590Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x7,index = 0x87
9600Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x85 before translation
9610Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x88
9620Sstevel@tonic-gatehidparser:      Start Collection:cache_ei = 0xcab7e5a8, curr_ei = 0xcab7e5a8
9630Sstevel@tonic-gatehidparser:      hidparser_GlobalItem:index = 0x86 token = 0x84
9640Sstevel@tonic-gatehidparser:      scanner: index  = 0x88 ch = 0x9
9650Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
9660Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x3a,index = 0x89
9670Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x9 before translation
9680Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x8a
9690Sstevel@tonic-gatehidparser:      hidparser_LocalItem:index = 0x88 token = 0x8
9700Sstevel@tonic-gatehidparser:      scanner: index  = 0x8a ch = 0x95
9710Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
9720Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x10,index = 0x8b
9730Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x95 before translation
9740Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x8c
9750Sstevel@tonic-gatehidparser:      hidparser_GlobalItem:index = 0x8a token = 0x94
9760Sstevel@tonic-gatehidparser:      scanner: index  = 0x8c ch = 0xb1
9770Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
9780Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x2,index = 0x8d
9790Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0xb1 before translation
9800Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x8e
9810Sstevel@tonic-gatehidparser:      hidparser_MainItem:index = 0x8c token = 0xb0
9820Sstevel@tonic-gatehidparser:      scanner: index  = 0x8e ch = 0xc0
9830Sstevel@tonic-gatehidparser:      scanner: parsed_length = 0
9840Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0xc0 before translation
9850Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x8f
9860Sstevel@tonic-gatehidparser:      Main Item: token = 0xb0, curr_ei = 0xcab7e578 will be the
9870Sstevel@tonic-gate		child of prev_ei = 0xcab7e5a8, cache_ei being 0xcab7e5a8
9880Sstevel@tonic-gatehidparser:      hidparser_MainItem:index = 0x8e token = 0xc0
9890Sstevel@tonic-gatehidparser:      scanner: index  = 0x8f ch = 0xa1
9900Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
9910Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x2,index = 0x90
9920Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0xa1 before translation
9930Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x91
9940Sstevel@tonic-gatehidparser:      End Collection: cache_ei = 0xcab7e5a8, curr_ei = 0xcab7af10
9950Sstevel@tonic-gatehidparser:      hidparser_MainItem:index = 0x8f token = 0xa0
9960Sstevel@tonic-gatehidparser:      scanner: index  = 0x91 ch = 0x85
9970Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
9980Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x8,index = 0x92
9990Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x85 before translation
10000Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x93
10010Sstevel@tonic-gatehidparser:      Start Collection:cache_ei = 0xcab7aa60, curr_ei = 0xcab7aa60
10020Sstevel@tonic-gatehidparser:      hidparser_GlobalItem:index = 0x91 token = 0x84
10030Sstevel@tonic-gatehidparser:      scanner: index  = 0x93 ch = 0x9
10040Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
10050Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x3a,index = 0x94
10060Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x9 before translation
10070Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x95
10080Sstevel@tonic-gatehidparser:      hidparser_LocalItem:index = 0x93 token = 0x8
10090Sstevel@tonic-gatehidparser:      scanner: index  = 0x95 ch = 0x95
10100Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
10110Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x10,index = 0x96
10120Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x95 before translation
10130Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x97
10140Sstevel@tonic-gatehidparser:      hidparser_GlobalItem:index = 0x95 token = 0x94
10150Sstevel@tonic-gatehidparser:      scanner: index  = 0x97 ch = 0xb1
10160Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
10170Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x2,index = 0x98
10180Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0xb1 before translation
10190Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x99
10200Sstevel@tonic-gatehidparser:      hidparser_MainItem:index = 0x97 token = 0xb0
10210Sstevel@tonic-gatehidparser:      scanner: index  = 0x99 ch = 0xc0
10220Sstevel@tonic-gatehidparser:      scanner: parsed_length = 0
10230Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0xc0 before translation
10240Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x9a
10250Sstevel@tonic-gatehidparser:      Main Item: token = 0xb0, curr_ei = 0xcab7aa30 will be the
10260Sstevel@tonic-gate		child of prev_ei = 0xcab7aa60, cache_ei being 0xcab7aa60
10270Sstevel@tonic-gatehidparser:      hidparser_MainItem:index = 0x99 token = 0xc0
10280Sstevel@tonic-gatehidparser:      scanner: index  = 0x9a ch = 0xa1
10290Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
10300Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x2,index = 0x9b
10310Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0xa1 before translation
10320Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x9c
10330Sstevel@tonic-gatehidparser:      End Collection: cache_ei = 0xcab7aa60, curr_ei = 0xcab7aa00
10340Sstevel@tonic-gatehidparser:      hidparser_MainItem:index = 0x9a token = 0xa0
10350Sstevel@tonic-gatehidparser:      scanner: index  = 0x9c ch = 0x85
10360Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
10370Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x9,index = 0x9d
10380Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x85 before translation
10390Sstevel@tonic-gatehidparser:      scanner: aindex  = 0x9e
10400Sstevel@tonic-gatehidparser:      Start Collection:cache_ei = 0xcab7a9d0, curr_ei = 0xcab7a9d0
10410Sstevel@tonic-gatehidparser:      hidparser_GlobalItem:index = 0x9c token = 0x84
10420Sstevel@tonic-gatehidparser:      scanner: index  = 0x9e ch = 0x9
10430Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
10440Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x3a,index = 0x9f
10450Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x9 before translation
10460Sstevel@tonic-gatehidparser:      scanner: aindex  = 0xa0
10470Sstevel@tonic-gatehidparser:      hidparser_LocalItem:index = 0x9e token = 0x8
10480Sstevel@tonic-gatehidparser:      scanner: index  = 0xa0 ch = 0x95
10490Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
10500Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0xc,index = 0xa1
10510Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x95 before translation
10520Sstevel@tonic-gatehidparser:      scanner: aindex  = 0xa2
10530Sstevel@tonic-gatehidparser:      hidparser_GlobalItem:index = 0xa0 token = 0x94
10540Sstevel@tonic-gatehidparser:      scanner: index  = 0xa2 ch = 0xb1
10550Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
10560Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x2,index = 0xa3
10570Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0xb1 before translation
10580Sstevel@tonic-gatehidparser:      scanner: aindex  = 0xa4
10590Sstevel@tonic-gatehidparser:      hidparser_MainItem:index = 0xa2 token = 0xb0
10600Sstevel@tonic-gatehidparser:      scanner: index  = 0xa4 ch = 0xc0
10610Sstevel@tonic-gatehidparser:      scanner: parsed_length = 0
10620Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0xc0 before translation
10630Sstevel@tonic-gatehidparser:      scanner: aindex  = 0xa5
10640Sstevel@tonic-gatehidparser:      Main Item: token = 0xb0, curr_ei = 0xcab7a9a0 will be the
10650Sstevel@tonic-gate		child of prev_ei = 0xcab7a9d0, cache_ei being 0xcab7a9d0
10660Sstevel@tonic-gatehidparser:      hidparser_MainItem:index = 0xa4 token = 0xc0
10670Sstevel@tonic-gatehidparser:      scanner: index  = 0xa5 ch = 0xa1
10680Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
10690Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x2,index = 0xa6
10700Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0xa1 before translation
10710Sstevel@tonic-gatehidparser:      scanner: aindex  = 0xa7
10720Sstevel@tonic-gatehidparser:      End Collection: cache_ei = 0xcab7a9d0, curr_ei = 0xcab7a970
10730Sstevel@tonic-gatehidparser:      hidparser_MainItem:index = 0xa5 token = 0xa0
10740Sstevel@tonic-gatehidparser:      scanner: index  = 0xa7 ch = 0x85
10750Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
10760Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0xa,index = 0xa8
10770Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x85 before translation
10780Sstevel@tonic-gatehidparser:      scanner: aindex  = 0xa9
10790Sstevel@tonic-gatehidparser:      Start Collection:cache_ei = 0xcab7a940, curr_ei = 0xcab7a940
10800Sstevel@tonic-gatehidparser:      hidparser_GlobalItem:index = 0xa7 token = 0x84
10810Sstevel@tonic-gatehidparser:      scanner: index  = 0xa9 ch = 0x9
10820Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
10830Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x3a,index = 0xaa
10840Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x9 before translation
10850Sstevel@tonic-gatehidparser:      scanner: aindex  = 0xab
10860Sstevel@tonic-gatehidparser:      hidparser_LocalItem:index = 0xa9 token = 0x8
10870Sstevel@tonic-gatehidparser:      scanner: index  = 0xab ch = 0x95
10880Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
10890Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x1,index = 0xac
10900Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x95 before translation
10910Sstevel@tonic-gatehidparser:      scanner: aindex  = 0xad
10920Sstevel@tonic-gatehidparser:      hidparser_GlobalItem:index = 0xab token = 0x94
10930Sstevel@tonic-gatehidparser:      scanner: index  = 0xad ch = 0xb1
10940Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
10950Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x2,index = 0xae
10960Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0xb1 before translation
10970Sstevel@tonic-gatehidparser:      scanner: aindex  = 0xaf
10980Sstevel@tonic-gatehidparser:      hidparser_MainItem:index = 0xad token = 0xb0
10990Sstevel@tonic-gatehidparser:      scanner: index  = 0xaf ch = 0xc0
11000Sstevel@tonic-gatehidparser:      scanner: parsed_length = 0
11010Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0xc0 before translation
11020Sstevel@tonic-gatehidparser:      scanner: aindex  = 0xb0
11030Sstevel@tonic-gatehidparser:      Main Item: token = 0xb0, curr_ei = 0xcab7a910 will be the
11040Sstevel@tonic-gate	 	child of prev_ei = 0xcab7a940, cache_ei being 0xcab7a940
11050Sstevel@tonic-gatehidparser:      hidparser_MainItem:index = 0xaf token = 0xc0
11060Sstevel@tonic-gatehidparser:      scanner: index  = 0xb0 ch = 0xa1
11070Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
11080Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x2,index = 0xb1
11090Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0xa1 before translation
11100Sstevel@tonic-gatehidparser:      scanner: aindex  = 0xb2
11110Sstevel@tonic-gatehidparser:      End Collection: cache_ei = 0xcab7a940, curr_ei = 0xcab7a8e0
11120Sstevel@tonic-gatehidparser:      hidparser_MainItem:index = 0xb0 token = 0xa0
11130Sstevel@tonic-gatehidparser:      scanner: index  = 0xb2 ch = 0x85
11140Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
11150Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0xb,index = 0xb3
11160Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x85 before translation
11170Sstevel@tonic-gatehidparser:      scanner: aindex  = 0xb4
11180Sstevel@tonic-gatehidparser:      Start Collection:cache_ei = 0xcab7a8b0, curr_ei = 0xcab7a8b0
11190Sstevel@tonic-gatehidparser:      hidparser_GlobalItem:index = 0xb2 token = 0x84
11200Sstevel@tonic-gatehidparser:      scanner: index  = 0xb4 ch = 0x9
11210Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
11220Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x3a,index = 0xb5
11230Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x9 before translation
11240Sstevel@tonic-gatehidparser:      scanner: aindex  = 0xb6
11250Sstevel@tonic-gatehidparser:      hidparser_LocalItem:index = 0xb4 token = 0x8
11260Sstevel@tonic-gatehidparser:      scanner: index  = 0xb6 ch = 0x95
11270Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
11280Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x1,index = 0xb7
11290Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x95 before translation
11300Sstevel@tonic-gatehidparser:      scanner: aindex  = 0xb8
11310Sstevel@tonic-gatehidparser:      hidparser_GlobalItem:index = 0xb6 token = 0x94
11320Sstevel@tonic-gatehidparser:      scanner: index  = 0xb8 ch = 0xb1
11330Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
11340Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x2,index = 0xb9
11350Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0xb1 before translation
11360Sstevel@tonic-gatehidparser:      scanner: aindex  = 0xba
11370Sstevel@tonic-gatehidparser:      hidparser_MainItem:index = 0xb8 token = 0xb0
11380Sstevel@tonic-gatehidparser:      scanner: index  = 0xba ch = 0xc0
11390Sstevel@tonic-gatehidparser:      scanner: parsed_length = 0
11400Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0xc0 before translation
11410Sstevel@tonic-gatehidparser:      scanner: aindex  = 0xbb
11420Sstevel@tonic-gatehidparser:      Main Item: token = 0xb0, curr_ei = 0xcab7a880 will be the
11430Sstevel@tonic-gate	 	child of prev_ei = 0xcab7a8b0, cache_ei being 0xcab7a8b0
11440Sstevel@tonic-gatehidparser:      hidparser_MainItem:index = 0xba token = 0xc0
11450Sstevel@tonic-gatehidparser:      scanner: index  = 0xbb ch = 0xa1
11460Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
11470Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x2,index = 0xbc
11480Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0xa1 before translation
11490Sstevel@tonic-gatehidparser:      scanner: aindex  = 0xbd
11500Sstevel@tonic-gatehidparser:      End Collection: cache_ei = 0xcab7a8b0, curr_ei = 0xcab7a850
11510Sstevel@tonic-gatehidparser:      hidparser_MainItem:index = 0xbb token = 0xa0
11520Sstevel@tonic-gatehidparser:      scanner: index  = 0xbd ch = 0x85
11530Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
11540Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0xc,index = 0xbe
11550Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x85 before translation
11560Sstevel@tonic-gatehidparser:      scanner: aindex  = 0xbf
11570Sstevel@tonic-gatehidparser:      Start Collection:cache_ei = 0xcab7a820, curr_ei = 0xcab7a820
11580Sstevel@tonic-gatehidparser:      hidparser_GlobalItem:index = 0xbd token = 0x84
11590Sstevel@tonic-gatehidparser:      scanner: index  = 0xbf ch = 0x9
11600Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
11610Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x3a,index = 0xc0
11620Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x9 before translation
11630Sstevel@tonic-gatehidparser:      scanner: aindex  = 0xc1
11640Sstevel@tonic-gatehidparser:      hidparser_LocalItem:index = 0xbf token = 0x8
11650Sstevel@tonic-gatehidparser:      scanner: index  = 0xc1 ch = 0x95
11660Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
11670Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x1,index = 0xc2
11680Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x95 before translation
11690Sstevel@tonic-gatehidparser:      scanner: aindex  = 0xc3
11700Sstevel@tonic-gatehidparser:      hidparser_GlobalItem:index = 0xc1 token = 0x94
11710Sstevel@tonic-gatehidparser:      scanner: index  = 0xc3 ch = 0xb1
11720Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
11730Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x2,index = 0xc4
11740Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0xb1 before translation
11750Sstevel@tonic-gatehidparser:      scanner: aindex  = 0xc5
11760Sstevel@tonic-gatehidparser:      hidparser_MainItem:index = 0xc3 token = 0xb0
11770Sstevel@tonic-gatehidparser:      scanner: index  = 0xc5 ch = 0xc0
11780Sstevel@tonic-gatehidparser:      scanner: parsed_length = 0
11790Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0xc0 before translation
11800Sstevel@tonic-gatehidparser:      scanner: aindex  = 0xc6
11810Sstevel@tonic-gatehidparser:      Main Item: token = 0xb0, curr_ei = 0xcab7a7f0 will be the
11820Sstevel@tonic-gate	 	child of prev_ei = 0xcab7a820, cache_ei being 0xcab7a820
11830Sstevel@tonic-gatehidparser:      hidparser_MainItem:index = 0xc5 token = 0xc0
11840Sstevel@tonic-gatehidparser:      scanner: index  = 0xc6 ch = 0xa1
11850Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
11860Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x2,index = 0xc7
11870Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0xa1 before translation
11880Sstevel@tonic-gatehidparser:      scanner: aindex  = 0xc8
11890Sstevel@tonic-gatehidparser:      End Collection: cache_ei = 0xcab7a820, curr_ei = 0xcab7a7c0
11900Sstevel@tonic-gatehidparser:      hidparser_MainItem:index = 0xc6 token = 0xa0
11910Sstevel@tonic-gatehidparser:      scanner: index  = 0xc8 ch = 0x85
11920Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
11930Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0xd,index = 0xc9
11940Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x85 before translation
11950Sstevel@tonic-gatehidparser:      scanner: aindex  = 0xca
11960Sstevel@tonic-gatehidparser:      Start Collection:cache_ei = 0xcab7a790, curr_ei = 0xcab7a790
11970Sstevel@tonic-gatehidparser:      hidparser_GlobalItem:index = 0xc8 token = 0x84
11980Sstevel@tonic-gatehidparser:      scanner: index  = 0xca ch = 0x9
11990Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
12000Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x3a,index = 0xcb
12010Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x9 before translation
12020Sstevel@tonic-gatehidparser:      scanner: aindex  = 0xcc
12030Sstevel@tonic-gatehidparser:      hidparser_LocalItem:index = 0xca token = 0x8
12040Sstevel@tonic-gatehidparser:      scanner: index  = 0xcc ch = 0x95
12050Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
12060Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x2,index = 0xcd
12070Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0x95 before translation
12080Sstevel@tonic-gatehidparser:      scanner: aindex  = 0xce
12090Sstevel@tonic-gatehidparser:      hidparser_GlobalItem:index = 0xcc token = 0x94
12100Sstevel@tonic-gatehidparser:      scanner: index  = 0xce ch = 0xb1
12110Sstevel@tonic-gatehidparser:      scanner: parsed_length = 1
12120Sstevel@tonic-gatehidparser:      scanner: parsed_text[0] = 0x2,index = 0xcf
12130Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0xb1 before translation
12140Sstevel@tonic-gatehidparser:      scanner: aindex  = 0xd0
12150Sstevel@tonic-gatehidparser:      hidparser_MainItem:index = 0xce token = 0xb0
12160Sstevel@tonic-gatehidparser:      scanner: index  = 0xd0 ch = 0xc0
12170Sstevel@tonic-gatehidparser:      scanner: parsed_length = 0
12180Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0xc0 before translation
12190Sstevel@tonic-gatehidparser:      scanner: aindex  = 0xd1
12200Sstevel@tonic-gatehidparser:      Main Item: token = 0xb0, curr_ei = 0xcab7a760 will be the
12210Sstevel@tonic-gate	 	child of prev_ei = 0xcab7a790, cache_ei being 0xcab7a790
12220Sstevel@tonic-gatehidparser:      hidparser_MainItem:index = 0xd0 token = 0xc0
12230Sstevel@tonic-gatehidparser:      scanner: index  = 0xd1 ch = 0xc0
12240Sstevel@tonic-gatehidparser:      scanner: parsed_length = 0
12250Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0xc0 before translation
12260Sstevel@tonic-gatehidparser:      scanner: aindex  = 0xd2
12270Sstevel@tonic-gatehidparser:      End Collection: cache_ei = 0xcab7a790, curr_ei = 0xcab7a730
12280Sstevel@tonic-gatehidparser:      hidparser_MainItem:index = 0xd1 token = 0xc0
12290Sstevel@tonic-gatehidparser:      scanner: index  = 0xd2 ch = 0xc0
12300Sstevel@tonic-gatehidparser:      scanner: parsed_length = 0
12310Sstevel@tonic-gatehidparser:      scanner: lexical analyzer found 0xc0 before translation
12320Sstevel@tonic-gatehidparser:      scanner: aindex  = 0xd3
12330Sstevel@tonic-gatehidparser:      End Collection: cache_ei = 0xcab7ea58, curr_ei = 0xcab7a700
12340Sstevel@tonic-gatehidparser:      hidparser_MainItem:index = 0xd2 token = 0xc0
12350Sstevel@tonic-gatehidparser:      scanner: eindex  = 0xd3
12360Sstevel@tonic-gatehidparser:      End Collection: cache_ei = 0xcab8d220, curr_ei = 0xcab7a6d0
12370Sstevel@tonic-gatehidparser:      Usage Page(0x1)
12380Sstevel@tonic-gatehidparser:      Usage(0x8)
12390Sstevel@tonic-gatehidparser:      Collection(0x1)
12400Sstevel@tonic-gatehidparser:           Usage Page(0x1)
12410Sstevel@tonic-gatehidparser:           Collection(0x0)
12420Sstevel@tonic-gatehidparser:                Usage Page(0x1)
12430Sstevel@tonic-gatehidparser:                Report Id(0x1)
12440Sstevel@tonic-gatehidparser:                Logical Minimum(0x8000)
12450Sstevel@tonic-gatehidparser:                Logical Maximum(0x7FFF)
12460Sstevel@tonic-gatehidparser:                Report Size(0x10)
12470Sstevel@tonic-gatehidparser:                Report Count(0x3)
12480Sstevel@tonic-gatehidparser:                Usage(0x30)
12490Sstevel@tonic-gatehidparser:                Usage(0x31)
12500Sstevel@tonic-gatehidparser:                Usage(0x32)
12510Sstevel@tonic-gatehidparser:                Input(0x2)
12520Sstevel@tonic-gatehidparser:           End Collection(0x0)
12530Sstevel@tonic-gatehidparser:           Usage Page(0x1)
12540Sstevel@tonic-gatehidparser:           Report Id(0x1)
12550Sstevel@tonic-gatehidparser:           Logical Minimum(0x8000)
12560Sstevel@tonic-gatehidparser:           Logical Maximum(0x7FFF)
12570Sstevel@tonic-gatehidparser:           Report Size(0x10)
12580Sstevel@tonic-gatehidparser:           Report Count(0x3)
12590Sstevel@tonic-gatehidparser:           Collection(0x0)
12600Sstevel@tonic-gatehidparser:                Usage Page(0x1)
12610Sstevel@tonic-gatehidparser:                Logical Minimum(0x8000)
12620Sstevel@tonic-gatehidparser:                Logical Maximum(0x7FFF)
12630Sstevel@tonic-gatehidparser:                Report Id(0x2)
12640Sstevel@tonic-gatehidparser:                Report Size(0x10)
12650Sstevel@tonic-gatehidparser:                Report Count(0x3)
12660Sstevel@tonic-gatehidparser:                Usage(0x33)
12670Sstevel@tonic-gatehidparser:                Usage(0x34)
12680Sstevel@tonic-gatehidparser:                Usage(0x35)
12690Sstevel@tonic-gatehidparser:                Input(0x2)
12700Sstevel@tonic-gatehidparser:           End Collection(0x0)
12710Sstevel@tonic-gatehidparser:           Usage Page(0x1)
12720Sstevel@tonic-gatehidparser:           Logical Minimum(0x8000)
12730Sstevel@tonic-gatehidparser:           Logical Maximum(0x7FFF)
12740Sstevel@tonic-gatehidparser:           Report Id(0x2)
12750Sstevel@tonic-gatehidparser:           Report Size(0x10)
12760Sstevel@tonic-gatehidparser:           Report Count(0x3)
12770Sstevel@tonic-gatehidparser:           Collection(0x2)
12780Sstevel@tonic-gatehidparser:                Logical Minimum(0x8000)
12790Sstevel@tonic-gatehidparser:                Logical Maximum(0x7FFF)
12800Sstevel@tonic-gatehidparser:                Report Id(0x3)
12810Sstevel@tonic-gatehidparser:                Usage Page(0x1)
12820Sstevel@tonic-gatehidparser:                Report Size(0x10)
12830Sstevel@tonic-gatehidparser:                Report Count(0x1)
12840Sstevel@tonic-gatehidparser:                Usage(0x3A)
12850Sstevel@tonic-gatehidparser:                Input(0x2)
12860Sstevel@tonic-gatehidparser:                Report Id(0x3)
12870Sstevel@tonic-gatehidparser:                Usage Page(0x9)
12880Sstevel@tonic-gatehidparser:                Logical Minimum(0x0)
12890Sstevel@tonic-gatehidparser:                Logical Maximum(0x1)
12900Sstevel@tonic-gatehidparser:                Physical Minimum(0x0)
12910Sstevel@tonic-gatehidparser:                Physical Maximum(0x1)
12920Sstevel@tonic-gatehidparser:                Report Size(0x1)
12930Sstevel@tonic-gatehidparser:                Report Count(0xD)
12940Sstevel@tonic-gatehidparser:                Usage Minimum(0x1)
12950Sstevel@tonic-gatehidparser:                Usage Maximum(0xD)
12960Sstevel@tonic-gatehidparser:                Input(0x2)
12970Sstevel@tonic-gatehidparser:                Report Id(0x3)
12980Sstevel@tonic-gatehidparser:                Usage Page(0x9)
12990Sstevel@tonic-gatehidparser:                Logical Minimum(0x0)
13000Sstevel@tonic-gatehidparser:                Logical Maximum(0x1)
13010Sstevel@tonic-gatehidparser:                Physical Minimum(0x0)
13020Sstevel@tonic-gatehidparser:                Physical Maximum(0x1)
13030Sstevel@tonic-gatehidparser:                Report Size(0x1)
13040Sstevel@tonic-gatehidparser:                Report Count(0x3)
13050Sstevel@tonic-gatehidparser:                Input(0x1)
13060Sstevel@tonic-gatehidparser:           End Collection(0x0)
13070Sstevel@tonic-gatehidparser:           Report Id(0x3)
13080Sstevel@tonic-gatehidparser:           Logical Minimum(0x0)
13090Sstevel@tonic-gatehidparser:           Logical Maximum(0x1)
13100Sstevel@tonic-gatehidparser:           Physical Minimum(0x0)
13110Sstevel@tonic-gatehidparser:           Physical Maximum(0x1)
13120Sstevel@tonic-gatehidparser:           Report Size(0x1)
13130Sstevel@tonic-gatehidparser:           Report Count(0x3)
13140Sstevel@tonic-gatehidparser:           Usage Page(0x1)
13150Sstevel@tonic-gatehidparser:           Usage(0x3A)
13160Sstevel@tonic-gatehidparser:           Collection(0x2)
13170Sstevel@tonic-gatehidparser:                Report Id(0x3)
13180Sstevel@tonic-gatehidparser:                Physical Minimum(0x0)
13190Sstevel@tonic-gatehidparser:                Physical Maximum(0x1)
13200Sstevel@tonic-gatehidparser:                Report Count(0x3)
13210Sstevel@tonic-gatehidparser:                Usage Page(0x1)
13220Sstevel@tonic-gatehidparser:                Logical Minimum(0x80)
13230Sstevel@tonic-gatehidparser:                Logical Maximum(0x7F)
13240Sstevel@tonic-gatehidparser:                Report Size(0x8)
13250Sstevel@tonic-gatehidparser:                Usage(0x3A)
13260Sstevel@tonic-gatehidparser:                Collection(0x2)
13270Sstevel@tonic-gatehidparser:                     Physical Minimum(0x0)
13280Sstevel@tonic-gatehidparser:                     Physical Maximum(0x1)
13290Sstevel@tonic-gatehidparser:                     Usage Page(0x1)
13300Sstevel@tonic-gatehidparser:                     Logical Minimum(0x80)
13310Sstevel@tonic-gatehidparser:                     Logical Maximum(0x7F)
13320Sstevel@tonic-gatehidparser:                     Report Size(0x8)
13330Sstevel@tonic-gatehidparser:                     Report Id(0x4)
13340Sstevel@tonic-gatehidparser:                     Report Count(0x4)
13350Sstevel@tonic-gatehidparser:                     Usage(0x3A)
13360Sstevel@tonic-gatehidparser:                     Feature(0x2)
13370Sstevel@tonic-gatehidparser:                End Collection(0x0)
13380Sstevel@tonic-gatehidparser:                Physical Minimum(0x0)
13390Sstevel@tonic-gatehidparser:                Physical Maximum(0x1)
13400Sstevel@tonic-gatehidparser:                Usage Page(0x1)
13410Sstevel@tonic-gatehidparser:                Logical Minimum(0x80)
13420Sstevel@tonic-gatehidparser:                Logical Maximum(0x7F)
13430Sstevel@tonic-gatehidparser:                Report Size(0x8)
13440Sstevel@tonic-gatehidparser:                Report Id(0x4)
13450Sstevel@tonic-gatehidparser:                Report Count(0x4)
13460Sstevel@tonic-gatehidparser:                Collection(0x2)
13470Sstevel@tonic-gatehidparser:                     Physical Minimum(0x0)
13480Sstevel@tonic-gatehidparser:                     Physical Maximum(0x1)
13490Sstevel@tonic-gatehidparser:                     Usage Page(0x1)
13500Sstevel@tonic-gatehidparser:                     Logical Minimum(0x80)
13510Sstevel@tonic-gatehidparser:                     Logical Maximum(0x7F)
13520Sstevel@tonic-gatehidparser:                     Report Size(0x8)
13530Sstevel@tonic-gatehidparser:                     Report Id(0x5)
13540Sstevel@tonic-gatehidparser:                     Report Count(0x1)
13550Sstevel@tonic-gatehidparser:                     Usage(0x3A)
13560Sstevel@tonic-gatehidparser:                     Feature(0x2)
13570Sstevel@tonic-gatehidparser:                End Collection(0x0)
13580Sstevel@tonic-gatehidparser:                Physical Minimum(0x0)
13590Sstevel@tonic-gatehidparser:                Physical Maximum(0x1)
13600Sstevel@tonic-gatehidparser:                Usage Page(0x1)
13610Sstevel@tonic-gatehidparser:                Logical Minimum(0x80)
13620Sstevel@tonic-gatehidparser:                Logical Maximum(0x7F)
13630Sstevel@tonic-gatehidparser:                Report Size(0x8)
13640Sstevel@tonic-gatehidparser:                Report Id(0x5)
13650Sstevel@tonic-gatehidparser:                Report Count(0x1)
13660Sstevel@tonic-gatehidparser:                Collection(0x2)
13670Sstevel@tonic-gatehidparser:                     Physical Minimum(0x0)
13680Sstevel@tonic-gatehidparser:                     Physical Maximum(0x1)
13690Sstevel@tonic-gatehidparser:                     Usage Page(0x1)
13700Sstevel@tonic-gatehidparser:                     Logical Minimum(0x80)
13710Sstevel@tonic-gatehidparser:                     Logical Maximum(0x7F)
13720Sstevel@tonic-gatehidparser:                     Report Size(0x8)
13730Sstevel@tonic-gatehidparser:                     Report Id(0x6)
13740Sstevel@tonic-gatehidparser:                     Report Count(0x1)
13750Sstevel@tonic-gatehidparser:                     Usage(0x3A)
13760Sstevel@tonic-gatehidparser:                     Feature(0x2)
13770Sstevel@tonic-gatehidparser:                End Collection(0x0)
13780Sstevel@tonic-gatehidparser:                Physical Minimum(0x0)
13790Sstevel@tonic-gatehidparser:                Physical Maximum(0x1)
13800Sstevel@tonic-gatehidparser:                Usage Page(0x1)
13810Sstevel@tonic-gatehidparser:                Logical Minimum(0x80)
13820Sstevel@tonic-gatehidparser:                Logical Maximum(0x7F)
13830Sstevel@tonic-gatehidparser:                Report Size(0x8)
13840Sstevel@tonic-gatehidparser:                Report Id(0x6)
13850Sstevel@tonic-gatehidparser:                Report Count(0x1)
13860Sstevel@tonic-gatehidparser:                Collection(0x2)
13870Sstevel@tonic-gatehidparser:                     Physical Minimum(0x0)
13880Sstevel@tonic-gatehidparser:                     Physical Maximum(0x1)
13890Sstevel@tonic-gatehidparser:                     Usage Page(0x1)
13900Sstevel@tonic-gatehidparser:                     Logical Minimum(0x80)
13910Sstevel@tonic-gatehidparser:                     Logical Maximum(0x7F)
13920Sstevel@tonic-gatehidparser:                     Report Size(0x8)
13930Sstevel@tonic-gatehidparser:                     Report Id(0x7)
13940Sstevel@tonic-gatehidparser:                     Report Count(0x10)
13950Sstevel@tonic-gatehidparser:                     Usage(0x3A)
13960Sstevel@tonic-gatehidparser:                     Feature(0x2)
13970Sstevel@tonic-gatehidparser:                End Collection(0x0)
13980Sstevel@tonic-gatehidparser:                Physical Minimum(0x0)
13990Sstevel@tonic-gatehidparser:                Physical Maximum(0x1)
14000Sstevel@tonic-gatehidparser:                Usage Page(0x1)
14010Sstevel@tonic-gatehidparser:                Logical Minimum(0x80)
14020Sstevel@tonic-gatehidparser:                Logical Maximum(0x7F)
14030Sstevel@tonic-gatehidparser:                Report Size(0x8)
14040Sstevel@tonic-gatehidparser:                Report Id(0x7)
14050Sstevel@tonic-gatehidparser:                Report Count(0x10)
14060Sstevel@tonic-gatehidparser:                Collection(0x2)
14070Sstevel@tonic-gatehidparser:                     Physical Minimum(0x0)
14080Sstevel@tonic-gatehidparser:                     Physical Maximum(0x1)
14090Sstevel@tonic-gatehidparser:                     Usage Page(0x1)
14100Sstevel@tonic-gatehidparser:                     Logical Minimum(0x80)
14110Sstevel@tonic-gatehidparser:                     Logical Maximum(0x7F)
14120Sstevel@tonic-gatehidparser:                     Report Size(0x8)
14130Sstevel@tonic-gatehidparser:                     Report Id(0x8)
14140Sstevel@tonic-gatehidparser:                     Report Count(0x10)
14150Sstevel@tonic-gatehidparser:                     Usage(0x3A)
14160Sstevel@tonic-gatehidparser:                     Feature(0x2)
14170Sstevel@tonic-gatehidparser:                End Collection(0x0)
14180Sstevel@tonic-gatehidparser:                Physical Minimum(0x0)
14190Sstevel@tonic-gatehidparser:                Physical Maximum(0x1)
14200Sstevel@tonic-gatehidparser:                Usage Page(0x1)
14210Sstevel@tonic-gatehidparser:                Logical Minimum(0x80)
14220Sstevel@tonic-gatehidparser:                Logical Maximum(0x7F)
14230Sstevel@tonic-gatehidparser:                Report Size(0x8)
14240Sstevel@tonic-gatehidparser:                Report Id(0x8)
14250Sstevel@tonic-gatehidparser:                Report Count(0x10)
14260Sstevel@tonic-gatehidparser:                Collection(0x2)
14270Sstevel@tonic-gatehidparser:                     Physical Minimum(0x0)
14280Sstevel@tonic-gatehidparser:                     Physical Maximum(0x1)
14290Sstevel@tonic-gatehidparser:                     Usage Page(0x1)
14300Sstevel@tonic-gatehidparser:                     Logical Minimum(0x80)
14310Sstevel@tonic-gatehidparser:                     Logical Maximum(0x7F)
14320Sstevel@tonic-gatehidparser:                     Report Size(0x8)
14330Sstevel@tonic-gatehidparser:                     Report Id(0x9)
14340Sstevel@tonic-gatehidparser:                     Report Count(0xC)
14350Sstevel@tonic-gatehidparser:                     Usage(0x3A)
14360Sstevel@tonic-gatehidparser:                     Feature(0x2)
14370Sstevel@tonic-gatehidparser:                End Collection(0x0)
14380Sstevel@tonic-gatehidparser:                Physical Minimum(0x0)
14390Sstevel@tonic-gatehidparser:                Physical Maximum(0x1)
14400Sstevel@tonic-gatehidparser:                Usage Page(0x1)
14410Sstevel@tonic-gatehidparser:                Logical Minimum(0x80)
14420Sstevel@tonic-gatehidparser:                Logical Maximum(0x7F)
14430Sstevel@tonic-gatehidparser:                Report Size(0x8)
14440Sstevel@tonic-gatehidparser:                Report Id(0x9)
14450Sstevel@tonic-gatehidparser:                Report Count(0xC)
14460Sstevel@tonic-gatehidparser:                Collection(0x2)
14470Sstevel@tonic-gatehidparser:                     Physical Minimum(0x0)
14480Sstevel@tonic-gatehidparser:                     Physical Maximum(0x1)
14490Sstevel@tonic-gatehidparser:                     Usage Page(0x1)
14500Sstevel@tonic-gatehidparser:                     Logical Minimum(0x80)
14510Sstevel@tonic-gatehidparser:                     Logical Maximum(0x7F)
14520Sstevel@tonic-gatehidparser:                     Report Size(0x8)
14530Sstevel@tonic-gatehidparser:                     Report Id(0xA)
14540Sstevel@tonic-gatehidparser:                     Report Count(0x1)
14550Sstevel@tonic-gatehidparser:                     Usage(0x3A)
14560Sstevel@tonic-gatehidparser:                     Feature(0x2)
14570Sstevel@tonic-gatehidparser:                End Collection(0x0)
14580Sstevel@tonic-gatehidparser:                Physical Minimum(0x0)
14590Sstevel@tonic-gatehidparser:                Physical Maximum(0x1)
14600Sstevel@tonic-gatehidparser:                Usage Page(0x1)
14610Sstevel@tonic-gatehidparser:                Logical Minimum(0x80)
14620Sstevel@tonic-gatehidparser:                Logical Maximum(0x7F)
14630Sstevel@tonic-gatehidparser:                Report Size(0x8)
14640Sstevel@tonic-gatehidparser:                Report Id(0xA)
14650Sstevel@tonic-gatehidparser:                Report Count(0x1)
14660Sstevel@tonic-gatehidparser:                Collection(0x2)
14670Sstevel@tonic-gatehidparser:                     Physical Minimum(0x0)
14680Sstevel@tonic-gatehidparser:                     Physical Maximum(0x1)
14690Sstevel@tonic-gatehidparser:                     Usage Page(0x1)
14700Sstevel@tonic-gatehidparser:                     Logical Minimum(0x80)
14710Sstevel@tonic-gatehidparser:                     Logical Maximum(0x7F)
14720Sstevel@tonic-gatehidparser:                     Report Size(0x8)
14730Sstevel@tonic-gatehidparser:                     Report Id(0xB)
14740Sstevel@tonic-gatehidparser:                     Report Count(0x1)
14750Sstevel@tonic-gatehidparser:                     Usage(0x3A)
14760Sstevel@tonic-gatehidparser:                     Feature(0x2)
14770Sstevel@tonic-gatehidparser:                End Collection(0x0)
14780Sstevel@tonic-gatehidparser:                Physical Minimum(0x0)
14790Sstevel@tonic-gatehidparser:                Physical Maximum(0x1)
14800Sstevel@tonic-gatehidparser:                Usage Page(0x1)
14810Sstevel@tonic-gatehidparser:                Logical Minimum(0x80)
14820Sstevel@tonic-gatehidparser:                Logical Maximum(0x7F)
14830Sstevel@tonic-gatehidparser:                Report Size(0x8)
14840Sstevel@tonic-gatehidparser:                Report Id(0xB)
14850Sstevel@tonic-gatehidparser:                Report Count(0x1)
14860Sstevel@tonic-gatehidparser:                Collection(0x2)
14870Sstevel@tonic-gatehidparser:                     Physical Minimum(0x0)
14880Sstevel@tonic-gatehidparser:                     Physical Maximum(0x1)
14890Sstevel@tonic-gatehidparser:                     Usage Page(0x1)
14900Sstevel@tonic-gatehidparser:                     Logical Minimum(0x80)
14910Sstevel@tonic-gatehidparser:                     Logical Maximum(0x7F)
14920Sstevel@tonic-gatehidparser:                     Report Size(0x8)
14930Sstevel@tonic-gatehidparser:                     Report Id(0xC)
14940Sstevel@tonic-gatehidparser:                     Report Count(0x1)
14950Sstevel@tonic-gatehidparser:                     Usage(0x3A)
14960Sstevel@tonic-gatehidparser:                     Feature(0x2)
14970Sstevel@tonic-gatehidparser:                End Collection(0x0)
14980Sstevel@tonic-gatehidparser:                Physical Minimum(0x0)
14990Sstevel@tonic-gatehidparser:                Physical Maximum(0x1)
15000Sstevel@tonic-gatehidparser:                Usage Page(0x1)
15010Sstevel@tonic-gatehidparser:                Logical Minimum(0x80)
15020Sstevel@tonic-gatehidparser:                Logical Maximum(0x7F)
15030Sstevel@tonic-gatehidparser:                Report Size(0x8)
15040Sstevel@tonic-gatehidparser:                Report Id(0xC)
15050Sstevel@tonic-gatehidparser:                Report Count(0x1)
15060Sstevel@tonic-gatehidparser:                Collection(0x2)
15070Sstevel@tonic-gatehidparser:                     Physical Minimum(0x0)
15080Sstevel@tonic-gatehidparser:                     Physical Maximum(0x1)
15090Sstevel@tonic-gatehidparser:                     Usage Page(0x1)
15100Sstevel@tonic-gatehidparser:                     Logical Minimum(0x80)
15110Sstevel@tonic-gatehidparser:                     Logical Maximum(0x7F)
15120Sstevel@tonic-gatehidparser:                     Report Size(0x8)
15130Sstevel@tonic-gatehidparser:                     Report Id(0xD)
15140Sstevel@tonic-gatehidparser:                     Report Count(0x2)
15150Sstevel@tonic-gatehidparser:                     Usage(0x3A)
15160Sstevel@tonic-gatehidparser:                     Feature(0x2)
15170Sstevel@tonic-gatehidparser:                End Collection(0x0)
15180Sstevel@tonic-gatehidparser:           End Collection(0x0)
15190Sstevel@tonic-gatehidparser:      End Collection(0x0)
15200Sstevel@tonic-gate
15210Sstevel@tonic-gateThe actual tree is
15220Sstevel@tonic-gate
15230Sstevel@tonic-gate
15240Sstevel@tonic-gateunsigned char hid_report_desc[] = {
15250Sstevel@tonic-gate	0x5, 0x1,              /* Usage Page (Generic Desktop)             */
15260Sstevel@tonic-gate	0x9, 0x8,              /* Usage (0x8:Multi-axis controller)        */
15270Sstevel@tonic-gate	0xa1, 0x1,             /* Collection (Application)                 */
15280Sstevel@tonic-gate	0xa1, 0,               /*     Collection (Physical)                */
15290Sstevel@tonic-gate	0x85, 0x1,             /*         Report ID (0x1)                  */
15300Sstevel@tonic-gate	0x16, 0, 0x80,         /*         Logical Minimum (0x8000)         */
15310Sstevel@tonic-gate	0x26, 0xff, 0x7f,      /*         Logical Maximum (0x7fff)         */
15320Sstevel@tonic-gate	0x9, 0x30,             /*         Usage (0x30:X)                   */
15330Sstevel@tonic-gate	0x9, 0x31,             /*         Usage (0x31:Y)                   */
15340Sstevel@tonic-gate	0x9, 0x32,             /*         Usage (0x32:Z)                   */
15350Sstevel@tonic-gate	0x75, 0x10,            /*         Report Size (0x10)               */
15360Sstevel@tonic-gate	0x95, 0x3,             /*         Report Count (0x3)               */
15370Sstevel@tonic-gate	0x81, 0x2,             /*         Input (Data, Variable, Absolute) */
15380Sstevel@tonic-gate	0xc0,                  /*     End Collection                       */
15390Sstevel@tonic-gate	0xa1, 0,               /*     Collection (Physical)                */
15400Sstevel@tonic-gate	0x85, 0x2,             /*         Report ID (0x2)                  */
15410Sstevel@tonic-gate	0x9, 0x33,             /*         Usage (0x33:Rx)                  */
15420Sstevel@tonic-gate	0x9, 0x34,             /*         Usage (0x34:Ry)                  */
15430Sstevel@tonic-gate	0x9, 0x35,             /*         Usage (0x35:Rz)                  */
15440Sstevel@tonic-gate	0x75, 0x10,            /*         Report Size (0x10)               */
15450Sstevel@tonic-gate	0x95, 0x3,             /*         Report Count (0x3)               */
15460Sstevel@tonic-gate	0x81, 0x2,             /*         Input (Data, Variable, Absolute) */
15470Sstevel@tonic-gate	0xc0,                  /*     End Collection                       */
15480Sstevel@tonic-gate	0xa1, 0x2,             /*     Collection (Logical)                 */
15490Sstevel@tonic-gate	0x85, 0x3,             /*         Report ID (0x3)                  */
15500Sstevel@tonic-gate	0x5, 0x1,              /*         Usage Page (Generic Desktop)     */
15510Sstevel@tonic-gate	0x9, 0x3a,             /*         Usage (0x3a: Counted Buffer)     */
15520Sstevel@tonic-gate	0x75, 0x10,            /*         Report Size (0x10)               */
15530Sstevel@tonic-gate	0x95, 0x1,             /*         Report Count (0x1)               */
15540Sstevel@tonic-gate	0x81, 0x2,             /*         Input (Data, Variable, Absolute) */
15550Sstevel@tonic-gate	0x5, 0x9,              /*         Usage Page (Button)              */
15560Sstevel@tonic-gate	0x19, 0x1,             /*         Usage Minimum (0x1)              */
15570Sstevel@tonic-gate	0x29, 0xd,             /*         Usage Maximum (0xd)              */
15580Sstevel@tonic-gate	0x15, 0,               /*         Logical Minimum (0)              */
15590Sstevel@tonic-gate	0x25, 0x1,             /*         Logical Maximum (0x1)            */
15600Sstevel@tonic-gate	0x35, 0,               /*         Physical Minimum (0)             */
15610Sstevel@tonic-gate	0x45, 0x1,             /*         Physical Maximum (0x1)           */
15620Sstevel@tonic-gate	0x75, 0x1,             /*         Report Size (0x1)                */
15630Sstevel@tonic-gate	0x95, 0xd,             /*         Report Count (0xd)               */
15640Sstevel@tonic-gate	0x81, 0x2,             /*         Input (Data, Variable, Absolute) */
15650Sstevel@tonic-gate	0x95, 0x3,             /*         Report Count (0x3)               */
15660Sstevel@tonic-gate	0x81, 0x1,             /*         Input (Constant, Array, Absolute) */
15670Sstevel@tonic-gate	0xc0,                  /*     End Collection                       */
15680Sstevel@tonic-gate	0x5, 0x1,              /*     Usage Page (Generic Desktop)         */
15690Sstevel@tonic-gate	0x9, 0x3a,             /*     Usage (0x3a: Counted Buffer)         */
15700Sstevel@tonic-gate	0xa1, 0x2,             /*     Collection (Logical)                 */
15710Sstevel@tonic-gate	0x15, 0x80,            /*         Logical Minimum (0x80)           */
15720Sstevel@tonic-gate	0x25, 0x7f,            /*         Logical Maximum (0x7f)           */
15730Sstevel@tonic-gate	0x75, 0x8,             /*         Report Size (0x8)                */
15740Sstevel@tonic-gate	0x9, 0x3a,             /*         Usage (0x3a: Counted Buffer)     */
15750Sstevel@tonic-gate	0xa1, 0x2,             /*         Collection (Logical)             */
15760Sstevel@tonic-gate	0x85, 0x4,             /*             Report ID (0x4)              */
15770Sstevel@tonic-gate	0x9, 0x3a,             /*             Usage (0x3a: Counted Buffer) */
15780Sstevel@tonic-gate	0x95, 0x4,             /*             Report Count (0x4)           */
15790Sstevel@tonic-gate	0xb1, 0x2,             /*             Feature (Data, Variable, Absolute) */
15800Sstevel@tonic-gate	0xc0,                  /*         End Collection                   */
15810Sstevel@tonic-gate	0xa1, 0x2,             /*         Collection (Logical)             */
15820Sstevel@tonic-gate	0x85, 0x5,             /*             Report ID (0x5)              */
15830Sstevel@tonic-gate	0x9, 0x3a,             /*             Usage (0x3a:Counted Buffer)  */
15840Sstevel@tonic-gate	0x95, 0x1,             /*             Report Count (0x1)           */
15850Sstevel@tonic-gate	0xb1, 0x2,             /*             Feature (Data, Variable, Absolute) */
15860Sstevel@tonic-gate	0xc0,                  /*         End Collection                   */
15870Sstevel@tonic-gate	0xa1, 0x2,             /*         Collection (Logical)             */
15880Sstevel@tonic-gate	0x85, 0x6,             /*             Report ID (0x6)              */
15890Sstevel@tonic-gate	0x9, 0x3a,             /*             Usage (0x3a: Counted Buffer) */
15900Sstevel@tonic-gate	0x95, 0x1,             /*             Report Count (0x1)           */
15910Sstevel@tonic-gate	0xb1, 0x2,             /*             Feature (Data, Variable, Absolute) */
15920Sstevel@tonic-gate	0xc0,                  /*         End Collection                   */
15930Sstevel@tonic-gate	0xa1, 0x2,             /*         Collection (Logical)             */
15940Sstevel@tonic-gate	0x85, 0x7,             /*             Report ID (0x7)              */
15950Sstevel@tonic-gate	0x9, 0x3a,             /*             Usage (0x3a: Counted Buffer) */
15960Sstevel@tonic-gate	0x95, 0x10,            /*             Report Count (0x10)          */
15970Sstevel@tonic-gate	0xb1, 0x2,             /*             Feature (Data, Variable, Absolute) */
15980Sstevel@tonic-gate	0xc0,                  /*         End Collection                   */
15990Sstevel@tonic-gate	0xa1, 0x2,             /*         Collection (Logical)             */
16000Sstevel@tonic-gate	0x85, 0x8,             /*             Report ID (0x8)              */
16010Sstevel@tonic-gate	0x9, 0x3a,             /*             Usage (0x3a: Counted Buffer) */
16020Sstevel@tonic-gate	0x95, 0x10,            /*             Report Count (0x10)          */
16030Sstevel@tonic-gate	0xb1, 0x2,             /*             Feature (Data, Variable, Absolute) */
16040Sstevel@tonic-gate	0xc0,                  /*         End Collection                   */
16050Sstevel@tonic-gate	0xa1, 0x2,             /*         Collection (Logical)             */
16060Sstevel@tonic-gate	0x85, 0x9,             /*             Report ID (0x9)              */
16070Sstevel@tonic-gate	0x9, 0x3a,             /*             Usage (0x3a: Counted Buffer) */
16080Sstevel@tonic-gate	0x95, 0xc,             /*             Report Count (0xc)           */
16090Sstevel@tonic-gate	0xb1, 0x2,             /*             Feature (Data, Variable, Absolute) */
16100Sstevel@tonic-gate	0xc0,                  /*         End Collection                   */
16110Sstevel@tonic-gate	0xa1, 0x2,             /*         Collection (Logical)             */
16120Sstevel@tonic-gate	0x85, 0xa,             /*             Report ID (0xa)              */
16130Sstevel@tonic-gate	0x9, 0x3a,             /*             Usage (0x3a: Counted Buffer) */
16140Sstevel@tonic-gate	0x95, 0x1,             /*             Report Count (0x1)           */
16150Sstevel@tonic-gate	0xb1, 0x2,             /*             Feature (Data, Variable, Absolute) */
16160Sstevel@tonic-gate	0xc0,                  /*         End Collection                   */
16170Sstevel@tonic-gate	0xa1, 0x2,             /*         Collection (Logical)             */
16180Sstevel@tonic-gate	0x85, 0xb,             /*             Report ID (0xb)              */
16190Sstevel@tonic-gate	0x9, 0x3a,             /*             Usage (0x3a: Counted Buffer) */
16200Sstevel@tonic-gate	0x95, 0x1,             /*             Report Count (0x1)           */
16210Sstevel@tonic-gate	0xb1, 0x2,             /*             Feature (Data, Variable, Absolute) */
16220Sstevel@tonic-gate	0xc0,                  /*         End Collection                   */
16230Sstevel@tonic-gate	0xa1, 0x2,             /*         Collection (Logical)             */
16240Sstevel@tonic-gate	0x85, 0xc,             /*             Report ID (0xc)              */
16250Sstevel@tonic-gate	0x9, 0x3a,             /*             Usage (0x3a: Counted Buffer) */
16260Sstevel@tonic-gate	0x95, 0x1,             /*             Report Count (0x1)           */
16270Sstevel@tonic-gate	0xb1, 0x2,             /*             Feature (Data, Variable, Absolute) */
16280Sstevel@tonic-gate	0xc0,                  /*         End Collection                   */
16290Sstevel@tonic-gate	0xa1, 0x2,             /*         Collection (Logical)             */
16300Sstevel@tonic-gate	0x85, 0xd,             /*             Report ID (0xd)              */
16310Sstevel@tonic-gate	0x9, 0x3a,             /*             Usage (0x3a: Counted Buffer) */
16320Sstevel@tonic-gate	0x95, 0x2,             /*             Report Count (0x2)           */
16330Sstevel@tonic-gate	0xb1, 0x2,             /*             Feature (Data, Variable, Absolute) */
16340Sstevel@tonic-gate	0xc0,                  /*         End Collection                   */
16350Sstevel@tonic-gate	0xc0,                  /*     End Collection                       */
16360Sstevel@tonic-gate	0xc0,                  /* End Collection                           */
16370Sstevel@tonic-gate};
16380Sstevel@tonic-gate
16390Sstevel@tonic-gate______________________________________________________________________________
1640