Lines Matching refs:data

39 static void jent_testing_reset(struct jent_testing *data)  in jent_testing_reset()  argument
43 spin_lock_irqsave(&data->lock, flags); in jent_testing_reset()
44 data->rb_reader = 0; in jent_testing_reset()
45 atomic_set(&data->rb_writer, 0); in jent_testing_reset()
46 spin_unlock_irqrestore(&data->lock, flags); in jent_testing_reset()
49 static void jent_testing_data_init(struct jent_testing *data, u32 boot) in jent_testing_data_init() argument
59 jent_testing_reset(data); in jent_testing_data_init()
60 atomic_set(&data->jent_testing_enabled, 1); in jent_testing_data_init()
64 static void jent_testing_fini(struct jent_testing *data, u32 boot) in jent_testing_fini() argument
70 atomic_set(&data->jent_testing_enabled, 0); in jent_testing_fini()
71 jent_testing_reset(data); in jent_testing_fini()
75 static bool jent_testing_store(struct jent_testing *data, u64 value, in jent_testing_store() argument
80 if (!atomic_read(&data->jent_testing_enabled) && (*boot != 1)) in jent_testing_store()
83 spin_lock_irqsave(&data->lock, flags); in jent_testing_store()
90 if (((u32)atomic_read(&data->rb_writer)) > in jent_testing_store()
94 spin_unlock_irqrestore(&data->lock, flags); in jent_testing_store()
98 if (atomic_read(&data->rb_writer) == 1) in jent_testing_store()
102 data->jent_testing_rb[((u32)atomic_read(&data->rb_writer)) & in jent_testing_store()
104 atomic_inc(&data->rb_writer); in jent_testing_store()
106 spin_unlock_irqrestore(&data->lock, flags); in jent_testing_store()
108 if (wq_has_sleeper(&data->read_wait)) in jent_testing_store()
109 wake_up_interruptible(&data->read_wait); in jent_testing_store()
114 static bool jent_testing_have_data(struct jent_testing *data) in jent_testing_have_data() argument
116 return ((((u32)atomic_read(&data->rb_writer)) & in jent_testing_have_data()
118 (data->rb_reader & JENT_TEST_RINGBUFFER_MASK)); in jent_testing_have_data()
121 static int jent_testing_reader(struct jent_testing *data, u32 *boot, in jent_testing_reader() argument
127 jent_testing_data_init(data, *boot); in jent_testing_reader()
130 u32 writer = (u32)atomic_read(&data->rb_writer); in jent_testing_reader()
132 spin_lock_irqsave(&data->lock, flags); in jent_testing_reader()
135 if (!writer || (writer == data->rb_reader)) { in jent_testing_reader()
137 spin_unlock_irqrestore(&data->lock, flags); in jent_testing_reader()
148 wait_event_interruptible(data->read_wait, in jent_testing_reader()
149 jent_testing_have_data(data)); in jent_testing_reader()
160 spin_unlock_irqrestore(&data->lock, flags); in jent_testing_reader()
164 memcpy(outbuf, &data->jent_testing_rb[data->rb_reader], in jent_testing_reader()
166 data->rb_reader++; in jent_testing_reader()
168 spin_unlock_irqrestore(&data->lock, flags); in jent_testing_reader()
176 jent_testing_fini(data, *boot); in jent_testing_reader()