在QNX下如何改写带有outportb和inportb()的程序?

原来在DOS下有一段代码,含有outportb和inportb(),在QNX下如何改写呢?我试了用mmap_device_io(),可是不行,比如说向地址0x4011写一个整型数,该如何操作呢?请xtang回答一下,谢谢!

试过out8,out16,out32或in8等api吗?可以这样做:
ThreadCtl( _NO_TCTL_IO,0 );//取得权限
mmap_device_io ( 0x8, 0x378 ); //map地址
out8( 0x378, 0x55 );//读写

我就是用out8和in8试的,你的方法是否有点问题呢?HELP上说应该是这样吧:
ThreadCtl( _NO_TCTL_IO,0 );//取得权限
int ptr=mmap_device_io ( 0x8, 0x378 ); //map地址
out8( ptr, 0x55 );//读写
可是还是不行呀!

你先slay devc-par1试试。我用虚拟机的并口有问题。就用串口(文件作为虚拟机的串口),用如下代码,可以成功out到串口文件里。
#include <stdio.h>
#include <unistd.h>
#include <stdint.h>
#include <hw/inout.h>
#include <sys/neutrino.h>
#include <sys/mman.h>

#define ADDRESS 0x3F8
#define MSG 0xF0

main函数的内容如下,这个论坛有问题,无法发代码

int ret;
uintptr_t dHandle;
int i;

ret = ThreadCtl( _NTO_TCTL_IO, 0 );

dHandle = mmap_device_io( 1, ADDRESS );
for ( i = 0; i < 30; i++ )
{
out8( dHandle, MSG );
printf( "Out :%d
",MSG );
sleep( 1 );
}

搞定了,谢了。