Lines Matching refs:ps
329 usb_parse_extra(struct usb_parse_state *ps, uint8_t **pptr, int *plen) in usb_parse_extra() argument
334 ptr = ps->a.currextra->ptr; in usb_parse_extra()
335 len = ps->a.currextra->len; in usb_parse_extra()
337 if (ps->preparse == 0) { in usb_parse_extra()
338 memcpy(ps->b.currextra, ptr, len); in usb_parse_extra()
339 *pptr = ps->b.currextra; in usb_parse_extra()
342 ps->b.currextra += len; in usb_parse_extra()
347 usb_parse_endpoint(struct usb_parse_state *ps) in usb_parse_endpoint() argument
352 aep = ps->a.currep; in usb_parse_endpoint()
353 bep = ps->b.currep++; in usb_parse_endpoint()
355 if (ps->preparse == 0) { in usb_parse_endpoint()
366 ps->a.currextra = &aep->extra; in usb_parse_endpoint()
367 usb_parse_extra(ps, &bep->extra, &bep->extralen); in usb_parse_endpoint()
372 usb_parse_iface_sub(struct usb_parse_state *ps) in usb_parse_iface_sub() argument
378 aifc = ps->a.currifc; in usb_parse_iface_sub()
379 bifc = ps->b.currifc++; in usb_parse_iface_sub()
381 if (ps->preparse == 0) { in usb_parse_iface_sub()
392 bifc->endpoint = ps->b.currep; in usb_parse_iface_sub()
395 ps->a.currep = aifc->endpoints + x; in usb_parse_iface_sub()
396 usb_parse_endpoint(ps); in usb_parse_iface_sub()
399 ps->a.currextra = &aifc->extra; in usb_parse_iface_sub()
400 usb_parse_extra(ps, &bifc->extra, &bifc->extralen); in usb_parse_iface_sub()
405 usb_parse_iface(struct usb_parse_state *ps) in usb_parse_iface() argument
411 aifc = ps->a.currifc; in usb_parse_iface()
412 bifc = ps->b.currifcw++; in usb_parse_iface()
414 if (ps->preparse == 0) { in usb_parse_iface()
416 bifc->altsetting = ps->b.currifc; in usb_parse_iface()
419 usb_parse_iface_sub(ps); in usb_parse_iface()
422 ps->a.currifc = aifc->altsetting + x; in usb_parse_iface()
423 usb_parse_iface_sub(ps); in usb_parse_iface()
429 usb_parse_config(struct usb_parse_state *ps) in usb_parse_config() argument
435 acfg = ps->a.currcfg; in usb_parse_config()
436 bcfg = ps->b.currcfg; in usb_parse_config()
438 if (ps->preparse == 0) { in usb_parse_config()
448 bcfg->interface = ps->b.currifcw; in usb_parse_config()
451 ps->a.currifc = acfg->interface + x; in usb_parse_config()
452 usb_parse_iface(ps); in usb_parse_config()
455 ps->a.currextra = &acfg->extra; in usb_parse_config()
456 usb_parse_extra(ps, &bcfg->extra, &bcfg->extralen); in usb_parse_config()
464 struct usb_parse_state ps; in usb_parse_configuration() local
474 memset(&ps, 0, sizeof(ps)); in usb_parse_configuration()
476 ps.a.currcfg = libusb20_parse_config_desc(buffer); in usb_parse_configuration()
477 ps.b.currcfg = config; in usb_parse_configuration()
478 if (ps.a.currcfg == NULL) { in usb_parse_configuration()
483 ps.preparse = 1; in usb_parse_configuration()
484 usb_parse_config(&ps); in usb_parse_configuration()
486 a = ((uint8_t *)(ps.b.currifcw) - ((uint8_t *)0)); in usb_parse_configuration()
487 b = ((uint8_t *)(ps.b.currifc) - ((uint8_t *)0)); in usb_parse_configuration()
488 c = ((uint8_t *)(ps.b.currep) - ((uint8_t *)0)); in usb_parse_configuration()
489 d = ((uint8_t *)(ps.b.currextra) - ((uint8_t *)0)); in usb_parse_configuration()
495 free(ps.a.currcfg); in usb_parse_configuration()
500 ps.b.currifcw = (void *)(ptr); in usb_parse_configuration()
501 ps.b.currifc = (void *)(ptr + a); in usb_parse_configuration()
502 ps.b.currep = (void *)(ptr + a + b); in usb_parse_configuration()
503 ps.b.currextra = (void *)(ptr + a + b + c); in usb_parse_configuration()
506 ps.preparse = 0; in usb_parse_configuration()
507 usb_parse_config(&ps); in usb_parse_configuration()
510 free(ps.a.currcfg); in usb_parse_configuration()