Loading...
Searching...
No Matches
1#ifndef CLICK_MACHINE_HH
2#define CLICK_MACHINE_HH 1
4# include <click/cxxprotect.h>
6# include <linux/threads.h>
7# include <linux/sched.h>
8# if defined(CONFIG_SMP) && LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 0)
9# define num_possible_cpus() smp_num_cpus
12# include <click/cxxunprotect.h>
22 asm volatile(
"" : : :
"memory");
33#elif HAVE_MULTITHREAD && (defined(__i386__) || defined(__arch_um__) || defined(__x86_64__))
34 asm volatile(
"rep; nop" : : :
"memory");
36 click_compiler_fence();
46#elif HAVE_MULTITHREAD && (defined(__i386__) || defined(__arch_um__) || defined(__x86_64__))
48 asm volatile(
"mfence" : : :
"memory");
49#elif HAVE_MULTITHREAD && HAVE___SYNC_SYNCHRONIZE
52 click_compiler_fence();
59inline void click_read_fence() {
62#elif HAVE_MULTITHREAD && (defined(__i386__) || defined(__arch_um__) || defined(__x86_64__))
63 click_compiler_fence();
72inline void click_write_fence() {
75#elif HAVE_MULTITHREAD && (defined(__i386__) || defined(__arch_um__) || defined(__x86_64__))
76 click_compiler_fence();