in reply to Re: 64 bit pointer to string
in thread 64 bit pointer to string

The 'hello world' example works as expected on both openbsd/sparc64 and openbsd/alpha (64-bit systems) where the original example fails.

Replies are listed 'Best First'.
Re: Re: Re: 64 bit pointer to string
by BrowserUk (Patriarch) on Sep 06, 2003 at 22:40 UTC

    Okay. If the hello world test works then you know that the pointer perl is producing is correct. If the ioctl call is rejecting the pointer, then one possibility is that the alignment is wrong.

    Sometimes processors are fussy about the alignment of pointers. Some 32-bit processors require pointers to located on 2 or 4 byte boundaries. Maybe your 64-bit processor requires them to be aligned on a 4 or 8 byte boundary. I think I would try using perls 'N' (or 'V') and 'Q' format specifier to pack the integer that you are currently packing as a 16-bit value and see what if any difference that makes.

    In truth, I think that I've gone about as far as I can go with educated guesswork and your probably going to have to either find some documentation specific to your hardware or ask your question in a forum where you will encounter those familar with it.


    Examine what is said, not who speaks.
    "Efficiency is intelligent laziness." -David Dunham
    "When I'm working on a problem, I never think about beauty. I think only how to solve the problem. But when I have finished, if the solution is not beautiful, I know it is wrong." -Richard Buckminster Fuller
    If I understand your problem, I can solve it! Of course, the same can be said for you.