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# 28 29# USB interface description 30# 31 32#include <sys/bus.h> 33 34INTERFACE usb; 35 36# The device received a control request 37# 38# The value pointed to by "pstate" can be updated to 39# "USB_HR_COMPLETE_OK" to indicate that the control 40# read transfer is complete, in case of short USB 41# control transfers. 42# 43# Return values: 44# 0: Success 45# ENOTTY: Transaction stalled 46# Else: Use builtin request handler 47# 48METHOD int handle_request { 49 device_t dev; 50 const void *req; /* pointer to the device request */ 51 void **pptr; /* data pointer */ 52 uint16_t *plen; /* maximum transfer length */ 53 uint16_t offset; /* data offset */ 54 uint8_t *pstate; /* set if transfer is complete, see USB_HR_XXX */ 55}; 56 57# Take controller from BIOS 58# 59# Return values: 60# 0: Success 61# Else: Failure 62# 63METHOD int take_controller { 64 device_t dev; 65}; 66