[Nut-upsdev] [nut-commits] svn commit r1596 - in trunk: drivers man tools
Arjen de Korte
nut+devel at de-korte.org
Fri Dec 5 08:39:03 UTC 2008
Citeren Charles Lepple <clepple at gmail.com>:
>> Log:
>> Added new richcomm_usb driver based on the lakeview_usb driver
>> (using libusb).
>
> Sorry if I wasn't clear - I was advocating *renaming* the lakeview_usb
> driver to richcomm_usb.
You were very clear. The reason for adding the richcomm_usb driver
instead of replacing/renaming the existing lakeview_usb driver, is
that the latter seems to be tested at some point in time and the first
is not (yet).
> Is there another reason to keep both in the tree?
Yes. Although I'm fairly confident that the richcomm_usb driver will
work, I would like to see it tested before dropping the lakeview_usb
driver.
The reason for rewriting the lakeview_usb driver, is that it is
duplicating lots of stuff we already have in libusb.c and also
contains some lines that make me wonder what is meant:
55 MESSAGE_VALUE, INDEX_VALUE, query, sizeof(query), 1000);
Here query is an argument to the call of this function of type
(unsigned char *). On a 32-bit system this will boil down to 4, but on
a 64-bit system most likely 8. This only works correctly if query is
an array, which is not the case here.
62 ret = usb_interrupt_read(upsdev, REPLY_REQUESTTYPE, reply,
sizeof(REPLY_PACKETSIZE), 1000);
Again wrong use of sizeof(). I don't know what the preprocessor will
make out of 'sizeof(6)', but it most likely is not what was intended.
66 usb_comm_fail("Receive error (Request command): COMMAND: %x\n", query);
This is a non-portable construction. The (implicit) typecasting from
(unsigned char *) to (unsigned int) is never pretty anyway.
> I'm pretty sure that
> this device with the Lakeview Research VID is actually made by
> Richcomm, as the earlier links pointed out.
Indeed.
Best regards, Arjen
--
Please keep list traffic on the list
More information about the Nut-upsdev
mailing list