1#- 2# Copyright (c) 2008 Hans Petter Selasky. All rights reserved. 3# 4# Redistribution and use in source and binary forms, with or without 5# modification, are permitted provided that the following conditions 6# are met: 7# 1. Redistributions of source code must retain the above copyright 8# notice, this list of conditions and the following disclaimer, 9# without modification, immediately at the beginning of the file. 10# 2. Redistributions in binary form must reproduce the above copyright 11# notice, this list of conditions and the following disclaimer in the 12# documentation and/or other materials provided with the distribution. 13# 3. The name of the author may not be used to endorse or promote products 14# derived from this software without specific prior written permission. 15# 16# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 17# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 18# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 19# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 20# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 21# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 22# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 23# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 24# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 25# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26# 27# $FreeBSD$ 28# 29 30# USB interface description 31# 32 33#include <sys/bus.h> 34 35INTERFACE usb; 36 37# The device received a control request 38# 39# The value pointed to by "pstate" can be updated to 40# "USB_HR_COMPLETE_OK" to indicate that the control 41# read transfer is complete, in case of short USB 42# control transfers. 43# 44# Return values: 45# 0: Success 46# ENOTTY: Transaction stalled 47# Else: Use builtin request handler 48# 49METHOD int handle_request { 50 device_t dev; 51 const void *req; /* pointer to the device request */ 52 void **pptr; /* data pointer */ 53 uint16_t *plen; /* maximum transfer length */ 54 uint16_t offset; /* data offset */ 55 uint8_t *pstate; /* set if transfer is complete, see USB_HR_XXX */ 56}; 57