Hi,
I'm trying to debug a weird problem with Xine - its screwing up its use
of shared memory for regions I haven't sussed yet. One odd consequence is
that it has apparently successfully managed to allocate a 0 byte chunk of
shared memory; shmat is then called with shmaddr=0 and shmflg=0; the
result of shmat is 0
Is this what shmat is supposed to do in this (admittedly odd)
circumstance? The error behaviour is defined in the man page as returning
-1 on error.
(Linux/Alpha 2.4.0-test8)
Back to trying to find out why it decided to allocate a 0 byte chunk....
Dave
--
---------------- Have a happy GNU millennium! ----------------------
/ Dr. David Alan Gilbert | Running GNU/Linux on | Happy \
\ gro.gilbert @ treblig.org | Alpha, x86, ARM and SPARC | In Hex /
\ ___________________________|___ http://www.treblig.org |________/
Dave Gilbert <[email protected]> writes:
> I'm trying to debug a weird problem with Xine - its screwing up its use
> of shared memory for regions I haven't sussed yet. One odd consequence is
> that it has apparently successfully managed to allocate a 0 byte chunk of
> shared memory; shmat is then called with shmaddr=0 and shmflg=0; the
> result of shmat is 0
>
> Is this what shmat is supposed to do in this (admittedly odd)
> circumstance? The error behaviour is defined in the man page as returning
> -1 on error.
Yes, this should be competely legal and wanted. Some programs use
shmget (..,0,..) to test if the segment is there. Apparently Xine does
this while setting the IPC_CREATE flag. This is legal on 2.4 (wasn't
in 2.2) and gives you a 0 byte segment.
shmat will give you then the legal address 0 like mmap would.
Greetings
Christoph