View | Details | Raw Unified | Return to bug 32653
Collapse All | Expand All

(-)sane-backends/files/patch-backend_snapscan.c (+19 lines)
Line 0 Link Here
1
--- backend/snapscan.c.bak	Sun Dec  9 22:51:01 2001
2
+++ backend/snapscan.c	Sun Dec  9 22:51:01 2001
3
@@ -1016,7 +1016,11 @@
4
 
5
     vendor[0] = model[0] = '\0';
6
 
7
+#if defined( __FreeBSD__ )
8
+    if(strstr (name, "uscanner"))
9
+#else /* __FreeBSD__ */
10
     if((strstr (name, "usb")) || (strstr (name, "USB")))
11
+#endif /* __FreeBSD__ */
12
     {
13
         DBG (DL_VERBOSE, "%s: Detected (kind of) an USB device\n", me);
14
 
15
@@ -3540,3 +3544,4 @@
16
  * Revision 1.1  1997/10/13  02:25:54  charter
17
  * Initial revision
18
  * */
19
+
(-)sane-backends/files/patch-sanei_sanei_usb.c (+42 lines)
Line 0 Link Here
1
--- sanei/sanei_usb.c.bak	Sun Dec  9 22:40:14 2001
2
+++ sanei/sanei_usb.c	Sun Dec  9 22:49:04 2001
3
@@ -112,6 +112,9 @@
4
 			      SANE_Word * product)
5
 {
6
   SANE_Word vendorID, productID;
7
+#if defined( __FreeBSD__ )
8
+  u_int32_t vendorproductID;
9
+#endif /* __FreeBSD__ */
10
 
11
 #if defined (__linux__)
12
 #define IOCTL_SCANNER_VENDOR _IOR('U', 0x20, int)
13
@@ -145,8 +148,24 @@
14
   if (product)
15
     *product = productID;
16
 #else /* not defined (__linux__) */
17
+#if defined( __FreeBSD__ )
18
+#define USB_GET_DEVICE_ID _IOR('U', 140, int)
19
+  /* read the vendo and product IDs via the IOCTLs */
20
+  if( ioctl( fd, USB_GET_DEVICE_ID, &vendorproductID ) == -1 )
21
+  {
22
+    DBG( 3, "sanei_usb_get_vendor_product: ioctl( productid ) of fd %d "
23
+            "failed: %s\n", fd, strerror( errno ) );
24
+  }
25
+  productID = vendorproductID & 0xffff;
26
+  vendorID = ( vendorproductID >> 16 ) & 0xffff;
27
+  if( vendor )
28
+    *vendor = vendorID;
29
+  if( product )
30
+    *product = productID;
31
+#else /* __FreeBSD__ */
32
   vendorID = 0;
33
   productID = 0;
34
+#endif /* __FreeBSD__ */
35
 #endif /* not defined (__linux__) */
36
 
37
   if (!vendorID || !productID)
38
@@ -309,3 +328,4 @@
39
   *size = write_size;
40
   return SANE_STATUS_GOOD;
41
 }
42
+

Return to bug 32653