Lines Matching defs:pde

160 static struct pulse_elem *pulse_queue_get_tail(struct pri_detector *pde)
162 struct list_head *l = &pde->pulses;
168 static bool pulse_queue_dequeue(struct pri_detector *pde)
170 struct pulse_elem *p = pulse_queue_get_tail(pde);
173 pde->count--;
177 return (pde->count > 0);
181 static void pulse_queue_check_window(struct pri_detector *pde)
187 if (pde->count < 2)
190 if (pde->last_ts <= pde->window_size)
193 min_valid_ts = pde->last_ts - pde->window_size;
194 while ((p = pulse_queue_get_tail(pde)) != NULL) {
197 pulse_queue_dequeue(pde);
201 static bool pulse_queue_enqueue(struct pri_detector *pde, u64 ts)
215 list_add(&p->head, &pde->pulses);
216 pde->count++;
217 pde->last_ts = ts;
218 pulse_queue_check_window(pde);
219 if (pde->count >= pde->max_count)
220 pulse_queue_dequeue(pde);
224 static bool pseq_handler_create_sequences(struct pri_detector *pde,
228 list_for_each_entry(p, &pde->pulses, head) {
235 if (delta_ts < pde->rs->pri_min)
239 if (delta_ts > pde->rs->pri_max)
248 ps.pri = GET_PRI_TO_USE(pde->rs->pri_min,
249 pde->rs->pri_max, ts - p->ts);
250 ps.dur = ps.pri * (pde->rs->ppb - 1)
251 + 2 * pde->rs->max_pri_tolerance;
257 list_for_each_entry_continue(p2, &pde->pulses, head) {
264 pde->rs->max_pri_tolerance);
297 list_add(&new_ps->head, &pde->sequences);
304 pseq_handler_add_to_existing_seqs(struct pri_detector *pde, u64 ts)
308 list_for_each_entry_safe(ps, ps2, &pde->sequences, head) {
321 pde->rs->max_pri_tolerance);
336 pseq_handler_check_detection(struct pri_detector *pde)
340 if (list_empty(&pde->sequences))
343 list_for_each_entry(ps, &pde->sequences, head) {
349 if ((ps->count >= pde->rs->ppb_thresh) &&
350 (ps->count * pde->rs->num_pri >= ps->count_falses))
358 static void pri_detector_reset(struct pri_detector *pde, u64 ts)
362 list_for_each_entry_safe(ps, ps0, &pde->sequences, head) {
366 list_for_each_entry_safe(p, p0, &pde->pulses, head) {
370 pde->count = 0;
371 pde->last_ts = ts;