FreeBSD Bugzilla – Attachment 18105 Details for
Bug 32652
[uscanner] [patch] A new ioctl to uscanner
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
file.diff
file.diff (text/plain), 2.73 KB, created by
ebakke
on 2001-12-09 21:10:00 UTC
(
hide
)
Description:
file.diff
Filename:
MIME Type:
Creator:
ebakke
Created:
2001-12-09 21:10:00 UTC
Size:
2.73 KB
patch
obsolete
>diff -ruN usb.bak/usb.h usb/usb.h >--- usb.bak/usb.h Sun Dec 9 21:44:13 2001 >+++ usb/usb.h Sun Dec 9 21:41:01 2001 >@@ -567,4 +567,7 @@ > #define USB_GET_CM_OVER_DATA _IOR ('U', 130, int) > #define USB_SET_CM_OVER_DATA _IOW ('U', 131, int) > >+/* Scanner device */ >+#define USB_GET_DEVICE_ID _IOR('U', 140, int) >+ > #endif /* _USB_H_ */ >diff -ruN usb.bak/uscanner.c usb/uscanner.c >--- usb.bak/uscanner.c Sun Dec 9 21:44:13 2001 >+++ usb/uscanner.c Sun Dec 9 21:41:10 2001 >@@ -95,6 +95,13 @@ > { USB_VENDOR_AGFA, USB_PRODUCT_AGFA_SNAPSCAN1212U }, > { USB_VENDOR_AGFA, USB_PRODUCT_AGFA_SNAPSCAN1212U2 }, > { USB_VENDOR_AGFA, USB_PRODUCT_AGFA_SNAPSCANTOUCH }, >+ { USB_VENDOR_AGFA, USB_PRODUCT_AGFA_SNAPSCAN1236U }, >+ { USB_VENDOR_AGFA, USB_PRODUCT_AGFA_SNAPSCANE20 }, >+ { USB_VENDOR_AGFA, USB_PRODUCT_AGFA_SNAPSCANE25 }, >+ { USB_VENDOR_AGFA, USB_PRODUCT_AGFA_SNAPSCANE26 }, >+ { USB_VENDOR_AGFA, USB_PRODUCT_AGFA_SNAPSCANE40 }, >+ { USB_VENDOR_AGFA, USB_PRODUCT_AGFA_SNAPSCANE50 }, >+ { USB_VENDOR_AGFA, USB_PRODUCT_AGFA_SNAPSCANE52 }, > > /* Kye */ > { USB_VENDOR_KYE, USB_PRODUCT_KYE_VIVIDPRO }, >@@ -197,6 +204,8 @@ > > int sc_refcnt; > u_char sc_dying; >+ u_int16_t sc_vendor_id; >+ u_int16_t sc_product_id; > }; > > #if defined(__NetBSD__) || defined(__OpenBSD__) >@@ -207,7 +216,7 @@ > d_read_t uscannerread; > d_write_t uscannerwrite; > d_poll_t uscannerpoll; >- >+d_ioctl_t uscannerioctl; > #define USCANNER_CDEV_MAJOR 156 > > Static struct cdevsw uscanner_cdevsw = { >@@ -215,7 +224,7 @@ > /* close */ uscannerclose, > /* read */ uscannerread, > /* write */ uscannerwrite, >- /* ioctl */ noioctl, >+ /* ioctl */ uscannerioctl, > /* poll */ uscannerpoll, > /* mmap */ nommap, > /* strategy */ nostrategy, >@@ -267,6 +276,8 @@ > printf("%s: %s\n", USBDEVNAME(sc->sc_dev), devinfo); > > sc->sc_udev = uaa->device; >+ sc->sc_vendor_id = uaa->vendor; >+ sc->sc_product_id = uaa->product; > > err = usbd_set_config_no(uaa->device, 1, 1); /* XXX */ > if (err) { >@@ -338,9 +349,10 @@ > > USB_GET_SC_OPEN(uscanner, unit, sc); > >- DPRINTFN(5, ("uscanneropen: flag=%d, mode=%d, unit=%d\n", >+ DPRINTFN(5, ("uscanneropen: flag=%d, mode=%d, unit=%d\n", > flag, mode, unit)); > >+ printf( "uscanneropen()\n" ); > if (sc->sc_dying) > return (ENXIO); > >@@ -664,6 +676,28 @@ > return (revents); > } > >+int >+uscannerioctl( dev_t dev, u_long cmd, caddr_t addr, int flag, struct thread* td ) >+{ >+ struct uscanner_softc* sc; >+ >+ USB_GET_SC( uscanner, USCANNERUNIT( dev ), sc ); >+ >+ if( sc->sc_dying ) >+ return( EIO ); >+ >+ switch( cmd ) { >+ case USB_GET_DEVICE_ID: >+ *(u_int32_t*)addr = ( sc->sc_vendor_id << 16 ) | sc->sc_product_id; >+ break; >+ default: >+ return EINVAL; >+ } >+ return 0; >+} >+ > #if defined(__FreeBSD__) > DRIVER_MODULE(uscanner, uhub, uscanner_driver, uscanner_devclass, usbd_driver_load, 0); > #endif >+ >+
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 32652
: 18105