Hello, I need to port my driver from AIX 4.3 to 5.2
When working in AIX 5.2 with 32 bit I encountered no problems.
However, wheh moving to 64 bit, I needed to use new shared memory
interfaces as the old ones (as_att,as_get,as_put,as_det)
aren't there anymore, therefore I moved to as_att64 and friends.
I encountered a problem using as_att64.
Note that I share kernel memory that I preallocate(not I/O space) with
In the 32 bit mode, I would give as_att as an offset the kernel
virtual address
of the segment I want to map. The user-mode app read/write the
address with no problem.
In the 64 bit mode, I tried giving the 64 bit kernel address as an
but the user-mode app failed to read/write the resulting address and
received a SIGSEGV signal.
Note that the resulting address is not NULL but looks like
which looks fine as it belongs to the shared memory place in the
address space.
It appears that the address is invalid because:
1.as_att64 didn't give the correct user-mode address.
2.There are some kind of protection attribute that generate the

Further info:
In 32 bit, I use some black magic on the vmhandle_t received from
as_geth in order to give it read/write access. It seems that doing a
binary "and" with 0x9fffffff does the job.
In 64 bit I didn't do it as I am not certain what is the correct

Can someone please help, I am sure I am missing something very little,
very annoying.