On Thu, 2005-01-06 at 12:47 -0700, Stephen J. Smoogen wrote:
I am working with the libpcap + ringbuffer and trying to get it
moved
from Debian to Red Hat. The Debian/Slackware code depends upon
/usr/include/linux/system.h which has the kernel version of asm.h
linked to if for the platform. For i386 this is asm-i386.h which has
the macro mb(); that the pcap ringbuffer code relies on to make sure
some obscure race conditions are taken of. [I do not know what the
race condition is beyond it talking to the kernel half of the
ringbuffer.]
fix the app. mb() is not an exported feature from the kernel (headers)
to userspace, the way the kernel implements that is *INTERNAL* and may
be privileged to ring 0.
Applications need to do their own barriers, and I suspect glibc provides
functionality for this.