#define NR_READERS 2 #define NR_WRITERS 1 #define NR_PROCS 3 #if (NR_READERS == 1) #define read_free_race (read_generation[0] == last_free_gen) #define read_free (free_done && data_access[0]) #elif (NR_READERS == 2) #define read_free_race (read_generation[0] == last_free_gen || read_generation[1] == last_free_gen) #define read_free (free_done && (data_access[0] || data_access[1])) #else #error "Too many readers" #endif #define RCU_GP_CTR_BIT (1 << 7) #define RCU_GP_CTR_NEST_MASK (RCU_GP_CTR_BIT - 1) #ifndef READER_NEST_LEVEL #define READER_NEST_LEVEL 2 #endif #define REMOTE_BARRIERS