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

Lines Matching refs:packet

208 /* Encode an IP packet.
210 * Write an IP packet with opcode \@opc and payload from \@packet if there is
216 * Returns -pte_internal if \@encoder or \@packet is NULL.
217 * Returns -pte_invalid if \@packet.ipc is not valid.
220 const struct pt_packet_ip *packet)
226 if (!encoder || !packet)
229 size = pt_ipc_size(packet->ipc);
239 ipc = (uint8_t) (packet->ipc << pt_opm_ipc_shr);
245 encoder->pos = pt_encode_int(pos, packet->ip, size);
249 int pt_enc_next(struct pt_encoder *encoder, const struct pt_packet *packet)
254 if (!encoder || !packet)
258 switch (packet->type) {
311 return pt_encode_ip(encoder, pt_opc_fup, &packet->payload.ip);
314 return pt_encode_ip(encoder, pt_opc_tip, &packet->payload.ip);
318 &packet->payload.ip);
322 &packet->payload.ip);
327 if (packet->payload.tnt.bit_size >= 7)
334 stop = packet->payload.tnt.bit_size + pt_opm_tnt_8_shr;
336 (packet->payload.tnt.payload << pt_opm_tnt_8_shr);
351 if (packet->payload.tnt.bit_size >= pt_pl_tnt_64_bits)
354 stop = 1ull << packet->payload.tnt.bit_size;
355 tnt = packet->payload.tnt.payload;
375 switch (packet->payload.mode.leaf) {
382 if (packet->payload.mode.bits.exec.csl)
385 if (packet->payload.mode.bits.exec.csd)
392 if (packet->payload.mode.bits.tsx.intx)
395 if (packet->payload.mode.bits.tsx.abrt)
414 cr3 = packet->payload.pip.cr3;
418 if (packet->payload.pip.nr)
435 pos = pt_encode_int(pos, packet->payload.tsc.tsc,
448 *pos++ = packet->payload.cbr.ratio;
461 ctc = packet->payload.tma.ctc;
462 fc = packet->payload.tma.fc;
483 *pos++ = packet->payload.mtc.ctc;
492 ctc = (uint8_t) packet->payload.cyc.value;
498 ctc = packet->payload.cyc.value;
547 packet->payload.vmcs.base >> pt_pl_vmcs_shl,
561 pos = pt_encode_int(pos, packet->payload.mnt.payload,
574 ext = packet->payload.exstop.ip ?
591 pos = pt_encode_int(pos, packet->payload.mwait.hints,
593 pos = pt_encode_int(pos, packet->payload.mwait.ext,
607 payload |= ((uint64_t) packet->payload.pwre.state <<
610 payload |= ((uint64_t) packet->payload.pwre.sub_state <<
614 if (packet->payload.pwre.hw)
633 payload |= ((uint64_t) packet->payload.pwrx.last <<
636 payload |= ((uint64_t) packet->payload.pwrx.deepest <<
640 if (packet->payload.pwrx.interrupt)
642 if (packet->payload.pwrx.store)
644 if (packet->payload.pwrx.autonomous)
659 plc = packet->payload.ptw.plc;
673 if (packet->payload.ptw.ip)
678 pos = pt_encode_int(pos, packet->payload.ptw.payload, size);
694 struct pt_packet packet;
696 packet.type = ppt_pad;
698 return pt_enc_next(encoder, &packet);
703 struct pt_packet packet;
705 packet.type = ppt_psb;
707 return pt_enc_next(encoder, &packet);
712 struct pt_packet packet;
714 packet.type = ppt_psbend;
716 return pt_enc_next(encoder, &packet);
722 struct pt_packet packet;
724 packet.type = ppt_tip;
725 packet.payload.ip.ip = ip;
726 packet.payload.ip.ipc = ipc;
728 return pt_enc_next(encoder, &packet);
733 struct pt_packet packet;
735 packet.type = ppt_tnt_8;
736 packet.payload.tnt.bit_size = (uint8_t) size;
737 packet.payload.tnt.payload = tnt;
739 return pt_enc_next(encoder, &packet);
744 struct pt_packet packet;
746 packet.type = ppt_tnt_64;
747 packet.payload.tnt.bit_size = (uint8_t) size;
748 packet.payload.tnt.payload = tnt;
750 return pt_enc_next(encoder, &packet);
756 struct pt_packet packet;
758 packet.type = ppt_tip_pge;
759 packet.payload.ip.ip = ip;
760 packet.payload.ip.ipc = ipc;
762 return pt_enc_next(encoder, &packet);
768 struct pt_packet packet;
770 packet.type = ppt_tip_pgd;
771 packet.payload.ip.ip = ip;
772 packet.payload.ip.ipc = ipc;
774 return pt_enc_next(encoder, &packet);
780 struct pt_packet packet;
782 packet.type = ppt_fup;
783 packet.payload.ip.ip = ip;
784 packet.payload.ip.ipc = ipc;
786 return pt_enc_next(encoder, &packet);
791 struct pt_packet packet;
793 packet.type = ppt_pip;
794 packet.payload.pip.cr3 = cr3;
795 packet.payload.pip.nr = (flags & pt_pl_pip_nr) != 0;
797 return pt_enc_next(encoder, &packet);
802 struct pt_packet packet;
804 packet.type = ppt_ovf;
806 return pt_enc_next(encoder, &packet);
811 struct pt_packet packet;
813 packet.type = ppt_mode;
814 packet.payload.mode.leaf = pt_mol_exec;
815 packet.payload.mode.bits.exec = pt_set_exec_mode(mode);
817 return pt_enc_next(encoder, &packet);
823 struct pt_packet packet;
825 packet.type = ppt_mode;
826 packet.payload.mode.leaf = pt_mol_tsx;
829 packet.payload.mode.bits.tsx.intx = 1;
831 packet.payload.mode.bits.tsx.intx = 0;
834 packet.payload.mode.bits.tsx.abrt = 1;
836 packet.payload.mode.bits.tsx.abrt = 0;
838 return pt_enc_next(encoder, &packet);
843 struct pt_packet packet;
845 packet.type = ppt_tsc;
846 packet.payload.tsc.tsc = tsc;
848 return pt_enc_next(encoder, &packet);
853 struct pt_packet packet;
855 packet.type = ppt_cbr;
856 packet.payload.cbr.ratio = cbr;
858 return pt_enc_next(encoder, &packet);
863 struct pt_packet packet;
865 packet.type = ppt_tma;
866 packet.payload.tma.ctc = ctc;
867 packet.payload.tma.fc = fc;
869 return pt_enc_next(encoder, &packet);
874 struct pt_packet packet;
876 packet.type = ppt_mtc;
877 packet.payload.mtc.ctc = ctc;
879 return pt_enc_next(encoder, &packet);
884 struct pt_packet packet;
886 packet.type = ppt_cyc;
887 packet.payload.cyc.value = ctc;
889 return pt_enc_next(encoder, &packet);
894 struct pt_packet packet;
896 packet.type = ppt_stop;
898 return pt_enc_next(encoder, &packet);
903 struct pt_packet packet;
905 packet.type = ppt_vmcs;
906 packet.payload.vmcs.base = payload;
908 return pt_enc_next(encoder, &packet);
913 struct pt_packet packet;
915 packet.type = ppt_mnt;
916 packet.payload.mnt.payload = payload;
918 return pt_enc_next(encoder, &packet);