> -----Original Message----- > From: Brent Cook [mailto:bcook at bpointsys.com] > Sent: Thursday, August 24, 2006 10:18 PM > To: linuxppc-embedded at ozlabs.org > Cc: Li Yang-r58472; Terry Liang > Subject: Re: atomic operations in user space > > On Thursday 24 August 2006 05:39, Li Yang-r58472 wrote: > > > Why do you need atomic operations in user land? IPC will be sufficient > > > to deal with race conditions between processes. > > > > > > Best Regards, > > > Leo > > What about multiple threads within a process updating a counter?
Is there anything preventing semaphore to be used in threads? > > Of course, if you look at these functions in the kernel header, they're just 2 or > 3 inline assembly calls - you could easily rewrite them. Google for 'PowerPC atomic > increment' and grab one of the unencumbered implementations if you need to use it > in a non-GPL program. > > On the other hand, I see no license at the top of my /usr/include/asm-i386/atomic.h > file at all, same for PowerPC - are Linux header files actually GPL or are they > more like the glibc headers, with exceptions made for userspace programs? > > The atomic operations on x86 were accidentally exported early on, so they have to > hang around apparently for compatibility (there are some mailing list threads out > there to this effect.) Currently, you just have to assume in Linux that if you > include something from /usr/include/linux or asm that it will not necessarily be > cross-version or cross-architecture compatible. Not every arch in Linux even has > atomic operations of this nature, which I guess is the main reason why they are > not exported in general. > > - Brent