18226c540SAlexander Gordeev #ifndef _ASM_X86_BARRIER_H_ 28226c540SAlexander Gordeev #define _ASM_X86_BARRIER_H_ 38226c540SAlexander Gordeev /* 48226c540SAlexander Gordeev * Copyright (C) 2016, Red Hat Inc, Alexander Gordeev <agordeev@redhat.com> 58226c540SAlexander Gordeev * 68226c540SAlexander Gordeev * This work is licensed under the terms of the GNU LGPL, version 2. 78226c540SAlexander Gordeev */ 88226c540SAlexander Gordeev 9*53776986SRoman Kagan #include <processor.h> 10*53776986SRoman Kagan 118226c540SAlexander Gordeev #define mb() asm volatile("mfence":::"memory") 128226c540SAlexander Gordeev #define rmb() asm volatile("lfence":::"memory") 138226c540SAlexander Gordeev #define wmb() asm volatile("sfence":::"memory") 148226c540SAlexander Gordeev 15*53776986SRoman Kagan #define smp_mb() mb() 16*53776986SRoman Kagan #define smp_rmb() barrier() 17*53776986SRoman Kagan #define smp_wmb() barrier() 18*53776986SRoman Kagan 198226c540SAlexander Gordeev #endif 20