kopia lustrzana https://gitlab.com/sane-project/website
732 wiersze
24 KiB
HTML
732 wiersze
24 KiB
HTML
<!-- 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 <james@cs.york.ac.uk>] " "^From:" nil nil "11" nil nil nil nil nil]<br>
|
||
nil)<br>
|
||
Return-Path: <<a href="mailto:owner-sane-devel@mostang.com">owner-sane-devel@mostang.com</a>><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: <199811112201.OAA21359@panda.mostang.com><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 <james@cs.york.ac.uk>] <br>
|
||
Date: Wed, 11 Nov 1998 14:01:50 -0800<br>
|
||
<p>
|
||
<i>>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 <sane-devel@mostang.com>; Wed, 11 Nov 1998 14:01:47 -0800<br>
|
||
Message-ID: <<a href="mailto:swordfish.910821656@cs.york.ac.uk">swordfish.910821656@cs.york.ac.uk</a>><br>
|
||
Date: Wed, 11 Nov 1998 21:59:47 +0000<br>
|
||
From: James Carter <<a href="mailto:james@cs.york.ac.uk">james@cs.york.ac.uk</a>><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"><199811100536.VAA01423@panda.mostang.com></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>> BTW: I really would prefer if someone could integrate the hporig stuff</i><br>
|
||
<i>> into hp. I don't want to have to distribute two different HP backends</i><br>
|
||
<i>> 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 <URL:<a href="http://www.cs.york.ac.uk/~james/">http://www.cs.york.ac.uk/~james/</a>>
|
||
<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 <stdlib.h>
|
||
#include <string.h>
|
||
#include <assert.h>
|
||
+ #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 < 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 << 5,
|
||
HP_COMPAT_5P = 1 << 6,
|
||
HP_COMPAT_PS = 1 << 7 /* Hp PhotoSmart Photo Scanner */
|
||
+ /*HP_COMPAT_PLUS = 1 << 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 <<a href="mailto:wingel@ctrl-c.liu.se">wingel@ctrl-c.liu.se</a>>
|
||
+ Copyright (C) 1998 James Carter <<a href="mailto:james@cs.york.ac.uk">james@cs.york.ac.uk</a>>
|
||
+ 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 <sane/config.h>
|
||
+ #include <lalloca.h> /* Must be first */
|
||
+
|
||
+ #ifdef HAVE_UNISTD_H
|
||
+ # include <unistd.h>
|
||
+ #endif
|
||
+ #include <ctype.h>
|
||
+ #include <string.h>
|
||
+ #include <ctype.h>
|
||
+ #include <errno.h>
|
||
+ #include <fcntl.h>
|
||
+ #include <assert.h>
|
||
+ #include <signal.h>
|
||
+ #include <unistd.h>
|
||
+ #include <sane/sanei_scsi.h>
|
||
+
|
||
+ #include "hp.h"
|
||
+
|
||
+ #include <sane/sanei_backend.h>
|
||
+
|
||
+ #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 < 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 < 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 < 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 && *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 <<a href="mailto:james@cs.york.ac.uk">james@cs.york.ac.uk</a>>
|
||
+ 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->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, &new->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->fd, inq_cmd, 6, new->inq_data, &inq_len);
|
||
if (FAILED(status))
|
||
{
|
||
! DBG(1, "scsi_inquire: inquiry failed: %s\n", sane_strstatus(status));
|
||
! sanei_scsi_close(new->fd);
|
||
sanei_hp_free(new);
|
||
! return status;
|
||
}
|
||
|
||
! DBG(3, "scsi_new: sending TEST_UNIT_READY\n");
|
||
! status = sanei_scsi_cmd(new->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->fd);
|
||
! sanei_hp_free(new);
|
||
}
|
||
|
||
new->bufp = new->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, &new->fd);
|
||
! new->hporig = SANE_TRUE;
|
||
! }
|
||
! else
|
||
! {
|
||
! status = sanei_scsi_open(devname, &new->fd, 0, 0);
|
||
! new->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->hporig)
|
||
{
|
||
! DBG(3, "scsi_inquire: sending INQUIRE\n");
|
||
! status = sanei_scsi_cmd(new->fd, inq_cmd, 6, new->inq_data, &inq_len);
|
||
! if (FAILED(status))
|
||
! {
|
||
! DBG(1, "scsi_inquire: inquiry failed: %s\n", sane_strstatus(status));
|
||
! sanei_scsi_close(new->fd);
|
||
! sanei_hp_free(new);
|
||
! return status;
|
||
! }
|
||
!
|
||
! DBG(3, "scsi_new: sending TEST_UNIT_READY\n");
|
||
! status = sanei_scsi_cmd(new->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->fd);
|
||
! sanei_hp_free(new);
|
||
! }
|
||
}
|
||
|
||
new->bufp = new->buf + HP_SCSI_CMD_LEN;
|
||
***************
|
||
*** 147,153 ****
|
||
{
|
||
assert(this->fd >= 0);
|
||
DBG(3, "scsi_close: closing fd %d\n", this->fd);
|
||
! sanei_scsi_close(this->fd);
|
||
if ( this->devname ) sanei_hp_free (this->devname);
|
||
sanei_hp_free(this);
|
||
}
|
||
--- 170,176 ----
|
||
{
|
||
assert(this->fd >= 0);
|
||
DBG(3, "scsi_close: closing fd %d\n", this->fd);
|
||
! this->hporig ? sanei_hp_orig_close(this->fd) : sanei_scsi_close(this->fd);
|
||
if ( this->devname ) sanei_hp_free (this->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->fd, this->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->hporig)
|
||
! {
|
||
! return sanei_hp_orig_cmd (this->fd, data, len, 0, 0);
|
||
! }
|
||
! else
|
||
! {
|
||
! return sanei_scsi_cmd (this->fd, this->buf, HP_SCSI_CMD_LEN + len, 0, 0);
|
||
! }
|
||
}
|
||
|
||
static inline size_t
|
||
***************
|
||
*** 309,316 ****
|
||
read_cmd[3] = *len >> 8;
|
||
read_cmd[4] = *len;
|
||
|
||
! RETURN_IF_FAIL( sanei_scsi_cmd (this->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 >> 8;
|
||
read_cmd[4] = *len;
|
||
|
||
! if (this->hporig)
|
||
! {
|
||
! RETURN_IF_FAIL( sanei_hp_orig_cmd (this->fd, read_cmd,
|
||
! sizeof(read_cmd), dest, len) );
|
||
! }
|
||
! else
|
||
! {
|
||
! RETURN_IF_FAIL( sanei_scsi_cmd (this->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->len);
|
||
|
||
! status = sanei_scsi_req_enter(this->fd, req->cmd, 6,
|
||
! req->data, &req->len, &req->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->len);
|
||
|
||
! if (!this->hporig)
|
||
! {
|
||
! status = sanei_scsi_req_enter(this->fd, req->cmd, 6,
|
||
! req->data, &req->len, &req->id);
|
||
! }
|
||
! else
|
||
! {
|
||
! status = sanei_hp_orig_cmd(this->fd, 0, 0, req->data, &req->len);
|
||
! }
|
||
if (status != SANE_STATUS_GOOD)
|
||
{
|
||
DBG(1, "do_read: Error from scsi_req_enter: %s\n",
|
||
***************
|
||
*** 437,452 ****
|
||
assert(reqs_completed < reqs_issued);
|
||
req = buf + (reqs_completed++ % 2);
|
||
|
||
! DBG(3, "do_read: waiting for data\n");
|
||
! status = sanei_scsi_req_wait(req->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 < reqs_issued);
|
||
req = buf + (reqs_completed++ % 2);
|
||
|
||
! if (!this->hporig)
|
||
! {
|
||
! DBG(3, "do_read: waiting for data\n");
|
||
! status = sanei_scsi_req_wait(req->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>
|