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