Robert,
Thanks for the feedback. I was primarily responding to some of the
inconsistencies
between docs/headers/my understanding but you brought up an interesting
point:
(1) In the beginning (6 years ago) we did our own messages using the
standard
ushort/ushort ad the beginning of a message and “encapsulating” the
transport
so it was transparent…
(2) Then came the revisions 1,2,3 of the resource manager framework with a
push
to the “final” version since it was close to where stuff was going in the
future
and was “similer” to what Nto was going to have…
Now, from the application side part (2) is the most compatible… from the
resource
manager side part (1) is easier to port because while the 3rd revision was
close
there are radical changes.
In about a month I’m hoping I will have some time to move one of my T1
drivers
from QNX4 to Nto so I will be back and I will have more grey hair when I
get done 
Jay
Robert Krten <nospam2@parse.com> wrote in article
<9krdut$k26$1@inn.qnx.com>…
Jay Hogg (> Jay.Hogg@t-netix.com.r-e-m-o-v-e> ) wrote:
: Ok guys,
: This info was a wakeup call for me since I have stuff that does massive
: data transfers to/from DSP’s and the mx stuff and large buffers are
: used extensively in some of my stuff.
: So:
: 1) Where is this 2^14 limit defined since I can’t seem to find it?
There
: is nothing in the iomsg.h or devctl.h headers - all sizes are _Uint32t.
: It states that the upper 16 bits -2 in the dcmd are a hint but that
: nbytes is the actual length. What you pass the the macros must
: not exceed 2^14 but like I said that is a hint and not the actual
length.
: 2) devctl.h has a devctlv() function that uses iovec structures for
: scatter/gather operations… ???
: Am I missing something?
Hi Jay,
why don’t you construct your own messages using _IO_MSG? You can then
put an os-independent wrapper function around your use of _IO_MSG if you
need portability, and then you can transfer whatever lengths you want in
whatever MX (IOV) organizations you want…
Cheers,
-RK
: Jay
: David Gibbs wrote in message <9kpkdj$nnf$> 1@nntp.qnx.com> >…
: >Josh Hamacher <> hamacher@faac.com> > wrote:
:
: >> 1. Use devctl() to replace qnx_ioctl() and qnx_ioctlmx().
: >> 2. The maximum amount of data that can be translated using devctl()
is
: >> 2^14, or 16 Kbytes.
:
: >Yup.
:
: >> 3. All of the examples I’ve found only transmit contigous blocks of
: >> memory using devctl(); I haven’t seen any examples of duplicating
the
: >> functionality of qnx_ioctlmx(). For that matter, I can’t visualize
how
: >> it would work, and I suspect it might not be possible.
:
: >I don’t think it exists.
:
: >> So my questions boil down to these:
:
: >> 1. Is it possible to duplicate the gather-scatter capabilities of a
: >> qnx_ioctlmx() using devctl()?
:
: >Not that I know of.
:
: >> 2. And, if not, would it be easiest if I would, as part of the
port,
: >> make the new resource manager handle custom messages and eliminate
: >> devctl() entirely?
:
: >Probably easier – you could look at using message_attach() or IO_MSG
: >type messages for what you previously sent with devctl(). The
advantage
: >of IO_MSG type messages over message_attach() is that you have the OCB
: >information available in your callback – so it makes more sense for
things
: >that will also be doing fd (read/write etc) type work, while
: message_attach()
: >makes more sense when all of the communication will be, effectively,
: >non-standard.
:
: >-David
: >–
: >QNX Training Services
: >> dagibbs@qnx.com
\
Robert Krten, PARSE Software Devices; email my initials at parse dot com
Consulting, Systems Architecture / Design, Drivers, Training, QNX 4 &
Neutrino
Check out our new QNX 4 and Neutrino (QRTP) books at
http://www.parse.com/
Wanted PDP-8/9/10/11/12 Systems/documentation/spare parts! Will trade
books!