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