Lines Matching full:time
38 void pt_time_init(struct pt_time *time) in pt_time_init() argument
40 if (!time) in pt_time_init()
43 memset(time, 0, sizeof(*time)); in pt_time_init()
47 uint32_t *lost_cyc, const struct pt_time *time) in pt_time_query_tsc() argument
49 if (!tsc || !time) in pt_time_query_tsc()
52 *tsc = time->tsc; in pt_time_query_tsc()
55 *lost_mtc = time->lost_mtc; in pt_time_query_tsc()
57 *lost_cyc = time->lost_cyc; in pt_time_query_tsc()
59 if (!time->have_tsc) in pt_time_query_tsc()
65 int pt_time_query_cbr(uint32_t *cbr, const struct pt_time *time) in pt_time_query_cbr() argument
67 if (!cbr || !time) in pt_time_query_cbr()
70 if (!time->have_cbr) in pt_time_query_cbr()
73 *cbr = time->cbr; in pt_time_query_cbr()
130 int pt_time_update_tsc(struct pt_time *time, in pt_time_update_tsc() argument
136 if (!time || !packet) in pt_time_update_tsc()
139 time->have_tsc = 1; in pt_time_update_tsc()
140 time->have_tma = 0; in pt_time_update_tsc()
141 time->have_mtc = 0; in pt_time_update_tsc()
142 time->tsc = time->base = packet->tsc; in pt_time_update_tsc()
143 time->ctc = 0; in pt_time_update_tsc()
144 time->fc = 0ull; in pt_time_update_tsc()
146 /* We got the full time; we recover from previous losses. */ in pt_time_update_tsc()
147 time->lost_mtc = 0; in pt_time_update_tsc()
148 time->lost_cyc = 0; in pt_time_update_tsc()
153 int pt_time_update_cbr(struct pt_time *time, in pt_time_update_cbr() argument
161 if (!time || !packet) in pt_time_update_cbr()
168 time->have_cbr = 1; in pt_time_update_cbr()
169 time->cbr = cbr; in pt_time_update_cbr()
174 int pt_time_update_tma(struct pt_time *time, in pt_time_update_tma() argument
181 if (!time || !packet || !config) in pt_time_update_tma()
185 if (!time->have_tsc) in pt_time_update_tma()
189 if (time->have_tma) in pt_time_update_tma()
193 if (time->have_mtc) in pt_time_update_tma()
207 time->have_tma = 1; in pt_time_update_tma()
208 time->base -= fc; in pt_time_update_tma()
209 time->fc += fc; in pt_time_update_tma()
226 time->have_mtc = 1; in pt_time_update_tma()
229 time->ctc = time->ctc_cyc = ctc & ctc_mask; in pt_time_update_tma()
234 int pt_time_update_mtc(struct pt_time *time, in pt_time_update_mtc() argument
243 if (!time || !packet || !config) in pt_time_update_mtc()
246 have_tsc = time->have_tsc; in pt_time_update_mtc()
247 have_tma = time->have_tma; in pt_time_update_mtc()
248 have_mtc = time->have_mtc; in pt_time_update_mtc()
252 * Later MTCs will ensure that no time is lost - provided TMA provides in pt_time_update_mtc()
259 base = time->base; in pt_time_update_mtc()
260 last_ctc = time->ctc; in pt_time_update_mtc()
266 if (time->fc || time->lost_cyc || !have_mtc) in pt_time_update_mtc()
267 time->ctc_cyc = ctc; in pt_time_update_mtc()
270 time->have_mtc = 1; in pt_time_update_mtc()
271 time->fc = 0ull; in pt_time_update_mtc()
272 time->ctc = ctc; in pt_time_update_mtc()
275 time->lost_cyc = 0; in pt_time_update_mtc()
327 time->lost_mtc += 1; in pt_time_update_mtc()
336 time->tsc = time->base = base; in pt_time_update_mtc()
359 static int pt_time_adjust_cyc(uint64_t *cyc, const struct pt_time *time, in pt_time_adjust_cyc() argument
366 if (!time || !config || !fcr) in pt_time_adjust_cyc()
369 last_ctc = time->ctc_cyc; in pt_time_adjust_cyc()
370 ctc = time->ctc; in pt_time_adjust_cyc()
408 int pt_time_update_cyc(struct pt_time *time, in pt_time_update_cyc() argument
414 if (!time || !packet || !config) in pt_time_update_cyc()
418 time->lost_cyc += 1; in pt_time_update_cyc()
423 fc = time->fc; in pt_time_update_cyc()
427 errcode = pt_time_adjust_cyc(&cyc, time, config, fcr); in pt_time_update_cyc()
434 time->fc = fc; in pt_time_update_cyc()
435 time->tsc = time->base + fc; in pt_time_update_cyc()
508 /* A TSC outside of PSB+ may indicate loss of time. We do not use it in pt_tcal_update_tsc()