/* USB::Device#descriptor_bNumConfigurations */ static VALUE rusb_devdesc_bNumConfigurations(VALUE v) { return INT2FIX(get_usb_device(v)->descriptor.bNumConfigurations); } /* USB::Device#configurations */ static VALUE rusb_device_config(VALUE v) { struct usb_device *device = get_usb_device(v); int i; VALUE children = rb_ary_new2(device->descriptor.bNumConfigurations); for (i = 0; i < device->descriptor.bNumConfigurations; i++) rb_ary_store(children, i, rusb_config_descriptor_make(&device->config[i], v)); return children; }