Lines Matching refs:iter
716 usb_desc_iter_init(struct usbd_device *dev, usbd_desc_iter_t *iter)
720 iter->cur = (const uByte *)cd;
721 iter->end = (const uByte *)cd + UGETW(cd->wTotalLength);
725 usb_desc_iter_peek(usbd_desc_iter_t *iter)
729 if (iter->end - iter->cur < sizeof(usb_descriptor_t)) {
730 if (iter->cur != iter->end)
734 desc = (const usb_descriptor_t *)iter->cur;
739 if (desc->bLength > iter->end - iter->cur) {
747 usb_desc_iter_next(usbd_desc_iter_t *iter)
749 const usb_descriptor_t *desc = usb_desc_iter_peek(iter);
753 KASSERT(desc->bLength <= iter->end - iter->cur);
754 iter->cur += desc->bLength;
763 usb_desc_iter_next_interface(usbd_desc_iter_t *iter)
767 while ((desc = usb_desc_iter_peek(iter)) != NULL &&
769 usb_desc_iter_next(iter);
772 if ((desc = usb_desc_iter_next(iter)) == NULL ||
784 usb_desc_iter_next_non_interface(usbd_desc_iter_t *iter)
788 if ((desc = usb_desc_iter_peek(iter)) != NULL &&
790 return usb_desc_iter_next(iter);
799 usbd_desc_iter_t iter;
802 usb_desc_iter_init(dev, &iter);
804 desc = (const usb_cdc_descriptor_t *)usb_desc_iter_next(&iter);
824 usbd_desc_iter_t iter;
830 usb_desc_iter_init(dev, &iter);
832 iter.cur = (void *)id; /* start from the interface desc */
833 usb_desc_iter_next(&iter); /* and skip it */
835 while ((desc = (const usb_cdc_descriptor_t *)usb_desc_iter_next(&iter))