some functions missing in QNX6

I have to port a library from QNX2 to QNX6, and it has some QNX2
functions that are not available on QNX6.

The functions are:

  1. signal_hw_port
  2. set_int_mask
  3. set_int_vec
  4. name_attach
  5. name_locate
  6. name_detach
  7. detach
    :sunglasses: attach_port
  8. create_seg

I think that name_attach, name_locate, and name_detach are the old
ā€œqnx_name_attachā€, ā€œqnx_name_locateā€ and ā€œqnx_name_detachā€ but i would like
if anyone could confirm that.
How can be replaced the functions listed above.
Thanks in advance.
Javier

Javier Barreiro wrote:

I have to port a library from QNX2 to QNX6, and it has some QNX2
functions that are not available on QNX6.

The functions are:

  1. signal_hw_port
  2. set_int_mask
  3. set_int_vec
  4. name_attach
  5. name_locate
  6. name_detach
  7. detach
    :sunglasses: > attach_port
  8. create_seg

I think that name_attach, name_locate, and name_detach are the old
ā€œqnx_name_attachā€, ā€œqnx_name_locateā€ and ā€œqnx_name_detachā€ but i would like
if anyone could confirm that.
How can be replaced the functions listed above.
Thanks in advance.

Whoa ! dude I am in awe. Porting from QNX2 to QNX6 !

Yes. The name attach locate, detach should be fairly portable.

attach_port and signal_hw_port (IIRC) would loosely translate to pulses (I
programmed extensively in QNX2 but my neural net LRU cache algorithm has tossed
probably 95% of that stuff).

set_int_mask and set_int_vec should be a piece of cake
(InterruptMask/InterruptAttach).

create_seg is unnecessary (QNX6 is 32 bit - whoa that feels weird to say - as if
anything isnā€™t 32 bit anymore :slight_smile:.

Hey QSSL how about a mig26ā€¦ (didnā€™t think so :slight_smile:

Rennie

ā€œRennie Allenā€ <rgallen@attbi.com> wrote in message
news:bfiaug$cqs$1@inn.qnx.comā€¦

Javier Barreiro wrote:
I have to port a library from QNX2 to QNX6, and it has some QNX2
functions that are not available on QNX6.

The functions are:

  1. signal_hw_port
  2. set_int_mask
  3. set_int_vec
  4. name_attach
  5. name_locate
  6. name_detach
  7. detach
    :sunglasses: > attach_port
  8. create_seg

I think that name_attach, name_locate, and name_detach are the old
ā€œqnx_name_attachā€, ā€œqnx_name_locateā€ and ā€œqnx_name_detachā€ but i would
like
if anyone could confirm that.
How can be replaced the functions listed above.
Thanks in advance.

Whoa ! dude I am in awe. Porting from QNX2 to QNX6 !

Yes. The name attach locate, detach should be fairly portable.

Done. No problem with that.

attach_port and signal_hw_port (IIRC) would loosely translate to pulses (I
programmed extensively in QNX2 but my neural net LRU cache algorithm has
tossed
probably 95% of that stuff).

I didnā€™t undestard how i can replace that functions, as i am not sure what
they exactly do. What do you mean with translate to pulses?
Do you have the help (syntax and parameters) of these functions for QNX? Or
in other case, where do you think that i could find it.



set_int_mask and set_int_vec should be a piece of cake
(InterruptMask/InterruptAttach).

Ok, thanks, it is working.

create_seg is unnecessary (QNX6 is 32 bit - whoa that feels weird to say -
as if
anything isnā€™t 32 bit anymore > :slight_smile:> .

In this case i think that create_seg is mapping an IO area to a mem area. Is
it right? Could I replace it with mmap?
Again, if you have the help files for this function, please let me know.



Hey QSSL how about a mig26ā€¦ (didnā€™t think so > :slight_smile:

Rennie

THANKS!

Javier Barreiro <jbarreiro@vai-ingdesi.com> wrote:

I replied in the .qnx2 newsgroup, not knowing this had been posted
and replied to here, as well.


ā€œRennie Allenā€ <> rgallen@attbi.com> > wrote in message
news:bfiaug$cqs$> 1@inn.qnx.com> ā€¦
Javier Barreiro wrote:

attach_port and signal_hw_port (IIRC) would loosely translate to pulses (I
programmed extensively in QNX2 but my neural net LRU cache algorithm has
tossed
probably 95% of that stuff).

I didnā€™t undestard how i can replace that functions, as i am not sure what
they exactly do. What do you mean with translate to pulses?
Do you have the help (syntax and parameters) of these functions for QNX? Or
in other case, where do you think that i could find it.

Read the IPC section of the system architecture manual. This one will not
be a simple replacement ā€“ there will be extras.

Depending on the setup, though, it may actually be simpler.

signal(port) will probably become: MsgSendPulse() or MsgDeliverEvent()
depending on direction. (client->server and server->client respectively).

name_attach()/name_open() may do all the setup needed for the client->server
side.

For server->client, you will also likely need ChannelCreate(), ConnectAttach(),
and SIGEV_PULSE_INIT() (docā€™d under _sigevent structure).

create_seg is unnecessary (QNX6 is 32 bit - whoa that feels weird to say -
as if
anything isnā€™t 32 bit anymore > :slight_smile:> .

In this case i think that create_seg is mapping an IO area to a mem area. Is
it right? Could I replace it with mmap?
Again, if you have the help files for this function, please let me know.

mmap_device_memory(), or mmap(), or mmap64().

For dual-ported RAM or equivalent.

Hey QSSL how about a mig26ā€¦ (didnā€™t think so > :slight_smile:

mig24 | mig4nto

:slight_smile:

-David

QNX Training Services
http://www.qnx.com/support/training/
Please followup in this newsgroup if you have further questions.