public Hub (Device dev)
    throws IOException
    {
	super (ControlMessage.getClassDescriptor (dev,
		TYPE_HUB, (byte) 0, 0, 10));
	this.dev = dev;

	if (dev.getDeviceDescriptor ().getDeviceClass () != CLASS_HUB)
	    throw new IllegalArgumentException ();
	if (getDescriptorType () != TYPE_HUB)
	    throw new IllegalArgumentException (
		Integer.toHexString (getDescriptorType ())
		);
	if ((ports = getU8 (2)) > 15)	// more bytes to read?
	    throw new RuntimeException ("nyi");
    }