• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /freebsd-12-stable/contrib/processor-trace/libipt/include/

Lines Matching refs:decoder

40 /* Intel(R) Processor Trace (Intel PT) decoder library.
47 * - Packet encoder / decoder
48 * - Query decoder
50 * - Instruction flow decoder
51 * - Block decoder
120 /* Internal decoder error. */
183 /* The current decoder state does not match the state in the trace. */
337 /** A collection of decoder-specific configuration flags. */
339 /** The decoder variant. */
341 /** Flags for the block decoder. */
353 /** Flags for the instruction flow decoder. */
401 /** An Intel PT decoder configuration.
466 /** A collection of decoder-specific flags. */
495 /* Packet encoder / decoder. */
504 /* A packet decodable by the optional decoder callback. */
800 /** An unknown packet decodable by the optional decoder callback. */
954 /* Packet decoder. */
958 /** Allocate an Intel PT packet decoder.
960 * The decoder will work on the buffer defined in \@config, it shall contain
961 * raw trace data and remain valid for the lifetime of the decoder.
963 * The decoder needs to be synchronized before it can be used.
968 /** Free an Intel PT packet decoder.
970 * The \@decoder must not be used after a successful return.
972 extern pt_export void pt_pkt_free_decoder(struct pt_packet_decoder *decoder);
974 /** Synchronize an Intel PT packet decoder.
978 * If \@decoder has not been synchronized, yet, the search is started at the
985 * Returns -pte_invalid if \@decoder is NULL.
987 extern pt_export int pt_pkt_sync_forward(struct pt_packet_decoder *decoder);
988 extern pt_export int pt_pkt_sync_backward(struct pt_packet_decoder *decoder);
990 /** Hard set synchronization point of an Intel PT decoder.
992 * Synchronize \@decoder to \@offset within the trace buffer.
997 * Returns -pte_invalid if \@decoder is NULL.
999 extern pt_export int pt_pkt_sync_set(struct pt_packet_decoder *decoder,
1002 /** Get the current decoder position.
1004 * Fills the current \@decoder position into \@offset.
1010 * Returns -pte_invalid if \@decoder or \@offset is NULL.
1011 * Returns -pte_nosync if \@decoder is out of sync.
1013 extern pt_export int pt_pkt_get_offset(const struct pt_packet_decoder *decoder,
1024 * Returns -pte_invalid if \@decoder or \@offset is NULL.
1025 * Returns -pte_nosync if \@decoder is out of sync.
1028 pt_pkt_get_sync_offset(const struct pt_packet_decoder *decoder,
1031 /* Return a pointer to \@decoder's configuration.
1033 * Returns a non-null pointer on success, NULL if \@decoder is NULL.
1036 pt_pkt_get_config(const struct pt_packet_decoder *decoder);
1038 /** Decode the next packet and advance the decoder.
1040 * Decodes the packet at \@decoder's current position into \@packet and
1041 * adjusts the \@decoder's position by the number of bytes the packet had
1051 * Returns -pte_eos if \@decoder reached the end of the Intel PT buffer.
1052 * Returns -pte_invalid if \@decoder or \@packet is NULL.
1053 * Returns -pte_nosync if \@decoder is out of sync.
1055 extern pt_export int pt_pkt_next(struct pt_packet_decoder *decoder,
1060 /* Query decoder. */
1439 /** Allocate an Intel PT query decoder.
1441 * The decoder will work on the buffer defined in \@config, it shall contain
1442 * raw trace data and remain valid for the lifetime of the decoder.
1444 * The decoder needs to be synchronized before it can be used.
1449 /** Free an Intel PT query decoder.
1451 * The \@decoder must not be used after a successful return.
1453 extern pt_export void pt_qry_free_decoder(struct pt_query_decoder *decoder);
1455 /** Synchronize an Intel PT query decoder.
1459 * If \@decoder has not been synchronized, yet, the search is started at the
1471 * Returns -pte_invalid if \@decoder is NULL.
1473 extern pt_export int pt_qry_sync_forward(struct pt_query_decoder *decoder,
1475 extern pt_export int pt_qry_sync_backward(struct pt_query_decoder *decoder,
1478 /** Manually synchronize an Intel PT query decoder.
1480 * Synchronize \@decoder on the syncpoint at \@offset. There must be a PSB
1490 * Returns -pte_eos if \@offset lies outside of \@decoder's trace buffer.
1491 * Returns -pte_eos if \@decoder reaches the end of its trace buffer.
1492 * Returns -pte_invalid if \@decoder is NULL.
1495 extern pt_export int pt_qry_sync_set(struct pt_query_decoder *decoder,
1498 /** Get the current decoder position.
1500 * Fills the current \@decoder position into \@offset.
1506 * Returns -pte_invalid if \@decoder or \@offset is NULL.
1507 * Returns -pte_nosync if \@decoder is out of sync.
1509 extern pt_export int pt_qry_get_offset(const struct pt_query_decoder *decoder,
1520 * Returns -pte_invalid if \@decoder or \@offset is NULL.
1521 * Returns -pte_nosync if \@decoder is out of sync.
1524 pt_qry_get_sync_offset(const struct pt_query_decoder *decoder,
1527 /* Return a pointer to \@decoder's configuration.
1529 * Returns a non-null pointer on success, NULL if \@decoder is NULL.
1532 pt_qry_get_config(const struct pt_query_decoder *decoder);
1537 * conditional branch and updates \@decoder.
1546 * Returns -pte_invalid if \@decoder or \@taken is NULL.
1547 * Returns -pte_nosync if \@decoder is out of sync.
1549 extern pt_export int pt_qry_cond_branch(struct pt_query_decoder *decoder,
1555 * branch in \@ip and updates \@decoder.
1564 * Returns -pte_invalid if \@decoder or \@ip is NULL.
1565 * Returns -pte_nosync if \@decoder is out of sync.
1567 extern pt_export int pt_qry_indirect_branch(struct pt_query_decoder *decoder,
1572 * On success, provides the next event \@event and updates \@decoder.
1583 * Returns -pte_invalid if \@decoder or \@event is NULL.
1585 * Returns -pte_nosync if \@decoder is out of sync.
1587 extern pt_export int pt_qry_event(struct pt_query_decoder *decoder,
1609 * Returns -pte_invalid if \@decoder or \@time is NULL.
1612 extern pt_export int pt_qry_time(struct pt_query_decoder *decoder,
1623 * Returns -pte_invalid if \@decoder or \@cbr is NULL.
1626 extern pt_export int pt_qry_core_bus_ratio(struct pt_query_decoder *decoder,
1880 /* Instruction flow decoder. */
1973 /** Allocate an Intel PT instruction flow decoder.
1975 * The decoder will work on the buffer defined in \@config, it shall contain
1976 * raw trace data and remain valid for the lifetime of the decoder.
1978 * The decoder needs to be synchronized before it can be used.
1983 /** Free an Intel PT instruction flow decoder.
1985 * This will destroy the decoder's default image.
1987 * The \@decoder must not be used after a successful return.
1989 extern pt_export void pt_insn_free_decoder(struct pt_insn_decoder *decoder);
1991 /** Synchronize an Intel PT instruction flow decoder.
1995 * If \@decoder has not been synchronized, yet, the search is started at the
2004 * Returns -pte_invalid if \@decoder is NULL.
2006 extern pt_export int pt_insn_sync_forward(struct pt_insn_decoder *decoder);
2007 extern pt_export int pt_insn_sync_backward(struct pt_insn_decoder *decoder);
2009 /** Manually synchronize an Intel PT instruction flow decoder.
2011 * Synchronize \@decoder on the syncpoint at \@offset. There must be a PSB
2018 * Returns -pte_eos if \@offset lies outside of \@decoder's trace buffer.
2019 * Returns -pte_eos if \@decoder reaches the end of its trace buffer.
2020 * Returns -pte_invalid if \@decoder is NULL.
2023 extern pt_export int pt_insn_sync_set(struct pt_insn_decoder *decoder,
2026 /** Get the current decoder position.
2028 * Fills the current \@decoder position into \@offset.
2034 * Returns -pte_invalid if \@decoder or \@offset is NULL.
2035 * Returns -pte_nosync if \@decoder is out of sync.
2037 extern pt_export int pt_insn_get_offset(const struct pt_insn_decoder *decoder,
2046 * Returns -pte_invalid if \@decoder or \@offset is NULL.
2047 * Returns -pte_nosync if \@decoder is out of sync.
2050 pt_insn_get_sync_offset(const struct pt_insn_decoder *decoder,
2055 * The returned image may be modified as long as no decoder that uses this
2058 * Returns a pointer to the traced image the decoder uses for reading memory.
2059 * Returns NULL if \@decoder is NULL.
2062 pt_insn_get_image(struct pt_insn_decoder *decoder);
2066 * Sets the image that \@decoder uses for reading memory to \@image. If \@image
2067 * is NULL, sets the image to \@decoder's default image.
2072 * Return -pte_invalid if \@decoder is NULL.
2074 extern pt_export int pt_insn_set_image(struct pt_insn_decoder *decoder,
2077 /* Return a pointer to \@decoder's configuration.
2079 * Returns a non-null pointer on success, NULL if \@decoder is NULL.
2082 pt_insn_get_config(const struct pt_insn_decoder *decoder);
2103 * Returns -pte_invalid if \@decoder or \@time is NULL.
2106 extern pt_export int pt_insn_time(struct pt_insn_decoder *decoder,
2117 * Returns -pte_invalid if \@decoder or \@cbr is NULL.
2120 extern pt_export int pt_insn_core_bus_ratio(struct pt_insn_decoder *decoder,
2133 * Returns -pte_invalid if \@decoder or \@asid is NULL.
2135 extern pt_export int pt_insn_asid(const struct pt_insn_decoder *decoder,
2151 * Returns -pte_bad_context if the decoder encountered an unexpected packet.
2152 * Returns -pte_bad_opc if the decoder encountered unknown packets.
2153 * Returns -pte_bad_packet if the decoder encountered unknown packet payloads.
2154 * Returns -pte_bad_query if the decoder got out of sync.
2156 * Returns -pte_invalid if \@decoder or \@insn is NULL.
2158 * Returns -pte_nosync if \@decoder is out of sync.
2160 extern pt_export int pt_insn_next(struct pt_insn_decoder *decoder,
2165 * On success, provides the next event in \@event and updates \@decoder.
2173 * Returns -pte_invalid if \@decoder or \@event is NULL.
2176 extern pt_export int pt_insn_event(struct pt_insn_decoder *decoder,
2181 /* Block decoder. */
2214 * class is not available. The block decoder may choose to not provide
2253 /** Allocate an Intel PT block decoder.
2255 * The decoder will work on the buffer defined in \@config, it shall contain
2256 * raw trace data and remain valid for the lifetime of the decoder.
2258 * The decoder needs to be synchronized before it can be used.
2263 /** Free an Intel PT block decoder.
2265 * This will destroy the decoder's default image.
2267 * The \@decoder must not be used after a successful return.
2269 extern pt_export void pt_blk_free_decoder(struct pt_block_decoder *decoder);
2271 /** Synchronize an Intel PT block decoder.
2275 * If \@decoder has not been synchronized, yet, the search is started at the
2284 * Returns -pte_invalid if \@decoder is NULL.
2286 extern pt_export int pt_blk_sync_forward(struct pt_block_decoder *decoder);
2287 extern pt_export int pt_blk_sync_backward(struct pt_block_decoder *decoder);
2289 /** Manually synchronize an Intel PT block decoder.
2291 * Synchronize \@decoder on the syncpoint at \@offset. There must be a PSB
2298 * Returns -pte_eos if \@offset lies outside of \@decoder's trace buffer.
2299 * Returns -pte_eos if \@decoder reaches the end of its trace buffer.
2300 * Returns -pte_invalid if \@decoder is NULL.
2303 extern pt_export int pt_blk_sync_set(struct pt_block_decoder *decoder,
2306 /** Get the current decoder position.
2308 * Fills the current \@decoder position into \@offset.
2314 * Returns -pte_invalid if \@decoder or \@offset is NULL.
2315 * Returns -pte_nosync if \@decoder is out of sync.
2317 extern pt_export int pt_blk_get_offset(const struct pt_block_decoder *decoder,
2326 * Returns -pte_invalid if \@decoder or \@offset is NULL.
2327 * Returns -pte_nosync if \@decoder is out of sync.
2330 pt_blk_get_sync_offset(const struct pt_block_decoder *decoder,
2335 * The returned image may be modified as long as \@decoder is not running.
2337 * Returns a pointer to the traced image \@decoder uses for reading memory.
2338 * Returns NULL if \@decoder is NULL.
2341 pt_blk_get_image(struct pt_block_decoder *decoder);
2345 * Sets the image that \@decoder uses for reading memory to \@image. If \@image
2346 * is NULL, sets the image to \@decoder's default image.
2351 * Return -pte_invalid if \@decoder is NULL.
2353 extern pt_export int pt_blk_set_image(struct pt_block_decoder *decoder,
2356 /* Return a pointer to \@decoder's configuration.
2358 * Returns a non-null pointer on success, NULL if \@decoder is NULL.
2361 pt_blk_get_config(const struct pt_block_decoder *decoder);
2382 * Returns -pte_invalid if \@decoder or \@time is NULL.
2385 extern pt_export int pt_blk_time(struct pt_block_decoder *decoder,
2396 * Returns -pte_invalid if \@decoder or \@cbr is NULL.
2399 extern pt_export int pt_blk_core_bus_ratio(struct pt_block_decoder *decoder,
2412 * Returns -pte_invalid if \@decoder or \@asid is NULL.
2414 extern pt_export int pt_blk_asid(const struct pt_block_decoder *decoder,
2431 * Returns -pte_bad_context if the decoder encountered an unexpected packet.
2432 * Returns -pte_bad_opc if the decoder encountered unknown packets.
2433 * Returns -pte_bad_packet if the decoder encountered unknown packet payloads.
2434 * Returns -pte_bad_query if the decoder got out of sync.
2436 * Returns -pte_invalid if \@decoder or \@block is NULL.
2438 * Returns -pte_nosync if \@decoder is out of sync.
2440 extern pt_export int pt_blk_next(struct pt_block_decoder *decoder,
2445 * On success, provides the next event in \@event and updates \@decoder.
2453 * Returns -pte_invalid if \@decoder or \@event is NULL.
2456 extern pt_export int pt_blk_event(struct pt_block_decoder *decoder,