Lines 371-380
static void do_input(char *alias,
Link Here
|
371 |
kernel_ulong_t *arr, unsigned int min, unsigned int max) |
371 |
kernel_ulong_t *arr, unsigned int min, unsigned int max) |
372 |
{ |
372 |
{ |
373 |
unsigned int i; |
373 |
unsigned int i; |
374 |
for (i = min; i < max; i++) { |
374 |
|
375 |
if (arr[i/BITS_PER_LONG] & (1 << (i%BITS_PER_LONG))) |
375 |
for (i = min; i < max; i++) |
376 |
sprintf(alias+strlen(alias), "%X,*", i); |
376 |
if (arr[i / BITS_PER_LONG] & (1 << (i%BITS_PER_LONG))) |
377 |
} |
377 |
sprintf(alias + strlen(alias), "%X,*", i); |
378 |
} |
378 |
} |
379 |
|
379 |
|
380 |
/* input:b0v0p0e0-eXkXrXaXmXlXsXfXwX where X is comma-separated %02X. */ |
380 |
/* input:b0v0p0e0-eXkXrXaXmXlXsXfXwX where X is comma-separated %02X. */ |
Lines 383-421
static int do_input_entry(const char *fi
Link Here
|
383 |
{ |
383 |
{ |
384 |
sprintf(alias, "input:"); |
384 |
sprintf(alias, "input:"); |
385 |
|
385 |
|
386 |
ADD(alias, "b", id->flags&INPUT_DEVICE_ID_MATCH_BUS, id->id.bustype); |
386 |
ADD(alias, "b", id->flags & INPUT_DEVICE_ID_MATCH_BUS, id->bustype); |
387 |
ADD(alias, "v", id->flags&INPUT_DEVICE_ID_MATCH_VENDOR, id->id.vendor); |
387 |
ADD(alias, "v", id->flags & INPUT_DEVICE_ID_MATCH_VENDOR, id->vendor); |
388 |
ADD(alias, "p", id->flags&INPUT_DEVICE_ID_MATCH_PRODUCT, |
388 |
ADD(alias, "p", id->flags & INPUT_DEVICE_ID_MATCH_PRODUCT, id->product); |
389 |
id->id.product); |
389 |
ADD(alias, "e", id->flags & INPUT_DEVICE_ID_MATCH_VERSION, id->version); |
390 |
ADD(alias, "e", id->flags&INPUT_DEVICE_ID_MATCH_VERSION, |
|
|
391 |
id->id.version); |
392 |
|
390 |
|
393 |
sprintf(alias + strlen(alias), "-e*"); |
391 |
sprintf(alias + strlen(alias), "-e*"); |
394 |
if (id->flags&INPUT_DEVICE_ID_MATCH_EVBIT) |
392 |
if (id->flags & INPUT_DEVICE_ID_MATCH_EVBIT) |
395 |
do_input(alias, id->evbit, 0, EV_MAX); |
393 |
do_input(alias, id->evbit, 0, EV_MAX); |
396 |
sprintf(alias + strlen(alias), "k*"); |
394 |
sprintf(alias + strlen(alias), "k*"); |
397 |
if (id->flags&INPUT_DEVICE_ID_MATCH_KEYBIT) |
395 |
if (id->flags & INPUT_DEVICE_ID_MATCH_KEYBIT) |
398 |
do_input(alias, id->keybit, KEY_MIN_INTERESTING, KEY_MAX); |
396 |
do_input(alias, id->keybit, KEY_MIN_INTERESTING, KEY_MAX); |
399 |
sprintf(alias + strlen(alias), "r*"); |
397 |
sprintf(alias + strlen(alias), "r*"); |
400 |
if (id->flags&INPUT_DEVICE_ID_MATCH_RELBIT) |
398 |
if (id->flags & INPUT_DEVICE_ID_MATCH_RELBIT) |
401 |
do_input(alias, id->relbit, 0, REL_MAX); |
399 |
do_input(alias, id->relbit, 0, REL_MAX); |
402 |
sprintf(alias + strlen(alias), "a*"); |
400 |
sprintf(alias + strlen(alias), "a*"); |
403 |
if (id->flags&INPUT_DEVICE_ID_MATCH_ABSBIT) |
401 |
if (id->flags & INPUT_DEVICE_ID_MATCH_ABSBIT) |
404 |
do_input(alias, id->absbit, 0, ABS_MAX); |
402 |
do_input(alias, id->absbit, 0, ABS_MAX); |
405 |
sprintf(alias + strlen(alias), "m*"); |
403 |
sprintf(alias + strlen(alias), "m*"); |
406 |
if (id->flags&INPUT_DEVICE_ID_MATCH_MSCIT) |
404 |
if (id->flags & INPUT_DEVICE_ID_MATCH_MSCIT) |
407 |
do_input(alias, id->mscbit, 0, MSC_MAX); |
405 |
do_input(alias, id->mscbit, 0, MSC_MAX); |
408 |
sprintf(alias + strlen(alias), "l*"); |
406 |
sprintf(alias + strlen(alias), "l*"); |
409 |
if (id->flags&INPUT_DEVICE_ID_MATCH_LEDBIT) |
407 |
if (id->flags & INPUT_DEVICE_ID_MATCH_LEDBIT) |
410 |
do_input(alias, id->ledbit, 0, LED_MAX); |
408 |
do_input(alias, id->ledbit, 0, LED_MAX); |
411 |
sprintf(alias + strlen(alias), "s*"); |
409 |
sprintf(alias + strlen(alias), "s*"); |
412 |
if (id->flags&INPUT_DEVICE_ID_MATCH_SNDBIT) |
410 |
if (id->flags & INPUT_DEVICE_ID_MATCH_SNDBIT) |
413 |
do_input(alias, id->sndbit, 0, SND_MAX); |
411 |
do_input(alias, id->sndbit, 0, SND_MAX); |
414 |
sprintf(alias + strlen(alias), "f*"); |
412 |
sprintf(alias + strlen(alias), "f*"); |
415 |
if (id->flags&INPUT_DEVICE_ID_MATCH_FFBIT) |
413 |
if (id->flags & INPUT_DEVICE_ID_MATCH_FFBIT) |
416 |
do_input(alias, id->ffbit, 0, FF_MAX); |
414 |
do_input(alias, id->ffbit, 0, FF_MAX); |
417 |
sprintf(alias + strlen(alias), "w*"); |
415 |
sprintf(alias + strlen(alias), "w*"); |
418 |
if (id->flags&INPUT_DEVICE_ID_MATCH_SWBIT) |
416 |
if (id->flags & INPUT_DEVICE_ID_MATCH_SWBIT) |
419 |
do_input(alias, id->swbit, 0, SW_MAX); |
417 |
do_input(alias, id->swbit, 0, SW_MAX); |
420 |
return 1; |
418 |
return 1; |
421 |
} |
419 |
} |