On Sat, 2008-11-08 at 01:24 -0500, Chris Frey wrote: > Hi Rick, > > Got some questions for you: :-) > > In reading through the code, it appears that the desktop support is not > finished yet. Is this correct?
Is software ever really finished :) How so? > > It also looks like the interface, from a userspace perspective, is reading > and writing to the desktop0 tty, and using the Blackberry serial protocol. > Is this correct? How much different is that, once the size and socket > are stripped off a USB packet? That is correct. Everything from/to the "RIM Desktop" socket ends up on desktop0 after a little translation. It's pretty much identical. process_input does the socket de-multiplexing, handling all of the socket 0x00 stuff, and handing the other socket stuff off to another handler. So far the only one is desktop, but the SerData would be split out here also. desktop_send_packet translates the usb desktop data to serial format. If it is a 0x40 0x00 0x00, part of the initialization handshake, it adds the device PIN to the packet, since this is how the serial protocol gets the PIN. The usb protocol has it long before this ... usb socket size type sub-system data serial header type sub-system size data checksum footer type is 0x40, 0x60, 0x41 ... sub-system is 0x00 or the value from the command table for database access. 0x00 is the only one the module cares about. desktop_write gathers the data written to bbdesktop and sends it to process_buffer to translate the serial protocol to usb. It pretty much just re-formats and sends it to the usb, with the exception of the password packet, which does not really exist in the serial protocol, since the password is typed on the device keyboard. > > Also, how do you plan on multiplexing multiple programs that have the same > desktop0 tty open, and are using the same desktop socket? I don't see > how to tell which file descriptor is currently reading or writing to > the tty. tty_struct->index appears to be for something else. Only one program would have desktop0 open. That's not really accurate ... Only one program would be reading/writing desktop at a time, other programs/threads may have it open to monitor the modem lines. Other things that are multiplexed on the same endpoint would have a different file ... JavaLoader => bbjavaloader0 Bypass => bbbypass0 SerData => bbserdata0 Each would have a struct similar to struct desktop to handle it. struct modem can probably be expanded to handle serdata, but the others would probably be a little simpler, since they would not have to emulate a tty they could just be char device files. > > And finally, do you want me to cc the xmblackberry list for the patches > I send? No, I get enough mail :) If there are many more I'll just give you commit rights. They will show up on that list when I commit. Now off to your patches ..... > > Thanks! > - Chris ------------------------------------------------------------------------- This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK & win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/ _______________________________________________ Barry-devel mailing list Barry-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/barry-devel