Hi,

just wanted to let you know that I would recommend slight changes for next
release of HPLIP to work properly on ARM / XScale architectured systems like
the Linksys NSLU2:

1. In source "io/hpiod/device.cpp" are several calls to macro htole16 to
make parameters for libusb call BigEndian. It seems that this is not
necessary anymore (at least with libusb 0.1.10a and up). Otherwise the
initialization funcs in device.cpp will not work. Problem was already
discovered somewhere else in the mailing list(s). Certainly the "simple
remove" of macro might break other installations. So it is up to you...

2. Very important is the fact that calls to "#pragma pack(1)" are simply
broken in certain gcc versions for ARM-systems. (at least if you don't
cross-compile". As certain other gcc-version might have similar props with
#pragma pack statements I would recommend to use __attribute__ ((packed))
direct on the various structs. e. g. 
Io/hpiod/mlc.h
typedef struct
{
   unsigned char hsid;   /* host socket id */
   unsigned char psid;   /* peripheral socket id */
   unsigned short length;   /* packet length (includes header) */ 
   unsigned char credit;   /* data packet credit, reserved if command */
   unsigned char status;  /* upper layer status */
} __attribute__ ((packed)) MLCHeader;

There are several other occurrences of #pragma pack(1) statements on various
other places. I changed that on version 1.6.10 and hplip worked than
completely on my Linksys NSLU2 (printing, scanning with SANE etc.)

If #pragma pack(1) statements are ignored by compiler the behaviour during
scanning / printing is undefined because data replied by HP-device cannot be
read by hplip. That leads to DEVICE BUSY and DEVICE OUT OF PAPER states,
depending on communication done....

Using __attribute__ ((packed)) statement is even more ANSI-C-ish ;-)


Hope, that helps (cost me two days debugging ;-),

Lothar Schmitt



-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
HPLIP-Devel mailing list
HPLIP-Devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/hplip-devel

Reply via email to