Lines Matching refs:decoder

60 				  struct pt_packet_decoder *decoder)  in pt_qry_find_header_fup()  argument
62 if (!packet || !decoder) in pt_qry_find_header_fup()
68 errcode = pt_pkt_next(decoder, packet, sizeof(*packet)); in pt_qry_find_header_fup()
88 int pt_qry_decoder_init(struct pt_query_decoder *decoder, in pt_qry_decoder_init() argument
93 if (!decoder) in pt_qry_decoder_init()
96 memset(decoder, 0, sizeof(*decoder)); in pt_qry_decoder_init()
98 errcode = pt_config_from_user(&decoder->config, config); in pt_qry_decoder_init()
102 pt_last_ip_init(&decoder->ip); in pt_qry_decoder_init()
103 pt_tnt_cache_init(&decoder->tnt); in pt_qry_decoder_init()
104 pt_time_init(&decoder->time); in pt_qry_decoder_init()
105 pt_time_init(&decoder->last_time); in pt_qry_decoder_init()
106 pt_tcal_init(&decoder->tcal); in pt_qry_decoder_init()
107 pt_evq_init(&decoder->evq); in pt_qry_decoder_init()
114 struct pt_query_decoder *decoder; in pt_qry_alloc_decoder() local
117 decoder = malloc(sizeof(*decoder)); in pt_qry_alloc_decoder()
118 if (!decoder) in pt_qry_alloc_decoder()
121 errcode = pt_qry_decoder_init(decoder, config); in pt_qry_alloc_decoder()
123 free(decoder); in pt_qry_alloc_decoder()
127 return decoder; in pt_qry_alloc_decoder()
130 void pt_qry_decoder_fini(struct pt_query_decoder *decoder) in pt_qry_decoder_fini() argument
132 (void) decoder; in pt_qry_decoder_fini()
137 void pt_qry_free_decoder(struct pt_query_decoder *decoder) in pt_qry_free_decoder() argument
139 pt_qry_decoder_fini(decoder); in pt_qry_free_decoder()
140 free(decoder); in pt_qry_free_decoder()
143 static void pt_qry_reset(struct pt_query_decoder *decoder) in pt_qry_reset() argument
145 if (!decoder) in pt_qry_reset()
148 decoder->enabled = 0; in pt_qry_reset()
149 decoder->consume_packet = 0; in pt_qry_reset()
150 decoder->event = NULL; in pt_qry_reset()
152 pt_last_ip_init(&decoder->ip); in pt_qry_reset()
153 pt_tnt_cache_init(&decoder->tnt); in pt_qry_reset()
154 pt_time_init(&decoder->time); in pt_qry_reset()
155 pt_time_init(&decoder->last_time); in pt_qry_reset()
156 pt_tcal_init(&decoder->tcal); in pt_qry_reset()
157 pt_evq_init(&decoder->evq); in pt_qry_reset()
160 static int pt_qry_will_event(const struct pt_query_decoder *decoder) in pt_qry_will_event() argument
164 if (!decoder) in pt_qry_will_event()
167 dfun = decoder->next; in pt_qry_will_event()
175 return pt_evq_pending(&decoder->evq, evb_psbend); in pt_qry_will_event()
178 return pt_evq_pending(&decoder->evq, evb_tip); in pt_qry_will_event()
181 return pt_evq_pending(&decoder->evq, evb_fup); in pt_qry_will_event()
186 static int pt_qry_will_eos(const struct pt_query_decoder *decoder) in pt_qry_will_eos() argument
191 if (!decoder) in pt_qry_will_eos()
194 dfun = decoder->next; in pt_qry_will_eos()
205 errcode = pt_df_fetch(&dfun, decoder->pos, &decoder->config); in pt_qry_will_eos()
209 static int pt_qry_status_flags(const struct pt_query_decoder *decoder) in pt_qry_status_flags() argument
213 if (!decoder) in pt_qry_status_flags()
230 if (pt_tnt_cache_is_empty(&decoder->tnt)) { in pt_qry_status_flags()
231 if (pt_qry_will_event(decoder)) in pt_qry_status_flags()
234 if (pt_qry_will_eos(decoder)) in pt_qry_status_flags()
241 static int pt_qry_provoke_fetch_error(const struct pt_query_decoder *decoder) in pt_qry_provoke_fetch_error() argument
246 if (!decoder) in pt_qry_provoke_fetch_error()
250 errcode = pt_df_fetch(&dfun, decoder->pos, &decoder->config); in pt_qry_provoke_fetch_error()
258 static int pt_qry_read_ahead(struct pt_query_decoder *decoder) in pt_qry_read_ahead() argument
260 if (!decoder) in pt_qry_read_ahead()
267 errcode = pt_df_fetch(&decoder->next, decoder->pos, in pt_qry_read_ahead()
268 &decoder->config); in pt_qry_read_ahead()
272 dfun = decoder->next; in pt_qry_read_ahead()
286 if (pt_qry_will_event(decoder)) in pt_qry_read_ahead()
290 errcode = dfun->decode(decoder); in pt_qry_read_ahead()
299 decoder->pos = decoder->config.end; in pt_qry_read_ahead()
300 decoder->next = NULL; in pt_qry_read_ahead()
308 static int pt_qry_start(struct pt_query_decoder *decoder, const uint8_t *pos, in pt_qry_start() argument
314 if (!decoder || !pos) in pt_qry_start()
317 pt_qry_reset(decoder); in pt_qry_start()
319 decoder->sync = pos; in pt_qry_start()
320 decoder->pos = pos; in pt_qry_start()
322 errcode = pt_df_fetch(&decoder->next, pos, &decoder->config); in pt_qry_start()
326 dfun = decoder->next; in pt_qry_start()
333 errcode = dfun->decode(decoder); in pt_qry_start()
343 status = pt_last_ip_query(addr, &decoder->ip); in pt_qry_start()
351 errcode = pt_qry_read_ahead(decoder); in pt_qry_start()
356 status = pt_qry_status_flags(decoder); in pt_qry_start()
360 errcode = pt_last_ip_query(addr, &decoder->ip); in pt_qry_start()
561 int pt_qry_sync_forward(struct pt_query_decoder *decoder, uint64_t *ip) in pt_qry_sync_forward() argument
566 if (!decoder) in pt_qry_sync_forward()
569 sync = decoder->sync; in pt_qry_sync_forward()
570 pos = decoder->pos; in pt_qry_sync_forward()
572 pos = decoder->config.begin; in pt_qry_sync_forward()
577 errcode = pt_sync_forward(&sync, pos, &decoder->config); in pt_qry_sync_forward()
581 return pt_qry_start(decoder, sync, ip); in pt_qry_sync_forward()
584 int pt_qry_sync_backward(struct pt_query_decoder *decoder, uint64_t *ip) in pt_qry_sync_backward() argument
589 if (!decoder) in pt_qry_sync_backward()
592 start = decoder->pos; in pt_qry_sync_backward()
594 start = decoder->config.end; in pt_qry_sync_backward()
598 errcode = pt_sync_backward(&sync, sync, &decoder->config); in pt_qry_sync_backward()
602 errcode = pt_qry_start(decoder, sync, ip); in pt_qry_sync_backward()
618 if (decoder->pos != start) in pt_qry_sync_backward()
625 int pt_qry_sync_set(struct pt_query_decoder *decoder, uint64_t *ip, in pt_qry_sync_set() argument
631 if (!decoder) in pt_qry_sync_set()
634 pos = decoder->config.begin + offset; in pt_qry_sync_set()
636 errcode = pt_sync_set(&sync, pos, &decoder->config); in pt_qry_sync_set()
640 return pt_qry_start(decoder, sync, ip); in pt_qry_sync_set()
643 int pt_qry_get_offset(const struct pt_query_decoder *decoder, uint64_t *offset) in pt_qry_get_offset() argument
647 if (!decoder || !offset) in pt_qry_get_offset()
650 begin = decoder->config.begin; in pt_qry_get_offset()
651 pos = decoder->pos; in pt_qry_get_offset()
660 int pt_qry_get_sync_offset(const struct pt_query_decoder *decoder, in pt_qry_get_sync_offset() argument
665 if (!decoder || !offset) in pt_qry_get_sync_offset()
668 begin = decoder->config.begin; in pt_qry_get_sync_offset()
669 sync = decoder->sync; in pt_qry_get_sync_offset()
679 pt_qry_get_config(const struct pt_query_decoder *decoder) in pt_qry_get_config() argument
681 if (!decoder) in pt_qry_get_config()
684 return &decoder->config; in pt_qry_get_config()
687 static int pt_qry_cache_tnt(struct pt_query_decoder *decoder) in pt_qry_cache_tnt() argument
691 if (!decoder) in pt_qry_cache_tnt()
697 dfun = decoder->next; in pt_qry_cache_tnt()
699 return pt_qry_provoke_fetch_error(decoder); in pt_qry_cache_tnt()
705 if (pt_qry_will_event(decoder)) in pt_qry_cache_tnt()
715 decoder->event = NULL; in pt_qry_cache_tnt()
718 errcode = dfun->decode(decoder); in pt_qry_cache_tnt()
723 if (decoder->event) in pt_qry_cache_tnt()
731 errcode = pt_qry_read_ahead(decoder); in pt_qry_cache_tnt()
737 decoder->last_time = decoder->time; in pt_qry_cache_tnt()
740 errcode = pt_qry_read_ahead(decoder); in pt_qry_cache_tnt()
747 int pt_qry_cond_branch(struct pt_query_decoder *decoder, int *taken) in pt_qry_cond_branch() argument
751 if (!decoder || !taken) in pt_qry_cond_branch()
757 if (pt_tnt_cache_is_empty(&decoder->tnt)) { in pt_qry_cond_branch()
758 errcode = pt_qry_cache_tnt(decoder); in pt_qry_cond_branch()
763 query = pt_tnt_cache_query(&decoder->tnt); in pt_qry_cond_branch()
769 return pt_qry_status_flags(decoder); in pt_qry_cond_branch()
772 int pt_qry_indirect_branch(struct pt_query_decoder *decoder, uint64_t *addr) in pt_qry_indirect_branch() argument
776 if (!decoder || !addr) in pt_qry_indirect_branch()
783 dfun = decoder->next; in pt_qry_indirect_branch()
785 return pt_qry_provoke_fetch_error(decoder); in pt_qry_indirect_branch()
791 if (pt_qry_will_event(decoder)) in pt_qry_indirect_branch()
797 decoder->event = NULL; in pt_qry_indirect_branch()
806 !pt_tnt_cache_is_empty(&decoder->tnt)) in pt_qry_indirect_branch()
810 errcode = dfun->decode(decoder); in pt_qry_indirect_branch()
815 if (decoder->event) in pt_qry_indirect_branch()
827 errcode = pt_last_ip_query(&ip, &decoder->ip); in pt_qry_indirect_branch()
837 errcode = pt_qry_read_ahead(decoder); in pt_qry_indirect_branch()
843 decoder->last_time = decoder->time; in pt_qry_indirect_branch()
846 errcode = pt_qry_read_ahead(decoder); in pt_qry_indirect_branch()
850 flags |= pt_qry_status_flags(decoder); in pt_qry_indirect_branch()
855 int pt_qry_event(struct pt_query_decoder *decoder, struct pt_event *event, in pt_qry_event() argument
860 if (!decoder || !event) in pt_qry_event()
869 if (!pt_tnt_cache_is_empty(&decoder->tnt)) in pt_qry_event()
880 dfun = decoder->next; in pt_qry_event()
882 return pt_qry_provoke_fetch_error(decoder); in pt_qry_event()
895 !pt_qry_will_event(decoder)) in pt_qry_event()
901 decoder->event = NULL; in pt_qry_event()
904 errcode = dfun->decode(decoder); in pt_qry_event()
913 if (decoder->event) { in pt_qry_event()
914 (void) memcpy(event, decoder->event, size); in pt_qry_event()
919 errcode = pt_qry_read_ahead(decoder); in pt_qry_event()
925 decoder->last_time = decoder->time; in pt_qry_event()
928 errcode = pt_qry_read_ahead(decoder); in pt_qry_event()
932 flags |= pt_qry_status_flags(decoder); in pt_qry_event()
937 int pt_qry_time(struct pt_query_decoder *decoder, uint64_t *time, in pt_qry_time() argument
940 if (!decoder || !time) in pt_qry_time()
943 return pt_time_query_tsc(time, lost_mtc, lost_cyc, &decoder->last_time); in pt_qry_time()
946 int pt_qry_core_bus_ratio(struct pt_query_decoder *decoder, uint32_t *cbr) in pt_qry_core_bus_ratio() argument
948 if (!decoder || !cbr) in pt_qry_core_bus_ratio()
951 return pt_time_query_cbr(cbr, &decoder->last_time); in pt_qry_core_bus_ratio()
955 const struct pt_query_decoder *decoder) in pt_qry_event_time() argument
959 if (!event || !decoder) in pt_qry_event_time()
963 &event->lost_cyc, &decoder->time); in pt_qry_event_time()
973 int pt_qry_decode_unknown(struct pt_query_decoder *decoder) in pt_qry_decode_unknown() argument
978 if (!decoder) in pt_qry_decode_unknown()
981 size = pt_pkt_read_unknown(&packet, decoder->pos, &decoder->config); in pt_qry_decode_unknown()
985 decoder->pos += size; in pt_qry_decode_unknown()
989 int pt_qry_decode_pad(struct pt_query_decoder *decoder) in pt_qry_decode_pad() argument
991 if (!decoder) in pt_qry_decode_pad()
994 decoder->pos += ptps_pad; in pt_qry_decode_pad()
999 static int pt_qry_read_psb_header(struct pt_query_decoder *decoder) in pt_qry_read_psb_header() argument
1001 if (!decoder) in pt_qry_read_psb_header()
1004 pt_last_ip_init(&decoder->ip); in pt_qry_read_psb_header()
1010 errcode = pt_df_fetch(&decoder->next, decoder->pos, in pt_qry_read_psb_header()
1011 &decoder->config); in pt_qry_read_psb_header()
1015 dfun = decoder->next; in pt_qry_read_psb_header()
1026 errcode = dfun->header(decoder); in pt_qry_read_psb_header()
1032 int pt_qry_decode_psb(struct pt_query_decoder *decoder) in pt_qry_decode_psb() argument
1037 if (!decoder) in pt_qry_decode_psb()
1040 pos = decoder->pos; in pt_qry_decode_psb()
1042 size = pt_pkt_read_psb(pos, &decoder->config); in pt_qry_decode_psb()
1046 decoder->pos += size; in pt_qry_decode_psb()
1048 errcode = pt_qry_read_psb_header(decoder); in pt_qry_decode_psb()
1053 decoder->pos = pos; in pt_qry_decode_psb()
1056 (void) pt_evq_clear(&decoder->evq, evb_psbend); in pt_qry_decode_psb()
1059 decoder->next = &pt_decode_psb; in pt_qry_decode_psb()
1073 const struct pt_query_decoder *decoder) in pt_qry_event_ip() argument
1077 if (!decoder) in pt_qry_event_ip()
1080 errcode = pt_last_ip_query(ip, &decoder->ip); in pt_qry_event_ip()
1102 static int pt_qry_decode_ip(struct pt_query_decoder *decoder) in pt_qry_decode_ip() argument
1107 if (!decoder) in pt_qry_decode_ip()
1110 size = pt_pkt_read_ip(&packet, decoder->pos, &decoder->config); in pt_qry_decode_ip()
1114 errcode = pt_last_ip_update_ip(&decoder->ip, &packet, &decoder->config); in pt_qry_decode_ip()
1123 static int pt_qry_consume_tip(struct pt_query_decoder *decoder, int size) in pt_qry_consume_tip() argument
1125 if (!decoder) in pt_qry_consume_tip()
1128 decoder->pos += size; in pt_qry_consume_tip()
1133 struct pt_query_decoder *decoder) in pt_qry_event_tip() argument
1135 if (!ev || !decoder) in pt_qry_event_tip()
1140 decoder->consume_packet = 1; in pt_qry_event_tip()
1143 decoder); in pt_qry_event_tip()
1147 decoder); in pt_qry_event_tip()
1151 decoder); in pt_qry_event_tip()
1155 decoder); in pt_qry_event_tip()
1164 int pt_qry_decode_tip(struct pt_query_decoder *decoder) in pt_qry_decode_tip() argument
1169 if (!decoder) in pt_qry_decode_tip()
1172 size = pt_qry_decode_ip(decoder); in pt_qry_decode_tip()
1177 ev = pt_evq_dequeue(&decoder->evq, evb_tip); in pt_qry_decode_tip()
1179 errcode = pt_qry_event_tip(ev, decoder); in pt_qry_decode_tip()
1184 decoder->event = ev; in pt_qry_decode_tip()
1187 if (pt_evq_pending(&decoder->evq, evb_tip)) in pt_qry_decode_tip()
1194 if (!decoder->consume_packet) in pt_qry_decode_tip()
1200 decoder->consume_packet = 0; in pt_qry_decode_tip()
1203 return pt_qry_consume_tip(decoder, size); in pt_qry_decode_tip()
1206 int pt_qry_decode_tnt_8(struct pt_query_decoder *decoder) in pt_qry_decode_tnt_8() argument
1211 if (!decoder) in pt_qry_decode_tnt_8()
1214 size = pt_pkt_read_tnt_8(&packet, decoder->pos, &decoder->config); in pt_qry_decode_tnt_8()
1218 errcode = pt_tnt_cache_update_tnt(&decoder->tnt, &packet, in pt_qry_decode_tnt_8()
1219 &decoder->config); in pt_qry_decode_tnt_8()
1223 decoder->pos += size; in pt_qry_decode_tnt_8()
1227 int pt_qry_decode_tnt_64(struct pt_query_decoder *decoder) in pt_qry_decode_tnt_64() argument
1232 if (!decoder) in pt_qry_decode_tnt_64()
1235 size = pt_pkt_read_tnt_64(&packet, decoder->pos, &decoder->config); in pt_qry_decode_tnt_64()
1239 errcode = pt_tnt_cache_update_tnt(&decoder->tnt, &packet, in pt_qry_decode_tnt_64()
1240 &decoder->config); in pt_qry_decode_tnt_64()
1244 decoder->pos += size; in pt_qry_decode_tnt_64()
1248 static int pt_qry_consume_tip_pge(struct pt_query_decoder *decoder, int size) in pt_qry_consume_tip_pge() argument
1250 if (!decoder) in pt_qry_consume_tip_pge()
1253 decoder->pos += size; in pt_qry_consume_tip_pge()
1258 const struct pt_query_decoder *decoder) in pt_qry_event_tip_pge() argument
1265 return pt_qry_event_ip(&ev->variant.exec_mode.ip, ev, decoder); in pt_qry_event_tip_pge()
1274 int pt_qry_decode_tip_pge(struct pt_query_decoder *decoder) in pt_qry_decode_tip_pge() argument
1279 if (!decoder) in pt_qry_decode_tip_pge()
1282 size = pt_qry_decode_ip(decoder); in pt_qry_decode_tip_pge()
1292 if (!decoder->consume_packet) { in pt_qry_decode_tip_pge()
1294 ev = pt_evq_standalone(&decoder->evq); in pt_qry_decode_tip_pge()
1302 &decoder->ip); in pt_qry_decode_tip_pge()
1306 errcode = pt_qry_event_time(ev, decoder); in pt_qry_decode_tip_pge()
1316 pt_tnt_cache_init(&decoder->tnt); in pt_qry_decode_tip_pge()
1319 decoder->consume_packet = 1; in pt_qry_decode_tip_pge()
1320 decoder->enabled = 1; in pt_qry_decode_tip_pge()
1323 ev = pt_evq_dequeue(&decoder->evq, evb_tip); in pt_qry_decode_tip_pge()
1325 errcode = pt_qry_event_tip_pge(ev, decoder); in pt_qry_decode_tip_pge()
1338 decoder->event = ev; in pt_qry_decode_tip_pge()
1341 if (pt_evq_pending(&decoder->evq, evb_tip)) in pt_qry_decode_tip_pge()
1345 if (!decoder->consume_packet) in pt_qry_decode_tip_pge()
1348 decoder->consume_packet = 0; in pt_qry_decode_tip_pge()
1350 return pt_qry_consume_tip_pge(decoder, size); in pt_qry_decode_tip_pge()
1353 static int pt_qry_consume_tip_pgd(struct pt_query_decoder *decoder, int size) in pt_qry_consume_tip_pgd() argument
1355 if (!decoder) in pt_qry_consume_tip_pgd()
1358 decoder->enabled = 0; in pt_qry_consume_tip_pgd()
1359 decoder->pos += size; in pt_qry_consume_tip_pgd()
1364 const struct pt_query_decoder *decoder) in pt_qry_event_tip_pgd() argument
1380 decoder); in pt_qry_event_tip_pgd()
1412 int pt_qry_decode_tip_pgd(struct pt_query_decoder *decoder) in pt_qry_decode_tip_pgd() argument
1417 if (!decoder) in pt_qry_decode_tip_pgd()
1420 size = pt_qry_decode_ip(decoder); in pt_qry_decode_tip_pgd()
1425 ev = pt_evq_dequeue(&decoder->evq, evb_tip); in pt_qry_decode_tip_pgd()
1427 errcode = pt_qry_event_tip_pgd(ev, decoder); in pt_qry_decode_tip_pgd()
1432 ev = pt_evq_standalone(&decoder->evq); in pt_qry_decode_tip_pgd()
1438 decoder); in pt_qry_decode_tip_pgd()
1442 errcode = pt_qry_event_time(ev, decoder); in pt_qry_decode_tip_pgd()
1454 decoder->event = ev; in pt_qry_decode_tip_pgd()
1457 if (pt_evq_pending(&decoder->evq, evb_tip)) in pt_qry_decode_tip_pgd()
1460 return pt_qry_consume_tip_pgd(decoder, size); in pt_qry_decode_tip_pgd()
1463 static int pt_qry_consume_fup(struct pt_query_decoder *decoder, int size) in pt_qry_consume_fup() argument
1465 if (!decoder) in pt_qry_consume_fup()
1468 decoder->pos += size; in pt_qry_consume_fup()
1472 static int scan_for_erratum_bdm70(struct pt_packet_decoder *decoder) in scan_for_erratum_bdm70() argument
1478 errcode = pt_pkt_next(decoder, &packet, sizeof(packet)); in scan_for_erratum_bdm70()
1520 struct pt_packet_decoder decoder; in check_erratum_bdm70() local
1526 errcode = pt_pkt_decoder_init(&decoder, config); in check_erratum_bdm70()
1530 errcode = pt_pkt_sync_set(&decoder, (uint64_t) (pos - config->begin)); in check_erratum_bdm70()
1532 errcode = scan_for_erratum_bdm70(&decoder); in check_erratum_bdm70()
1534 pt_pkt_decoder_fini(&decoder); in check_erratum_bdm70()
1538 int pt_qry_header_fup(struct pt_query_decoder *decoder) in pt_qry_header_fup() argument
1543 if (!decoder) in pt_qry_header_fup()
1546 size = pt_pkt_read_ip(&packet, decoder->pos, &decoder->config); in pt_qry_header_fup()
1550 if (decoder->config.errata.bdm70 && !decoder->enabled) { in pt_qry_header_fup()
1551 errcode = check_erratum_bdm70(decoder->pos + size, in pt_qry_header_fup()
1552 &decoder->config); in pt_qry_header_fup()
1557 return pt_qry_consume_fup(decoder, size); in pt_qry_header_fup()
1560 errcode = pt_last_ip_update_ip(&decoder->ip, &packet, &decoder->config); in pt_qry_header_fup()
1566 decoder->enabled = 1; in pt_qry_header_fup()
1568 return pt_qry_consume_fup(decoder, size); in pt_qry_header_fup()
1572 struct pt_query_decoder *decoder) in pt_qry_event_fup() argument
1574 if (!ev || !decoder) in pt_qry_event_fup()
1579 decoder->consume_packet = 1; in pt_qry_event_fup()
1583 &decoder->ip); in pt_qry_event_fup()
1587 decoder->consume_packet = 1; in pt_qry_event_fup()
1589 return pt_qry_event_ip(&ev->variant.tsx.ip, ev, decoder); in pt_qry_event_fup()
1592 decoder->consume_packet = 1; in pt_qry_event_fup()
1594 return pt_qry_event_ip(&ev->variant.exstop.ip, ev, decoder); in pt_qry_event_fup()
1597 decoder->consume_packet = 1; in pt_qry_event_fup()
1599 return pt_qry_event_ip(&ev->variant.mwait.ip, ev, decoder); in pt_qry_event_fup()
1602 decoder->consume_packet = 1; in pt_qry_event_fup()
1604 return pt_qry_event_ip(&ev->variant.ptwrite.ip, ev, decoder); in pt_qry_event_fup()
1613 int pt_qry_decode_fup(struct pt_query_decoder *decoder) in pt_qry_decode_fup() argument
1618 if (!decoder) in pt_qry_decode_fup()
1621 size = pt_qry_decode_ip(decoder); in pt_qry_decode_fup()
1626 ev = pt_evq_dequeue(&decoder->evq, evb_fup); in pt_qry_decode_fup()
1628 errcode = pt_qry_event_fup(ev, decoder); in pt_qry_decode_fup()
1633 decoder->event = ev; in pt_qry_decode_fup()
1636 if (pt_evq_pending(&decoder->evq, evb_fup)) in pt_qry_decode_fup()
1643 if (!decoder->consume_packet) in pt_qry_decode_fup()
1649 decoder->consume_packet = 0; in pt_qry_decode_fup()
1657 errcode = pt_last_ip_query(&ip, &decoder->ip); in pt_qry_decode_fup()
1661 ev = pt_evq_enqueue(&decoder->evq, evb_tip); in pt_qry_decode_fup()
1668 errcode = pt_qry_event_time(ev, decoder); in pt_qry_decode_fup()
1673 return pt_qry_consume_fup(decoder, size); in pt_qry_decode_fup()
1676 int pt_qry_decode_pip(struct pt_query_decoder *decoder) in pt_qry_decode_pip() argument
1682 if (!decoder) in pt_qry_decode_pip()
1685 size = pt_pkt_read_pip(&packet, decoder->pos, &decoder->config); in pt_qry_decode_pip()
1692 event = pt_evq_find(&decoder->evq, evb_tip, ptev_async_branch); in pt_qry_decode_pip()
1694 event = pt_evq_standalone(&decoder->evq); in pt_qry_decode_pip()
1701 decoder->event = event; in pt_qry_decode_pip()
1703 event = pt_evq_enqueue(&decoder->evq, evb_tip); in pt_qry_decode_pip()
1712 errcode = pt_qry_event_time(event, decoder); in pt_qry_decode_pip()
1716 decoder->pos += size; in pt_qry_decode_pip()
1720 int pt_qry_header_pip(struct pt_query_decoder *decoder) in pt_qry_header_pip() argument
1726 if (!decoder) in pt_qry_header_pip()
1729 size = pt_pkt_read_pip(&packet, decoder->pos, &decoder->config); in pt_qry_header_pip()
1734 event = pt_evq_enqueue(&decoder->evq, evb_psbend); in pt_qry_header_pip()
1742 decoder->pos += size; in pt_qry_header_pip()
1747 struct pt_query_decoder *decoder) in pt_qry_event_psbend() argument
1751 if (!ev || !decoder) in pt_qry_event_psbend()
1757 errcode = pt_qry_event_time(ev, decoder); in pt_qry_event_psbend()
1764 decoder); in pt_qry_event_psbend()
1767 return pt_qry_event_ip(&ev->variant.exec_mode.ip, ev, decoder); in pt_qry_event_psbend()
1770 return pt_qry_event_ip(&ev->variant.tsx.ip, ev, decoder); in pt_qry_event_psbend()
1774 decoder); in pt_qry_event_psbend()
1793 static int pt_qry_process_pending_psb_events(struct pt_query_decoder *decoder) in pt_qry_process_pending_psb_events() argument
1798 if (!decoder) in pt_qry_process_pending_psb_events()
1801 ev = pt_evq_dequeue(&decoder->evq, evb_psbend); in pt_qry_process_pending_psb_events()
1805 errcode = pt_qry_event_psbend(ev, decoder); in pt_qry_process_pending_psb_events()
1810 decoder->event = ev; in pt_qry_process_pending_psb_events()
1822 static int pt_qry_event_ovf_disabled(struct pt_query_decoder *decoder) in pt_qry_event_ovf_disabled() argument
1826 if (!decoder) in pt_qry_event_ovf_disabled()
1829 ev = pt_evq_standalone(&decoder->evq); in pt_qry_event_ovf_disabled()
1841 decoder->enabled = 0; in pt_qry_event_ovf_disabled()
1842 decoder->event = ev; in pt_qry_event_ovf_disabled()
1844 return pt_qry_event_time(ev, decoder); in pt_qry_event_ovf_disabled()
1853 static int pt_qry_event_ovf_enabled(struct pt_query_decoder *decoder) in pt_qry_event_ovf_enabled() argument
1857 if (!decoder) in pt_qry_event_ovf_enabled()
1860 ev = pt_evq_enqueue(&decoder->evq, evb_fup); in pt_qry_event_ovf_enabled()
1866 decoder->enabled = 1; in pt_qry_event_ovf_enabled()
1868 return pt_qry_event_time(ev, decoder); in pt_qry_event_ovf_enabled()
1884 static int skd010_recover(struct pt_query_decoder *decoder, in skd010_recover() argument
1893 if (!decoder || !packet || !tcal || !time) in skd010_recover()
1897 ip = decoder->ip; in skd010_recover()
1900 errcode = pt_last_ip_update_ip(&ip, packet, &decoder->config); in skd010_recover()
1905 ev = pt_evq_standalone(&decoder->evq); in skd010_recover()
1917 decoder->pos = decoder->config.begin + offset; in skd010_recover()
1920 decoder->enabled = 1; in skd010_recover()
1921 decoder->ip = ip; in skd010_recover()
1923 decoder->time = *time; in skd010_recover()
1924 decoder->tcal = *tcal; in skd010_recover()
1927 decoder->event = ev; in skd010_recover()
1929 return pt_qry_event_time(ev, decoder); in skd010_recover()
1944 static int skd010_recover_disabled(struct pt_query_decoder *decoder, in skd010_recover_disabled() argument
1948 if (!decoder || !tcal || !time) in skd010_recover_disabled()
1951 decoder->time = *time; in skd010_recover_disabled()
1952 decoder->tcal = *tcal; in skd010_recover_disabled()
1955 decoder->pos = decoder->config.begin + offset; in skd010_recover_disabled()
1957 return pt_qry_event_ovf_disabled(decoder); in skd010_recover_disabled()
1984 struct pt_query_decoder *decoder) in skd010_scan_for_ovf_resume() argument
1995 if (!decoder) in skd010_scan_for_ovf_resume()
1999 time = decoder->time; in skd010_scan_for_ovf_resume()
2000 tcal = decoder->tcal; in skd010_scan_for_ovf_resume()
2035 return skd010_recover_disabled(decoder, &tcal, &time, in skd010_scan_for_ovf_resume()
2124 return skd010_recover(decoder, in skd010_scan_for_ovf_resume()
2134 return skd010_recover(decoder, &packet.payload.ip, in skd010_scan_for_ovf_resume()
2141 return skd010_recover(decoder, &packet.payload.ip, in skd010_scan_for_ovf_resume()
2173 return skd010_recover(decoder, &packet.payload.ip, in skd010_scan_for_ovf_resume()
2225 &decoder->config); in skd010_scan_for_ovf_resume()
2235 &decoder->config); in skd010_scan_for_ovf_resume()
2245 &decoder->config); in skd010_scan_for_ovf_resume()
2255 &decoder->config); in skd010_scan_for_ovf_resume()
2265 &decoder->config); in skd010_scan_for_ovf_resume()
2274 static int pt_qry_handle_skd010(struct pt_query_decoder *decoder) in pt_qry_handle_skd010() argument
2280 if (!decoder) in pt_qry_handle_skd010()
2283 errcode = pt_qry_get_offset(decoder, &offset); in pt_qry_handle_skd010()
2287 errcode = pt_pkt_decoder_init(&pkt, &decoder->config); in pt_qry_handle_skd010()
2293 errcode = skd010_scan_for_ovf_resume(&pkt, decoder); in pt_qry_handle_skd010()
2305 static int apl12_tracing_is_disabled(struct pt_packet_decoder *decoder) in apl12_tracing_is_disabled() argument
2307 if (!decoder) in apl12_tracing_is_disabled()
2314 status = pt_pkt_next(decoder, &packet, sizeof(packet)); in apl12_tracing_is_disabled()
2349 status = pt_qry_find_header_fup(&packet, decoder); in apl12_tracing_is_disabled()
2382 static int apl12_resume_disabled(struct pt_query_decoder *decoder, in apl12_resume_disabled() argument
2389 if (!decoder) in apl12_resume_disabled()
2392 errcode = pt_qry_get_offset(decoder, &begin); in apl12_resume_disabled()
2450 errcode = pt_qry_apply_tsc(&decoder->time, in apl12_resume_disabled()
2451 &decoder->tcal, in apl12_resume_disabled()
2453 &decoder->config); in apl12_resume_disabled()
2461 errcode = pt_qry_apply_cbr(&decoder->time, in apl12_resume_disabled()
2462 &decoder->tcal, in apl12_resume_disabled()
2464 &decoder->config); in apl12_resume_disabled()
2472 errcode = pt_qry_apply_tma(&decoder->time, in apl12_resume_disabled()
2473 &decoder->tcal, in apl12_resume_disabled()
2475 &decoder->config); in apl12_resume_disabled()
2483 errcode = pt_qry_apply_mtc(&decoder->time, in apl12_resume_disabled()
2484 &decoder->tcal, in apl12_resume_disabled()
2486 &decoder->config); in apl12_resume_disabled()
2494 errcode = pt_qry_apply_cyc(&decoder->time, in apl12_resume_disabled()
2495 &decoder->tcal, in apl12_resume_disabled()
2497 &decoder->config); in apl12_resume_disabled()
2505 decoder->pos += offset; in apl12_resume_disabled()
2507 return pt_qry_event_ovf_disabled(decoder); in apl12_resume_disabled()
2529 static int pt_qry_handle_apl12(struct pt_query_decoder *decoder, in pt_qry_handle_apl12() argument
2536 if (!decoder) in pt_qry_handle_apl12()
2539 status = pt_qry_get_offset(decoder, &here); in pt_qry_handle_apl12()
2543 status = pt_pkt_decoder_init(&pkt, &decoder->config); in pt_qry_handle_apl12()
2551 status = apl12_resume_disabled(decoder, &pkt, offset); in pt_qry_handle_apl12()
2573 static int apl11_apply(struct pt_query_decoder *decoder, in apl11_apply() argument
2579 if (!decoder) in apl11_apply()
2582 time = decoder->time; in apl11_apply()
2583 tcal = decoder->tcal; in apl11_apply()
2604 decoder->time = time; in apl11_apply()
2605 decoder->tcal = tcal; in apl11_apply()
2606 decoder->pos = decoder->config.begin + offset; in apl11_apply()
2608 return pt_qry_event_ovf_disabled(decoder); in apl11_apply()
2647 &decoder->config); in apl11_apply()
2657 &decoder->config); in apl11_apply()
2667 &decoder->config); in apl11_apply()
2677 &decoder->config); in apl11_apply()
2687 &decoder->config); in apl11_apply()
2711 static int pt_qry_handle_apl11(struct pt_query_decoder *decoder) in pt_qry_handle_apl11() argument
2717 if (!decoder) in pt_qry_handle_apl11()
2720 status = pt_qry_get_offset(decoder, &offset); in pt_qry_handle_apl11()
2724 status = pt_pkt_decoder_init(&pkt, &decoder->config); in pt_qry_handle_apl11()
2730 status = apl11_apply(decoder, &pkt); in pt_qry_handle_apl11()
2736 static int pt_pkt_find_ovf_fup(struct pt_packet_decoder *decoder) in pt_pkt_find_ovf_fup() argument
2742 errcode = pt_pkt_next(decoder, &packet, sizeof(packet)); in pt_pkt_find_ovf_fup()
2796 static int pt_qry_find_ovf_fup(const struct pt_query_decoder *decoder) in pt_qry_find_ovf_fup() argument
2802 if (!decoder) in pt_qry_find_ovf_fup()
2805 status = pt_qry_get_offset(decoder, &begin); in pt_qry_find_ovf_fup()
2809 status = pt_pkt_decoder_init(&pkt, &decoder->config); in pt_qry_find_ovf_fup()
2836 int pt_qry_decode_ovf(struct pt_query_decoder *decoder) in pt_qry_decode_ovf() argument
2841 if (!decoder) in pt_qry_decode_ovf()
2844 status = pt_qry_process_pending_psb_events(decoder); in pt_qry_decode_ovf()
2853 time = decoder->time; in pt_qry_decode_ovf()
2854 pt_qry_reset(decoder); in pt_qry_decode_ovf()
2855 decoder->time = time; in pt_qry_decode_ovf()
2858 decoder->pos += ptps_ovf; in pt_qry_decode_ovf()
2873 offset = pt_qry_find_ovf_fup(decoder); in pt_qry_decode_ovf()
2881 if (decoder->config.errata.skd010) { in pt_qry_decode_ovf()
2882 status = pt_qry_handle_skd010(decoder); in pt_qry_decode_ovf()
2892 if (decoder->config.errata.apl11 && in pt_qry_decode_ovf()
2894 status = pt_qry_handle_apl11(decoder); in pt_qry_decode_ovf()
2907 return pt_qry_event_ovf_disabled(decoder); in pt_qry_decode_ovf()
2914 if (decoder->config.errata.apl12) { in pt_qry_decode_ovf()
2915 status = pt_qry_handle_apl12(decoder, in pt_qry_decode_ovf()
2921 return pt_qry_event_ovf_enabled(decoder); in pt_qry_decode_ovf()
2925 static int pt_qry_decode_mode_exec(struct pt_query_decoder *decoder, in pt_qry_decode_mode_exec() argument
2930 if (!decoder || !packet) in pt_qry_decode_mode_exec()
2934 event = pt_evq_enqueue(&decoder->evq, evb_tip); in pt_qry_decode_mode_exec()
2941 return pt_qry_event_time(event, decoder); in pt_qry_decode_mode_exec()
2944 static int pt_qry_decode_mode_tsx(struct pt_query_decoder *decoder, in pt_qry_decode_mode_tsx() argument
2949 if (!decoder || !packet) in pt_qry_decode_mode_tsx()
2953 if (!decoder->enabled) { in pt_qry_decode_mode_tsx()
2954 event = pt_evq_standalone(&decoder->evq); in pt_qry_decode_mode_tsx()
2963 decoder->event = event; in pt_qry_decode_mode_tsx()
2966 event = pt_evq_enqueue(&decoder->evq, evb_fup); in pt_qry_decode_mode_tsx()
2975 return pt_qry_event_time(event, decoder); in pt_qry_decode_mode_tsx()
2978 int pt_qry_decode_mode(struct pt_query_decoder *decoder) in pt_qry_decode_mode() argument
2983 if (!decoder) in pt_qry_decode_mode()
2986 size = pt_pkt_read_mode(&packet, decoder->pos, &decoder->config); in pt_qry_decode_mode()
2993 errcode = pt_qry_decode_mode_exec(decoder, &packet.bits.exec); in pt_qry_decode_mode()
2997 errcode = pt_qry_decode_mode_tsx(decoder, &packet.bits.tsx); in pt_qry_decode_mode()
3004 decoder->pos += size; in pt_qry_decode_mode()
3008 int pt_qry_header_mode(struct pt_query_decoder *decoder) in pt_qry_header_mode() argument
3014 if (!decoder) in pt_qry_header_mode()
3017 size = pt_pkt_read_mode(&packet, decoder->pos, &decoder->config); in pt_qry_header_mode()
3022 event = pt_evq_enqueue(&decoder->evq, evb_psbend); in pt_qry_header_mode()
3040 decoder->pos += size; in pt_qry_header_mode()
3044 int pt_qry_decode_psbend(struct pt_query_decoder *decoder) in pt_qry_decode_psbend() argument
3048 if (!decoder) in pt_qry_decode_psbend()
3051 status = pt_qry_process_pending_psb_events(decoder); in pt_qry_decode_psbend()
3062 decoder->pos += ptps_psbend; in pt_qry_decode_psbend()
3066 int pt_qry_decode_tsc(struct pt_query_decoder *decoder) in pt_qry_decode_tsc() argument
3071 if (!decoder) in pt_qry_decode_tsc()
3074 size = pt_pkt_read_tsc(&packet, decoder->pos, &decoder->config); in pt_qry_decode_tsc()
3078 errcode = pt_qry_apply_tsc(&decoder->time, &decoder->tcal, in pt_qry_decode_tsc()
3079 &packet, &decoder->config); in pt_qry_decode_tsc()
3083 decoder->pos += size; in pt_qry_decode_tsc()
3087 int pt_qry_header_tsc(struct pt_query_decoder *decoder) in pt_qry_header_tsc() argument
3092 if (!decoder) in pt_qry_header_tsc()
3095 size = pt_pkt_read_tsc(&packet, decoder->pos, &decoder->config); in pt_qry_header_tsc()
3099 errcode = pt_qry_apply_header_tsc(&decoder->time, &decoder->tcal, in pt_qry_header_tsc()
3100 &packet, &decoder->config); in pt_qry_header_tsc()
3104 decoder->pos += size; in pt_qry_header_tsc()
3108 int pt_qry_decode_cbr(struct pt_query_decoder *decoder) in pt_qry_decode_cbr() argument
3114 if (!decoder) in pt_qry_decode_cbr()
3117 size = pt_pkt_read_cbr(&packet, decoder->pos, &decoder->config); in pt_qry_decode_cbr()
3121 errcode = pt_qry_apply_cbr(&decoder->time, &decoder->tcal, in pt_qry_decode_cbr()
3122 &packet, &decoder->config); in pt_qry_decode_cbr()
3126 event = pt_evq_standalone(&decoder->evq); in pt_qry_decode_cbr()
3133 decoder->event = event; in pt_qry_decode_cbr()
3135 errcode = pt_qry_event_time(event, decoder); in pt_qry_decode_cbr()
3139 decoder->pos += size; in pt_qry_decode_cbr()
3143 int pt_qry_header_cbr(struct pt_query_decoder *decoder) in pt_qry_header_cbr() argument
3149 if (!decoder) in pt_qry_header_cbr()
3152 size = pt_pkt_read_cbr(&packet, decoder->pos, &decoder->config); in pt_qry_header_cbr()
3156 errcode = pt_qry_apply_header_cbr(&decoder->time, &decoder->tcal, in pt_qry_header_cbr()
3157 &packet, &decoder->config); in pt_qry_header_cbr()
3161 event = pt_evq_enqueue(&decoder->evq, evb_psbend); in pt_qry_header_cbr()
3168 decoder->pos += size; in pt_qry_header_cbr()
3172 int pt_qry_decode_tma(struct pt_query_decoder *decoder) in pt_qry_decode_tma() argument
3177 if (!decoder) in pt_qry_decode_tma()
3180 size = pt_pkt_read_tma(&packet, decoder->pos, &decoder->config); in pt_qry_decode_tma()
3184 errcode = pt_qry_apply_tma(&decoder->time, &decoder->tcal, in pt_qry_decode_tma()
3185 &packet, &decoder->config); in pt_qry_decode_tma()
3189 decoder->pos += size; in pt_qry_decode_tma()
3193 int pt_qry_decode_mtc(struct pt_query_decoder *decoder) in pt_qry_decode_mtc() argument
3198 if (!decoder) in pt_qry_decode_mtc()
3201 size = pt_pkt_read_mtc(&packet, decoder->pos, &decoder->config); in pt_qry_decode_mtc()
3205 errcode = pt_qry_apply_mtc(&decoder->time, &decoder->tcal, in pt_qry_decode_mtc()
3206 &packet, &decoder->config); in pt_qry_decode_mtc()
3210 decoder->pos += size; in pt_qry_decode_mtc()
3214 static int check_erratum_skd007(struct pt_query_decoder *decoder, in check_erratum_skd007() argument
3220 if (!decoder || !packet || size < 0) in check_erratum_skd007()
3234 pos = decoder->pos + size; in check_erratum_skd007()
3235 if (decoder->config.end <= pos) in check_erratum_skd007()
3251 int pt_qry_decode_cyc(struct pt_query_decoder *decoder) in pt_qry_decode_cyc() argument
3257 if (!decoder) in pt_qry_decode_cyc()
3260 config = &decoder->config; in pt_qry_decode_cyc()
3262 size = pt_pkt_read_cyc(&packet, decoder->pos, config); in pt_qry_decode_cyc()
3267 errcode = check_erratum_skd007(decoder, &packet, size); in pt_qry_decode_cyc()
3278 decoder->pos += 1; in pt_qry_decode_cyc()
3283 errcode = pt_qry_apply_cyc(&decoder->time, &decoder->tcal, in pt_qry_decode_cyc()
3288 decoder->pos += size; in pt_qry_decode_cyc()
3292 int pt_qry_decode_stop(struct pt_query_decoder *decoder) in pt_qry_decode_stop() argument
3297 if (!decoder) in pt_qry_decode_stop()
3301 event = pt_evq_standalone(&decoder->evq); in pt_qry_decode_stop()
3307 decoder->event = event; in pt_qry_decode_stop()
3309 errcode = pt_qry_event_time(event, decoder); in pt_qry_decode_stop()
3313 decoder->pos += ptps_stop; in pt_qry_decode_stop()
3317 int pt_qry_header_vmcs(struct pt_query_decoder *decoder) in pt_qry_header_vmcs() argument
3323 if (!decoder) in pt_qry_header_vmcs()
3326 size = pt_pkt_read_vmcs(&packet, decoder->pos, &decoder->config); in pt_qry_header_vmcs()
3330 event = pt_evq_enqueue(&decoder->evq, evb_psbend); in pt_qry_header_vmcs()
3337 decoder->pos += size; in pt_qry_header_vmcs()
3341 int pt_qry_decode_vmcs(struct pt_query_decoder *decoder) in pt_qry_decode_vmcs() argument
3347 if (!decoder) in pt_qry_decode_vmcs()
3350 size = pt_pkt_read_vmcs(&packet, decoder->pos, &decoder->config); in pt_qry_decode_vmcs()
3359 event = pt_evq_find(&decoder->evq, evb_tip, ptev_async_paging); in pt_qry_decode_vmcs()
3363 paging = pt_evq_enqueue(&decoder->evq, evb_tip); in pt_qry_decode_vmcs()
3372 decoder->pos += size; in pt_qry_decode_vmcs()
3379 event = pt_evq_find(&decoder->evq, evb_tip, ptev_async_branch); in pt_qry_decode_vmcs()
3381 event = pt_evq_enqueue(&decoder->evq, evb_tip); in pt_qry_decode_vmcs()
3388 decoder->pos += size; in pt_qry_decode_vmcs()
3395 event = pt_evq_standalone(&decoder->evq); in pt_qry_decode_vmcs()
3402 decoder->event = event; in pt_qry_decode_vmcs()
3404 errcode = pt_qry_event_time(event, decoder); in pt_qry_decode_vmcs()
3408 decoder->pos += size; in pt_qry_decode_vmcs()
3412 int pt_qry_decode_mnt(struct pt_query_decoder *decoder) in pt_qry_decode_mnt() argument
3418 if (!decoder) in pt_qry_decode_mnt()
3421 size = pt_pkt_read_mnt(&packet, decoder->pos, &decoder->config); in pt_qry_decode_mnt()
3425 event = pt_evq_standalone(&decoder->evq); in pt_qry_decode_mnt()
3432 decoder->event = event; in pt_qry_decode_mnt()
3434 errcode = pt_qry_event_time(event, decoder); in pt_qry_decode_mnt()
3438 decoder->pos += size; in pt_qry_decode_mnt()
3443 int pt_qry_header_mnt(struct pt_query_decoder *decoder) in pt_qry_header_mnt() argument
3449 if (!decoder) in pt_qry_header_mnt()
3452 size = pt_pkt_read_mnt(&packet, decoder->pos, &decoder->config); in pt_qry_header_mnt()
3456 event = pt_evq_enqueue(&decoder->evq, evb_psbend); in pt_qry_header_mnt()
3463 decoder->pos += size; in pt_qry_header_mnt()
3468 int pt_qry_decode_exstop(struct pt_query_decoder *decoder) in pt_qry_decode_exstop() argument
3474 if (!decoder) in pt_qry_decode_exstop()
3477 size = pt_pkt_read_exstop(&packet, decoder->pos, &decoder->config); in pt_qry_decode_exstop()
3482 event = pt_evq_enqueue(&decoder->evq, evb_fup); in pt_qry_decode_exstop()
3488 event = pt_evq_standalone(&decoder->evq); in pt_qry_decode_exstop()
3497 decoder->event = event; in pt_qry_decode_exstop()
3500 decoder->pos += size; in pt_qry_decode_exstop()
3504 int pt_qry_decode_mwait(struct pt_query_decoder *decoder) in pt_qry_decode_mwait() argument
3510 if (!decoder) in pt_qry_decode_mwait()
3513 size = pt_pkt_read_mwait(&packet, decoder->pos, &decoder->config); in pt_qry_decode_mwait()
3517 event = pt_evq_enqueue(&decoder->evq, evb_fup); in pt_qry_decode_mwait()
3525 decoder->pos += size; in pt_qry_decode_mwait()
3529 int pt_qry_decode_pwre(struct pt_query_decoder *decoder) in pt_qry_decode_pwre() argument
3535 if (!decoder) in pt_qry_decode_pwre()
3538 size = pt_pkt_read_pwre(&packet, decoder->pos, &decoder->config); in pt_qry_decode_pwre()
3542 event = pt_evq_standalone(&decoder->evq); in pt_qry_decode_pwre()
3553 decoder->event = event; in pt_qry_decode_pwre()
3555 decoder->pos += size; in pt_qry_decode_pwre()
3559 int pt_qry_decode_pwrx(struct pt_query_decoder *decoder) in pt_qry_decode_pwrx() argument
3565 if (!decoder) in pt_qry_decode_pwrx()
3568 size = pt_pkt_read_pwrx(&packet, decoder->pos, &decoder->config); in pt_qry_decode_pwrx()
3572 event = pt_evq_standalone(&decoder->evq); in pt_qry_decode_pwrx()
3587 decoder->event = event; in pt_qry_decode_pwrx()
3589 decoder->pos += size; in pt_qry_decode_pwrx()
3593 int pt_qry_decode_ptw(struct pt_query_decoder *decoder) in pt_qry_decode_ptw() argument
3599 if (!decoder) in pt_qry_decode_ptw()
3602 size = pt_pkt_read_ptw(&packet, decoder->pos, &decoder->config); in pt_qry_decode_ptw()
3611 event = pt_evq_enqueue(&decoder->evq, evb_fup); in pt_qry_decode_ptw()
3615 event = pt_evq_standalone(&decoder->evq); in pt_qry_decode_ptw()
3621 decoder->event = event; in pt_qry_decode_ptw()
3628 decoder->pos += size; in pt_qry_decode_ptw()