What is the difference between volatile and __volatile__ in C code compiled with gcc?
I was looking in the Linux source code and I noticed that some places use __asm__ __volatile__ others use asm volatile and others use __asm__ volatile.
I have not seen __volatile__ used without __asm__, while I have seen volatile used in a variety of other places.
Is there any difference between what __volatile__ and volatile do? If so what is it? Or if not is there a reason that __volatile__ is used sometimes?