sane-project-website/old-archive/1998-11/0113.html

732 wiersze
24 KiB
HTML

This file contains invisible Unicode characters!

This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden characters.

<!-- received="Thu Nov 12 09:50:12 1998 PST" -->
<!-- sent="Sun, 08 Nov 1998 18:59:30 +0000" -->
<!-- name="Bob" -->
<!-- email="bob@cherrytech.u-net.com" -->
<!-- subject="Scanner" -->
<!-- id="" -->
<!-- inreplyto="" -->
<title>sane-devel: Scanner</title>
<h1>Scanner</h1>
<b>Bob</b> (<a href="mailto:bob@cherrytech.u-net.com"><i>bob@cherrytech.u-net.com</i></a>)<br>
<i>Sun, 08 Nov 1998 18:59:30 +0000</i>
<p>
<ul>
<li> <b>Messages sorted by:</b> <a href="date.html#113">[ date ]</a><a href="index.html#113">[ thread ]</a><a href="subject.html#113">[ subject ]</a><a href="author.html#113">[ author ]</a>
<!-- next="start" -->
<li> <b>Next message:</b> <a href="0114.html">Petter Adsen: "Re: pre-release available for testing: Is delay Possible?"</a>
<li> <b>Next message:</b> <a href="0114.html">B. Ramsey: "color registration"</a>
<li> <b>Previous message:</b> <a href="0112.html">Henry Miller: "Re: Leo Scan S3 traces avaiable."</a>
<!-- nextthread="start" -->
<li> <b>Next in thread:</b> <a href="0079.html">Andre Couture: "Re: Scanner"</a>
<li> <b>Maybe reply:</b> <a href="0079.html">Andre Couture: "Re: Scanner"</a>
<!-- reply="end" -->
</ul>
<!-- body="start" -->
I have a blackwidow flatbed scanner bought some years ago. Is there<br>
support in Linux for it.<br>
<p>
Thanks.<br>
<p>
From,<br>
Bob<br>
<p>
X-VM-v5-Data: ([nil nil nil nil nil nil nil nil nil]<br>
["20470" "Wed" "11" "November" "1998" "14:01:50" "-0800" "owner-sane-devel@mostang.com" "owner-sane-devel@mostang.com" nil "664" "BOUNCE sane-devel@mostang.com: Non-member submission from [James Carter &lt;james@cs.york.ac.uk&gt;] " "^From:" nil nil "11" nil nil nil nil nil]<br>
nil)<br>
Return-Path: &lt;<a href="mailto:owner-sane-devel@mostang.com">owner-sane-devel@mostang.com</a>&gt;<br>
Received: (from majordom@localhost)<br>
by panda.mostang.com (8.8.7/8.8.7) id OAA21359;<br>
Wed, 11 Nov 1998 14:01:50 -0800<br>
Message-Id: &lt;199811112201.OAA21359@panda.mostang.com&gt;<br>
Status: RO<br>
From: <a href="mailto:owner-sane-devel@mostang.com">owner-sane-devel@mostang.com</a><br>
To: <a href="mailto:owner-sane-devel@mostang.com">owner-sane-devel@mostang.com</a><br>
Subject: BOUNCE <a href="mailto:sane-devel@mostang.com:">sane-devel@mostang.com:</a> Non-member submission from [James Carter &lt;james@cs.york.ac.uk&gt;] <br>
Date: Wed, 11 Nov 1998 14:01:50 -0800<br>
<p>
<i>&gt;From <a href="mailto:sane-devel-owner@mostang.com">sane-devel-owner@mostang.com</a> Wed Nov 11 14:01:49 1998</i><br>
Received: from titan.cs.york.ac.uk (Titan.cs.york.ac.uk [144.32.40.9])<br>
by panda.mostang.com (8.8.7/8.8.7) with SMTP id OAA21356<br>
for &lt;sane-devel@mostang.com&gt;; Wed, 11 Nov 1998 14:01:47 -0800<br>
Message-ID: &lt;<a href="mailto:swordfish.910821656@cs.york.ac.uk">swordfish.910821656@cs.york.ac.uk</a>&gt;<br>
Date: Wed, 11 Nov 1998 21:59:47 +0000<br>
From: James Carter &lt;<a href="mailto:james@cs.york.ac.uk">james@cs.york.ac.uk</a>&gt;<br>
Subject: hporig merge<br>
To: <a href="mailto:sane-devel@mostang.com">sane-devel@mostang.com</a><br>
In-Reply-To: <a href="078.html">&lt;199811100536.VAA01423@panda.mostang.com&gt;</a>
<br>
MIME-Version: 1.0<br>
Content-Type: MULTIPART/mixed; BOUNDARY="-1876940720-2078917053-910821594=:10009"<br>
<p>
---1876940720-2078917053-910821594=:10009<br>
Content-Type: TEXT/plain; CHARSET=US-ASCII<br>
<p>
On 9 Nov, David Mosberger-Tang wrote:<br>
<i>&gt; BTW: I really would prefer if someone could integrate the hporig stuff</i><br>
<i>&gt; into hp. I don't want to have to distribute two different HP backends</i><br>
<i>&gt; if I can help it.</i><br>
<p>
ok. attached is my first attempt at doing this.<br>
<p>
it basically works but there are a few problems:<br>
<p>
1. the hp driver is very scsi oriented. without extensive restructuring,<br>
i cannot find an elegant way of getting the parallel interface stuff<br>
integrated. this effort is a bit hacky as a consequence of this.<br>
<p>
2. i've not tested this on a system with scsi (yet), so i don't know if<br>
i've broken that side of things.<br>
<p>
3. i haven't worked out a way of determining if a device is scsi or<br>
"hporig". i'd like it to try scsi first and if that fails try<br>
hporig stuff but i get segmentation violations when i try scsi on a<br>
non-scsi device (including /dev/null!). at the moment i check that<br>
the device name is "/dev/hpscan" before doing anything non-scsi. i<br>
think it's safe as long as /dev/scanner isn't linked to /dev/hpscan.<br>
<p>
4. i don't know what to probe for in hp_device_probe to find the<br>
scanjet and the scanjet plus. any ideas?<br>
<p>
anyway, i hope it's useful.<br>
<p>
<pre>
--
J.F.Carter &lt;URL:<a href="http://www.cs.york.ac.uk/~james/">http://www.cs.york.ac.uk/~james/</a>&gt;
<p>
<p>
<p>
<p>
---1876940720-2078917053-910821594=:10009
Content-Type: TEXT/plain; CHARSET=US-ASCII
Content-Description: hp.diff
<p>
diff -crN current/sane-pre1.00/backend/Makefile.in sane-pre1.00/backend/Makefile.in
*** current/sane-pre1.00/backend/Makefile.in Fri Oct 30 08:11:05 1998
--- sane-pre1.00/backend/Makefile.in Wed Nov 11 20:40:02 1998
***************
*** 143,149 ****
# additional dependencies
! EXTRA_hp = hp-accessor hp-device hp-handle hp-hpmem hp-option hp-scl
# When preloading dll, we need to add in all preloaded objects:
libsane-dll.la: $(addsuffix .lo,$(DLL_PRELOAD))
--- 143,149 ----
# additional dependencies
! EXTRA_hp = hp-accessor hp-device hp-handle hp-hpmem hp-option hp-scl hp-orig
# When preloading dll, we need to add in all preloaded objects:
libsane-dll.la: $(addsuffix .lo,$(DLL_PRELOAD))
diff -crN current/sane-pre1.00/backend/hp-device.c sane-pre1.00/backend/hp-device.c
*** current/sane-pre1.00/backend/hp-device.c Tue Jul 28 19:25:29 1998
--- sane-pre1.00/backend/hp-device.c Wed Nov 11 17:58:29 1998
***************
*** 47,57 ****
--- 47,59 ----
#include &lt;stdlib.h&gt;
#include &lt;string.h&gt;
#include &lt;assert.h&gt;
+ #include "hp.h"
#include "hp-device.h"
#include "hp-accessor.h"
#include "hp-option.h"
#include "hp-scsi.h"
#include "hp-scl.h"
+ #include "hp-orig.h"
static SANE_Status
hp_device_probe (HpDevice this, HpScsi scsi)
***************
*** 68,74 ****
{ SCL_HP_MODEL_6, "3p", HP_COMPAT_3P },
{ SCL_HP_MODEL_8, "4P", HP_COMPAT_4P },
{ SCL_HP_MODEL_9, "5P", HP_COMPAT_5P },
! { SCL_HP_MODEL_10, "Photo Scanner", HP_COMPAT_PS }
};
int i;
char buf[8];
--- 70,77 ----
{ SCL_HP_MODEL_6, "3p", HP_COMPAT_3P },
{ SCL_HP_MODEL_8, "4P", HP_COMPAT_4P },
{ SCL_HP_MODEL_9, "5P", HP_COMPAT_5P },
! { SCL_HP_MODEL_10, "Photo Scanner", HP_COMPAT_PS },
! /*{ SCL_HP_MODEL_11, "Plus", HP_COMPAT_PLUS }*/
};
int i;
char buf[8];
***************
*** 80,85 ****
--- 83,89 ----
for (i = 0; i &lt; sizeof(probes)/sizeof(probes[0]); i++)
{
+ DBG(1,"probing %s\n",probes[i].model);
len = sizeof(buf);
if (!FAILED( status = sanei_hp_scl_upload(scsi, probes[i].cmd,
buf, sizeof(buf)) ))
***************
*** 113,124 ****
return SANE_STATUS_INVAL; /* Can't open device */
}
! if (sanei_hp_scsi_inq(scsi)[0] != 0x03
! || memcmp(sanei_hp_scsi_vendor(scsi), "HP ", 8) != 0)
{
! DBG(1, "%s: does not seem to be an HP scanner\n", devname);
! sanei_hp_scsi_destroy(scsi);
! return SANE_STATUS_INVAL;
}
/* reset scanner; returns all parameters to defaults */
--- 117,131 ----
return SANE_STATUS_INVAL; /* Can't open device */
}
! if (!sanei_hp_orig(scsi))
{
! if (sanei_hp_scsi_inq(scsi)[0] != 0x03
! || memcmp(sanei_hp_scsi_vendor(scsi), "HP ", 8) != 0)
! {
! DBG(1, "%s: does not seem to be an HP scanner\n", devname);
! sanei_hp_scsi_destroy(scsi);
! return SANE_STATUS_INVAL;
! }
}
/* reset scanner; returns all parameters to defaults */
diff -crN current/sane-pre1.00/backend/hp-device.h sane-pre1.00/backend/hp-device.h
*** current/sane-pre1.00/backend/hp-device.h Wed Oct 28 07:05:54 1998
--- sane-pre1.00/backend/hp-device.h Wed Nov 11 20:53:15 1998
***************
*** 56,61 ****
--- 56,62 ----
HP_COMPAT_4P = 1 &lt;&lt; 5,
HP_COMPAT_5P = 1 &lt;&lt; 6,
HP_COMPAT_PS = 1 &lt;&lt; 7 /* Hp PhotoSmart Photo Scanner */
+ /*HP_COMPAT_PLUS = 1 &lt;&lt; 8*/
};
struct hp_device_s
diff -crN current/sane-pre1.00/backend/hp-orig.c sane-pre1.00/backend/hp-orig.c
*** current/sane-pre1.00/backend/hp-orig.c Thu Jan 1 01:00:00 1970
--- sane-pre1.00/backend/hp-orig.c Wed Nov 11 20:15:55 1998
***************
*** 0 ****
--- 1,155 ----
+ /* sane - Scanner Access Now Easy.
+ Copyright (C) 1997 David Mosberger-Tang
+ Copyright (C) 1998 Christer Weinigel &lt;<a href="mailto:wingel@ctrl-c.liu.se">wingel@ctrl-c.liu.se</a>&gt;
+ Copyright (C) 1998 James Carter &lt;<a href="mailto:james@cs.york.ac.uk">james@cs.york.ac.uk</a>&gt;
+ This file is part of the SANE package.
+
+ This program is free software; you can redistribute it and/or
+ modify it under the terms of the GNU General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+ MA 02111-1307, USA.
+
+ As a special exception, the authors of SANE give permission for
+ additional uses of the libraries contained in this release of SANE.
+
+ The exception is that, if you link a SANE library with other files
+ to produce an executable, this does not by itself cause the
+ resulting executable to be covered by the GNU General Public
+ License. Your use of that executable is in no way restricted on
+ account of linking the SANE library code into it.
+
+ This exception does not, however, invalidate any other reasons why
+ the executable file might be covered by the GNU General Public
+ License.
+
+ If you submit changes to SANE to the maintainers to be included in
+ a subsequent release, you agree by submitting the changes that
+ those changes may be distributed with this exception intact.
+
+ If you write modifications of your own for SANE, it is your choice
+ whether to permit this exception to apply to your modifications.
+ If you do not wish that, delete this exception notice.
+
+ This file is part of a SANE backend for HP Scanners using the
+ HP Scanner Control Language (SCL).
+ */
+
+ #include &lt;sane/config.h&gt;
+ #include &lt;lalloca.h&gt; /* Must be first */
+
+ #ifdef HAVE_UNISTD_H
+ # include &lt;unistd.h&gt;
+ #endif
+ #include &lt;ctype.h&gt;
+ #include &lt;string.h&gt;
+ #include &lt;ctype.h&gt;
+ #include &lt;errno.h&gt;
+ #include &lt;fcntl.h&gt;
+ #include &lt;assert.h&gt;
+ #include &lt;signal.h&gt;
+ #include &lt;unistd.h&gt;
+ #include &lt;sane/sanei_scsi.h&gt;
+
+ #include "hp.h"
+
+ #include &lt;sane/sanei_backend.h&gt;
+
+ #include "hp-option.h"
+ #include "hp-scsi.h"
+ #include "hp-scl.h"
+
+ SANE_Status
+ sanei_hp_orig_open (const char *dev, int *fdp)
+ {
+ int fd;
+
+ fd = open (dev, O_RDWR | O_EXCL);
+ if (fd &lt; 0)
+ {
+ SANE_Status status = SANE_STATUS_INVAL;
+
+ if (errno == EACCES)
+ status = SANE_STATUS_ACCESS_DENIED;
+
+ DBG (1, "sanei_hp_orig_open: open of `%s' failed: %s\n",
+ dev, strerror (errno));
+ return status;
+ }
+ if (fdp)
+ *fdp = fd;
+
+ return SANE_STATUS_GOOD;
+ }
+
+ void
+ sanei_hp_orig_close (int fd)
+ {
+ close(fd);
+ }
+
+ static SANE_Status
+ read_data (int fd, u_char * dest, size_t *len)
+ {
+ size_t n;
+
+ if ((n = read (fd, dest, *len)) == 0)
+ {
+ return SANE_STATUS_EOF;
+ }
+ else
+ {
+ if (n &lt; 0)
+ {
+ return SANE_STATUS_IO_ERROR;
+ }
+ }
+ *len = n;
+ return SANE_STATUS_GOOD;
+ }
+
+ static SANE_Status
+ write_data (int fd, void *data, size_t len)
+ {
+ size_t n;
+
+ if ((n = write (fd, data, len)) == 0)
+ {
+ return SANE_STATUS_EOF;
+ }
+ else
+ {
+ if (n &lt; 0)
+ {
+ return SANE_STATUS_IO_ERROR;
+ }
+ }
+ return SANE_STATUS_GOOD;
+ }
+
+ SANE_Status
+ sanei_hp_orig_cmd (int fd, const void *src, size_t src_size, void *dst,
+ size_t * dst_size)
+ {
+ if (dst_size &amp;&amp; *dst_size)
+ {
+ DBG (1, "sanei_hp_orig_cmd: read\n");
+ return read_data(fd, dst, dst_size);
+ }
+ else
+ {
+ DBG (1, "sanei_hp_orig_cmd: write\n");
+ return write_data(fd, src, src_size);
+ }
+ }
+
+
diff -crN current/sane-pre1.00/backend/hp-orig.h sane-pre1.00/backend/hp-orig.h
*** current/sane-pre1.00/backend/hp-orig.h Thu Jan 1 01:00:00 1970
--- sane-pre1.00/backend/hp-orig.h Wed Nov 11 20:16:21 1998
***************
*** 0 ****
--- 1,55 ----
+ /* sane - Scanner Access Now Easy.
+ Copyright (C) 1997 David Mosberger-Tang
+ Copyright (C) 1998 James Carter &lt;<a href="mailto:james@cs.york.ac.uk">james@cs.york.ac.uk</a>&gt;
+ This file is part of the SANE package.
+
+ This program is free software; you can redistribute it and/or
+ modify it under the terms of the GNU General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+ MA 02111-1307, USA.
+
+ As a special exception, the authors of SANE give permission for
+ additional uses of the libraries contained in this release of SANE.
+
+ The exception is that, if you link a SANE library with other files
+ to produce an executable, this does not by itself cause the
+ resulting executable to be covered by the GNU General Public
+ License. Your use of that executable is in no way restricted on
+ account of linking the SANE library code into it.
+
+ This exception does not, however, invalidate any other reasons why
+ the executable file might be covered by the GNU General Public
+ License.
+
+ If you submit changes to SANE to the maintainers to be included in
+ a subsequent release, you agree by submitting the changes that
+ those changes may be distributed with this exception intact.
+
+ If you write modifications of your own for SANE, it is your choice
+ whether to permit this exception to apply to your modifications.
+ If you do not wish that, delete this exception notice.
+
+ This file is part of a SANE backend for HP Scanners supporting
+ HP Scanner Control Language (SCL).
+ */
+
+ #ifndef HP_ORIG_INCLUDED
+ #define HP_ORIG_INCLUDED
+
+ SANE_Status sanei_hp_orig_open (const char *dev, int *fdp);
+ void sanei_hp_orig_close (int fd);
+ char sanei_hp_orig (HpScsi p);
+ SANE_Status sanei_hp_orig_cmd (int fd, const void *src, size_t src_size,
+ void *dst, size_t * dst_size);
+
+ #endif /* HP_ORIG_INCLUDED */
diff -crN current/sane-pre1.00/backend/hp-scl.c sane-pre1.00/backend/hp-scl.c
*** current/sane-pre1.00/backend/hp-scl.c Thu Oct 29 06:54:13 1998
--- sane-pre1.00/backend/hp-scl.c Wed Nov 11 19:51:07 1998
***************
*** 62,67 ****
--- 62,68 ----
#include "hp-option.h"
#include "hp-scsi.h"
#include "hp-scl.h"
+ #include "hp-orig.h"
#if (defined(__IBMC__) || defined(__IBMCPP__))
#ifndef _AIX
***************
*** 74,80 ****
#define HP_SCSI_BUFSIZ (HP_SCSI_MAX_WRITE + HP_SCSI_CMD_LEN)
-
/*
*
*/
--- 75,80 ----
***************
*** 84,89 ****
--- 84,92 ----
int fd;
char * devname;
+ /* hporig flag */
+ char hporig;
+
/* Output buffering */
hp_byte_t buf[HP_SCSI_BUFSIZ];
hp_byte_t * bufp;
***************
*** 93,98 ****
--- 96,108 ----
};
+ char
+ sanei_hp_orig (HpScsi p)
+ {
+ return p-&gt;hporig;
+ }
+
+
SANE_Status
sanei_hp_scsi_new (HpScsi * newp, const char * devname)
{
***************
*** 105,136 ****
if (!new)
return SANE_STATUS_NO_MEM;
! status = sanei_scsi_open(devname, &amp;new-&gt;fd, 0, 0);
! if (FAILED(status))
{
! DBG(1, "scsi_new: open failed (%s)\n", sane_strstatus(status));
! sanei_hp_free(new);
! return SANE_STATUS_IO_ERROR;
}
-
- DBG(3, "scsi_inquire: sending INQUIRE\n");
- status = sanei_scsi_cmd(new-&gt;fd, inq_cmd, 6, new-&gt;inq_data, &amp;inq_len);
if (FAILED(status))
{
! DBG(1, "scsi_inquire: inquiry failed: %s\n", sane_strstatus(status));
! sanei_scsi_close(new-&gt;fd);
sanei_hp_free(new);
! return status;
}
! DBG(3, "scsi_new: sending TEST_UNIT_READY\n");
! status = sanei_scsi_cmd(new-&gt;fd, tur_cmd, 6, 0, 0);
! if (FAILED(status))
{
! DBG(1, "hp_scsi_open: test unit ready failed (%s)\n",
! sane_strstatus(status));
! sanei_scsi_close(new-&gt;fd);
! sanei_hp_free(new);
}
new-&gt;bufp = new-&gt;buf + HP_SCSI_CMD_LEN;
--- 115,159 ----
if (!new)
return SANE_STATUS_NO_MEM;
! /* there must be a better way - <a href="mailto:james@cs.york.ac.uk">james@cs.york.ac.uk</a> */
! if (!strcmp(devname,"/dev/hpscan"))
{
! status = sanei_hp_orig_open(devname, &amp;new-&gt;fd);
! new-&gt;hporig = SANE_TRUE;
! }
! else
! {
! status = sanei_scsi_open(devname, &amp;new-&gt;fd, 0, 0);
! new-&gt;hporig=SANE_FALSE;
}
if (FAILED(status))
{
! DBG(1, "scsi_new: open failed (%s)\n", sane_strstatus(status));
sanei_hp_free(new);
! return SANE_STATUS_IO_ERROR;
}
! if (!new-&gt;hporig)
{
! DBG(3, "scsi_inquire: sending INQUIRE\n");
! status = sanei_scsi_cmd(new-&gt;fd, inq_cmd, 6, new-&gt;inq_data, &amp;inq_len);
! if (FAILED(status))
! {
! DBG(1, "scsi_inquire: inquiry failed: %s\n", sane_strstatus(status));
! sanei_scsi_close(new-&gt;fd);
! sanei_hp_free(new);
! return status;
! }
!
! DBG(3, "scsi_new: sending TEST_UNIT_READY\n");
! status = sanei_scsi_cmd(new-&gt;fd, tur_cmd, 6, 0, 0);
! if (FAILED(status))
! {
! DBG(1, "hp_scsi_open: test unit ready failed (%s)\n",
! sane_strstatus(status));
! sanei_scsi_close(new-&gt;fd);
! sanei_hp_free(new);
! }
}
new-&gt;bufp = new-&gt;buf + HP_SCSI_CMD_LEN;
***************
*** 147,153 ****
{
assert(this-&gt;fd &gt;= 0);
DBG(3, "scsi_close: closing fd %d\n", this-&gt;fd);
! sanei_scsi_close(this-&gt;fd);
if ( this-&gt;devname ) sanei_hp_free (this-&gt;devname);
sanei_hp_free(this);
}
--- 170,176 ----
{
assert(this-&gt;fd &gt;= 0);
DBG(3, "scsi_close: closing fd %d\n", this-&gt;fd);
! this-&gt;hporig ? sanei_hp_orig_close(this-&gt;fd) : sanei_scsi_close(this-&gt;fd);
if ( this-&gt;devname ) sanei_hp_free (this-&gt;devname);
sanei_hp_free(this);
}
***************
*** 217,223 ****
DBG(10, "scsi_flush: writing %lu bytes:\n", (unsigned long) len);
DBGDUMP(10, data, len);
! return sanei_scsi_cmd (this-&gt;fd, this-&gt;buf, HP_SCSI_CMD_LEN + len, 0, 0);
}
static inline size_t
--- 240,253 ----
DBG(10, "scsi_flush: writing %lu bytes:\n", (unsigned long) len);
DBGDUMP(10, data, len);
! if (this-&gt;hporig)
! {
! return sanei_hp_orig_cmd (this-&gt;fd, data, len, 0, 0);
! }
! else
! {
! return sanei_scsi_cmd (this-&gt;fd, this-&gt;buf, HP_SCSI_CMD_LEN + len, 0, 0);
! }
}
static inline size_t
***************
*** 309,316 ****
read_cmd[3] = *len &gt;&gt; 8;
read_cmd[4] = *len;
! RETURN_IF_FAIL( sanei_scsi_cmd (this-&gt;fd, read_cmd,
! sizeof(read_cmd), dest, len) );
DBG(10, "scsi_read: %lu bytes:\n", (unsigned long) *len);
DBGDUMP(10, dest, *len);
return SANE_STATUS_GOOD;
--- 339,354 ----
read_cmd[3] = *len &gt;&gt; 8;
read_cmd[4] = *len;
! if (this-&gt;hporig)
! {
! RETURN_IF_FAIL( sanei_hp_orig_cmd (this-&gt;fd, read_cmd,
! sizeof(read_cmd), dest, len) );
! }
! else
! {
! RETURN_IF_FAIL( sanei_scsi_cmd (this-&gt;fd, read_cmd,
! sizeof(read_cmd), dest, len) );
! }
DBG(10, "scsi_read: %lu bytes:\n", (unsigned long) *len);
DBGDUMP(10, dest, *len);
return SANE_STATUS_GOOD;
***************
*** 419,426 ****
DBG(3, "do_read: entering request to read %lu bytes\n",
(unsigned long) req-&gt;len);
! status = sanei_scsi_req_enter(this-&gt;fd, req-&gt;cmd, 6,
! req-&gt;data, &amp;req-&gt;len, &amp;req-&gt;id);
if (status != SANE_STATUS_GOOD)
{
DBG(1, "do_read: Error from scsi_req_enter: %s\n",
--- 457,471 ----
DBG(3, "do_read: entering request to read %lu bytes\n",
(unsigned long) req-&gt;len);
! if (!this-&gt;hporig)
! {
! status = sanei_scsi_req_enter(this-&gt;fd, req-&gt;cmd, 6,
! req-&gt;data, &amp;req-&gt;len, &amp;req-&gt;id);
! }
! else
! {
! status = sanei_hp_orig_cmd(this-&gt;fd, 0, 0, req-&gt;data, &amp;req-&gt;len);
! }
if (status != SANE_STATUS_GOOD)
{
DBG(1, "do_read: Error from scsi_req_enter: %s\n",
***************
*** 437,452 ****
assert(reqs_completed &lt; reqs_issued);
req = buf + (reqs_completed++ % 2);
! DBG(3, "do_read: waiting for data\n");
! status = sanei_scsi_req_wait(req-&gt;id);
! if (status != SANE_STATUS_GOOD)
! {
! DBG(1, "do_read: Error from scsi_req_wait: %s\n",
! sane_strstatus(status));
! goto quit;
! }
! if (signal_caught)
! goto quit;
if ( mirror )
{
--- 482,500 ----
assert(reqs_completed &lt; reqs_issued);
req = buf + (reqs_completed++ % 2);
! if (!this-&gt;hporig)
! {
! DBG(3, "do_read: waiting for data\n");
! status = sanei_scsi_req_wait(req-&gt;id);
! if (status != SANE_STATUS_GOOD)
! {
! DBG(1, "do_read: Error from scsi_req_wait: %s\n",
! sane_strstatus(status));
! goto quit;
! }
! if (signal_caught)
! goto quit;
! }
if ( mirror )
{
diff -crN current/sane-pre1.00/backend/hp-scl.h sane-pre1.00/backend/hp-scl.h
*** current/sane-pre1.00/backend/hp-scl.h Wed Oct 28 07:06:39 1998
--- sane-pre1.00/backend/hp-scl.h Wed Nov 11 21:18:21 1998
***************
*** 108,113 ****
--- 108,114 ----
#define SCL_HP_MODEL_8 HP_SCL_PARAMETER(15)
#define SCL_HP_MODEL_9 HP_SCL_PARAMETER(16)
#define SCL_HP_MODEL_10 HP_SCL_PARAMETER(17)
+ /*#define SCL_HP_MODEL_11 what do i put here?*/
#define SCL_CURRENT_ERROR_STACK HP_SCL_PARAMETER(257)
#define SCL_CURRENT_ERROR HP_SCL_PARAMETER(259)
<p>
---1876940720-2078917053-910821594=:10009--
<p>
<p>
<pre>
--
Source code, list archive, and docs: <a href="http://www.mostang.com/sane/">http://www.mostang.com/sane/</a>
To unsubscribe: echo unsubscribe sane-devel | mail <a href="mailto:majordomo@mostang.com">majordomo@mostang.com</a>
</pre>
<!-- body="end" -->
<p>
<ul>
<!-- next="start" -->
<li> <b>Next message:</b> <a href="0114.html">Petter Adsen: "Re: pre-release available for testing: Is delay Possible?"</a>
<li> <b>Next message:</b> <a href="0114.html">B. Ramsey: "color registration"</a>
<li> <b>Previous message:</b> <a href="0112.html">Henry Miller: "Re: Leo Scan S3 traces avaiable."</a>
<!-- nextthread="start" -->
<li> <b>Next in thread:</b> <a href="0079.html">Andre Couture: "Re: Scanner"</a>
<li> <b>Maybe reply:</b> <a href="0079.html">Andre Couture: "Re: Scanner"</a>
<!-- reply="end" -->
</ul>