ctrl->wValue, w_index, w_length); 
le16_to_cpu(ctrl->wValue), w_index, w_length); 
static int class_setup_req(struct fsg_dev *fsg,		const struct usb_ctrlrequest *ctrl){	struct usb_request	*req = fsg->ep0req;	int			value = -EOPNOTSUPP;	u16			w_index = ctrl->wIndex;	u16			w_length = ctrl->wLength;	if (!fsg->config)		return value;	/* Handle Bulk-only class-specific requests */	if (transport_is_bbb()) {		switch (ctrl->bRequest) {		case USB_BULK_RESET_REQUEST:			if (ctrl->bRequestType != (USB_DIR_OUT |					USB_TYPE_CLASS | USB_RECIP_INTERFACE))				break;			if (w_index != 0) {				value = -EDOM;				break;			}			/* Raise an exception to stop the current operation			 * and reinitialize our state. */			DBG(fsg, "bulk reset request\n");			raise_exception(fsg, FSG_STATE_RESET);			value = DELAYED_STATUS;			break;		case USB_BULK_GET_MAX_LUN_REQUEST:			if (ctrl->bRequestType != (USB_DIR_IN |					USB_TYPE_CLASS | USB_RECIP_INTERFACE))				break;			if (w_index != 0) {				value = -EDOM;				break;			}			VDBG(fsg, "get max LUN\n");			*(u8 *) req->buf = fsg->nluns - 1;			value = 1;			break;		}	}	/* Handle CBI class-specific requests */	else {		switch (ctrl->bRequest) {		case USB_CBI_ADSC_REQUEST:			if (ctrl->bRequestType != (USB_DIR_OUT |					USB_TYPE_CLASS | USB_RECIP_INTERFACE))				break;			if (w_index != 0) {				value = -EDOM;				break;			}			if (w_length > MAX_COMMAND_SIZE) {				value = -EOVERFLOW;				break;			}			value = w_length;			fsg->ep0req->context = received_cbi_adsc;			break;		}	}	if (value == -EOPNOTSUPP)		VDBG(fsg,			"unknown class-specific control req "			"%02x.%02x v%04x i%04x l%u\n",			ctrl->bRequestType, ctrl->bRequest,			ctrl->wValue, w_index, w_length);	return value;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/1bbc169621cbe502b9143a27eb12802a0f1d43a0/file_storage.c/buggy/drivers/usb/gadget/file_storage.c