Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. =================================================================== RCS file: /ftp/cvs/cvsroot/src/sys/compat/ndis/Attic/subr_usbd.c,v rcsdiff: /ftp/cvs/cvsroot/src/sys/compat/ndis/Attic/subr_usbd.c,v: warning: Unknown phrases like `commitid ...;' are present. retrieving revision 1.2.2.1 retrieving revision 1.2.2.2 diff -u -p -r1.2.2.1 -r1.2.2.2 --- src/sys/compat/ndis/Attic/subr_usbd.c 2006/03/31 00:03:57 1.2.2.1 +++ src/sys/compat/ndis/Attic/subr_usbd.c 2006/03/31 09:45:13 1.2.2.2 @@ -0,0 +1,165 @@ +/*- + * Copyright (c) 2005 + * Bill Paul . All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by Bill Paul. + * 4. Neither the name of the author nor the names of any co-contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY Bill Paul AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL Bill Paul OR THE VOICES IN HIS HEAD + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include +#ifdef __FreeBSD__ +__FBSDID("$FreeBSD: src/sys/compat/ndis/subr_usbd.c,v 1.1.2.1 2005/03/31 04:24:36 wpaul Exp $"); +#endif +#ifdef __NetBSD__ +__KERNEL_RCSID(0, "$NetBSD"); +#endif + +#include +#include +#include +#include + +#include +#include +#include +#ifdef __FreeBSD__ +#include +#include +#endif +#include +#include +#ifdef __FreeBSD__ +#include +#endif + +#include + +#include +#include +#include +#include +#include +#include +#include + +static driver_object usbd_driver; + +__stdcall static uint32_t usbd_iodispatch(device_object *, irp *); + +__stdcall static void USBD_GetUSBDIVersion(usbd_version_info *); +__stdcall static void dummy(void); + +int +usbd_libinit(void) +{ + image_patch_table *patch; + + patch = usbd_functbl; + while (patch->ipt_func != NULL) { + windrv_wrap((funcptr)patch->ipt_func, + (funcptr *)&patch->ipt_wrap); + patch++; + } + + /* Create a fake USB driver instance. */ + + windrv_bus_attach(&usbd_driver, "USB Bus"); + + /* Set up our dipatch routine. */ + + usbd_driver.dro_dispatch[IRP_MJ_INTERNAL_DEVICE_CONTROL] = + (driver_dispatch)usbd_iodispatch; + + return(0); +} + +int +usbd_libfini(void) +{ + image_patch_table *patch; + + patch = usbd_functbl; + while (patch->ipt_func != NULL) { + windrv_unwrap(patch->ipt_wrap); + patch++; + } + + free(usbd_driver.dro_drivername.us_buf, M_DEVBUF); + + return(0); +} + +__stdcall static uint32_t +usbd_iodispatch(dobj, ip) + device_object *dobj; + irp *ip; +{ + return(0); +} + +__stdcall static void +USBD_GetUSBDIVersion(ui) + usbd_version_info *ui; +{ + /* Pretend to be Windows XP. */ + + ui->uvi_usbdi_vers = USBDI_VERSION; + ui->uvi_supported_vers = USB_VER_2_0; + + return; +} + +__stdcall static void +dummy(void) +{ + printf("USBD dummy called\n"); + return; +} + +image_patch_table usbd_functbl[] = { + IMPORT_FUNC(USBD_GetUSBDIVersion), +#ifdef notyet + IMPORT_FUNC_MAP(_USBD_ParseConfigurationDescriptorEx@28, + USBD_ParseConfigurationDescriptorEx), + IMPORT_FUNC_MAP(_USBD_CreateConfigurationRequestEx@8, + USBD_CreateConfigurationRequestEx), +#endif + + /* + * This last entry is a catch-all for any function we haven't + * implemented yet. The PE import list patching routine will + * use it for any function that doesn't have an explicit match + * in this table. + */ + + { NULL, (FUNC)dummy, NULL }, + + /* End of list. */ + + { NULL, NULL, NULL } +}; +