I see, The shmem.c implementation I am using returns the OS/2 memory ID which also happens to be the base address of the allocated memory.
Bug in shmem.c code then Thanks Lorne In <[EMAIL PROTECTED]>, on 12/31/04 at 03:53 PM, Tom Lane <[EMAIL PROTECTED]> said: >[EMAIL PROTECTED] writes: >> I am using the sysv_shmem.c shared memory allocation api for os/2 and I >> ran into a problem when OS/2 allocates shared memory over the 2 gigabyte >> address boundary. >> The existing sysv_shmem.c tests for the return address of the segment as >> less than 0 and determines that a negative indicates an error. >shmget returns an ID, not an address. I quote from the Single Unix Spec: > Upon successful completion, shmget() returns a non-negative integer, > ^^^^^^^^^^^^ > namely a shared memory identifier; otherwise, it returns -1 and errno > will be set to indicate the error. >While your change might be harmless, it should not be necessary, and it >certainly shouldn't have anything to do with 2gig address boundaries. > regards, tom lane -- ----------------------------------------------------------- [EMAIL PROTECTED] ----------------------------------------------------------- ---------------------------(end of broadcast)--------------------------- TIP 4: Don't 'kill -9' the postmaster