HOME


Mini Shell 1.0
DIR: /usr/lib/python3/dist-packages/bcc/__pycache__/
Upload File :
Current File : //usr/lib/python3/dist-packages/bcc/__pycache__/disassembler.cpython-312.pyc
�

f�P���ddlmZddlZddlmZGd�dej�ZGd�dej�ZGd	�d
ej�Z
Gd�dej�ZGd
�d�Zdd�Z
d�Zd�ZGd�d�Zdd�Zy)�)�linesepN�)�get_table_type_namec�D�eZdZdejfdej
fgZy)�OffsetUnion�offsetu�offsetN)�__name__�
__module__�__qualname__�ct�c_uint16�c_int16�_fields_���2/usr/lib/python3/dist-packages/bcc/disassembler.pyrrs���B�K�K�(�8�R�Z�Z�*@�A�Hrrc�D�eZdZdejfdej
fgZy)�ImmUnion�immu�immN)r
rrr
�c_uint32�c_int32rrrrrrs������%��r�z�z�':�;�Hrrc�v�eZdZdZdZdejfdejdfdejdfdefdefgZ	y	)
�BPFInstrFieldsr)�o�i�opcode�dst��srcrrN)
r
rr�_pack_�_anonymous_r
�c_uint8rrrrrrrrsJ��
�F��K��2�:�:�&���
�
�A�&���
�
�A�&��k�"��h��	!�Hrrc�8�eZdZdZdZdefdejfgZy)�BPFInstrr�s�instrN)	r
rrr"r#rr
�c_uint64rrrrr&r&"s$��
�F��K��n�%�����'=�>�Hrr&c�X�eZdZdZgd�Zidd�dd�dd�d	d
�dd�d
d�dd�dd�dd�dd�dd�dd�dd�dd�dd �d!d"�d#d$�id%d&�d'd(�d)d*�d+d,�d-d.�d/d0�d1d2�d3d4�d5d6�d7d8�d9d:�d;d<�d=d>�d?d@�dAdB�dCdD�dEdF��idGdH�dIdJ�dKdL�dMdN�dOdP�dQdR�dSdT�dUdV�dWdX�dYdZ�d[d\�d]d^�d_d`�dadb�dcdd�dedf�dgdh��ididj�dkdl�dmdn�dodp�dqdr�dsdt�dudv�dwdx�dydz�d{d|�d}d~�dd��d�d��d�d��d�d��d�d��d�d���id�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d���d�d�d�d�d�d�d�d�d�d�d�d�d���Zed���Zy�)��
BPFDecoderr)]�unspec�map_lookup_elem�map_update_elem�map_delete_elem�
probe_read�ktime_get_ns�trace_printk�get_prandom_u32�get_smp_processor_id�skb_store_bytes�l3_csum_replace�l4_csum_replace�	tail_call�clone_redirect�get_current_pid_tgid�get_current_uid_gid�get_current_comm�get_cgroup_classid�
skb_vlan_push�skb_vlan_pop�skb_get_tunnel_key�skb_set_tunnel_key�perf_event_read�redirect�get_route_realm�perf_event_output�skb_load_bytes�get_stackid�	csum_diff�skb_get_tunnel_opt�skb_set_tunnel_opt�skb_change_proto�skb_change_type�skb_under_cgroup�get_hash_recalc�get_current_task�probe_write_user�current_task_under_cgroup�skb_change_tail�
skb_pull_data�csum_update�set_hash_invalid�get_numa_node_id�skb_change_head�xdp_adjust_head�probe_read_str�get_socket_cookie�get_socket_uid�set_hash�
setsockopt�skb_adjust_room�redirect_map�sk_redirect_map�sock_map_update�xdp_adjust_meta�perf_event_read_value�perf_prog_read_value�
getsockopt�override_return�sock_ops_cb_flags_set�msg_redirect_map�msg_apply_bytes�msg_cork_bytes�
msg_pull_data�bind�xdp_adjust_tail�skb_get_xfrm_state�	get_stack�skb_load_bytes_relative�
fib_lookup�sock_hash_update�msg_redirect_hash�sk_redirect_hash�lwt_push_encap�lwt_seg6_store_bytes�lwt_seg6_adjust_srh�lwt_seg6_action�	rc_repeat�
rc_keydown�
skb_cgroup_id�get_current_cgroup_id�get_local_storage�sk_select_reuseport�skb_ancestor_cgroup_id�
sk_lookup_tcp�
sk_lookup_udp�
sk_release�
map_push_elem�map_pop_elem�
map_peek_elem�
msg_push_data�msg_pop_data�rc_pointer_relr )�add32�dstimm�+=� �)�ja�joffN�@�)�addr�r�r��)r��dstsrcr�r��)r�r�r�r��)�sub32r��-=r��)�jeq�
jdstimmoff�==r��)�subr�r�r��)�lddwr�Nr��)r�r�r�r��)r��
jdstsrcoffr�r��)r�r�r�r�r�)�ldabsw�ldabsNr��$)�mul32r��*=r��%)�jgtr��>r��')�mulr�r�r��()�ldabshr�N��,)r�r�r�r��-)r�r�r�r��/)r�r�r�r��0)�ldabsbr�N��4)�div32r��/=r��5)�jger��>=r��7)�divr�r�r��8)�ldabsdwr�Nr��<)r�r�r�r��=)r�r�r�r��?)r�r�r�r�r�)�ldindw�ldindNr��D)�or32�	dstimm_bw�|=r��E)�jsetr��&r��G)�orr�r�r��H)�ldindhr�Nr��L)r�r�r�r��M)r�r�r�r��O)r�r�r�r��P)�ldindbr�Nr��T)�and32r��&=r��U)�jner��!=r��W)�andr�r�r��X)�ldinddwr�Nr��\)r�r�r�r��])r�r�r�r��_)r�r�r�r��a)�ldxw�
ldstsrcoffNr��b)�stw�
sdstoffimmNr��c)�stxw�
sdstoffsrcNr��d)�lsh32r��<<=r��e)�jsgtr��s>r��g)�lshr�r�r��i)�ldxhr�Nr��j)�sthr�Nr��k)�stxhr�Nr��l)r�r�r�r��m)r�r�r�r��o)r�r�r�r��q)�ldxbr�Nr��r)�stbr�Nr��s)�stxbr�Nr��t)�rsh32r��>>=r��u)�jsger��s>=r��w)�rshr�rr��y)�ldxdwr�Nr��z)�stdwr�Nr��{)�stxdwr�Nr��|)rr�rr��})rr�r	r��)rr�rr��)�neg32r�~r��)�callrNr��)�negrrr��)�mod32r��%=r��)�exitr Nr��)�modr�rr��)rr�rr��)r"r�rr��)�xor32r��^=r��)�jltr��<r��)�xorr�r'r��)r&r�r'r��)r)r�r*r��)r,r�r'r��)�mov32r��=r��)�jler��<=r��)�movr�r2r�)r1r�r2r�)r4r�r5r�)r7r�r2r�)�arsh32r��s>>=r�)�jsltr��s<r�)�arshr�r9r�)r8r�r9r�)r:r�r;r�)r<r�r9r�)�jsler�zs<=r�)�endian32r��endianr�)���������������������c��	|j|j\}}}}|dk(rd|j||jfzdfS|dk(rd|j||jfzdfS|dk(r&dd|j
z||j
zd	zfzdfS|d
k(rd|j||jfzdfS|dk(r=d
|j||jd|j
z||j
zd	zfzdfS|dk(r=d|j||jd|j
z||j
zd	zfzdfS|dk(rh|�td��|jdk(rd|j|jfzd	fS|jdz|jz}d|j|fzd	fS|dk(rd|�d|j�d�dfS|dk(r!d||jd|jzfzdfS|dk(r,d|j||jd|j
zfzdfS|dk(r,d||jd|j
z|jfzdfS|dk(r,d ||jd|j
z|jfzdfS|d!k(rd"|j|||jfzdfS|d#k(r[|j|jk7r,	d$||j|j|jfzdfS|�d&d|jz��dfS|d'k(r|dfStd(��#t$rd%||jfzdfcYSwxYw#t$rd)|jzcYSwxYw)*Nr�z	r%d %s %drr�zr%d %s 0x%xr�zgoto %s <%d>z%+drr�z
r%d %s r%dr�zif r%d %s %d goto pc%s <%d>r�zif r%d %s r%d goto pc%s <%d>r�z1lddw requires two instructions to be disassembledzr%d = <map at fd #%d>r�z
r%d = 0x%xr�zr0 = *(uz*)skb[�]r�zr0 = *(u%d*)skb[r%d %s]r�zr%d = *(u%d*)(r%d %s)r�z*(u%d*)(r%d %s) = %dr�z*(u%d*)(r%d %s) = r%drzr%d = %s (u%s)r%drz%s bpf_%s#%dz%s <unknown helper #%d>� r zunknown opcode classzunknown <0x%x>)�opcodesrrrrr	r!�	Exception�BPF_PSEUDO_CALL�bpf_helpers�
IndexError�KeyError)	�clsr�w�w1�name�opclass�op�bitsrs	         r�decodezBPFDecoder.decode�s���F	1�&)�k�k�!�(�(�&;�#�D�'�2�t��(�"�"�a�e�e�R����%7�7��:�:��K�'�$����r�1�6�6�':�:�A�=�=��F�"�%��!�(�(�);�)*�Q�X�X���)9�);�;�<=�>�>��H�$�#�q�u�u�b�!�%�%�&8�8�!�;�;��L�(�4����r�1�5�5�6;�q�x�x�6H�67�!�(�(�l�Q�6F�8H�H�IJ�K�K��L�(�5�����A�E�E�7<����7I�78�1�8�8�|�a�7G�9I�I�JK�L�L��F�"��:�#�$W�X�X��6�6�Q�;�2�a�e�e�Q�U�U�^�C�Q�F�F��v�v��|�q�u�u�,��#�q�u�u�c�l�2�A�5�5��G�#�04�a�e�e�<�a�?�?��G�#�0�D�!�%�%�49�Q�U�U�O�4E�E�FG�H�H��L�(�.�!�%�%��q�u�u�27�1�8�8�2D�2F�F�GH�I�I��L�(�-��q�u�u�16�!�(�(�1C�Q�U�U�1L�L�MN�O�O��L�(�.�$����27�1�8�8�2D�a�e�e�2M�M�NO�P�P��E�!�*�a�e�e�R��q�u�u�-E�E�q�H�H��F�"��5�5�C�/�/�/�K�-��s���q�v�v�7N�PQ�PV�PV�0W�W�YZ�Z�Z�#'������8�!�;�;��F�"��Q�w��� 6�7�7��
&�K�8�B����<�G��J�J�K���	1�#�q�x�x�0�0�	1�s��AL2�"L2�&*L2�"L2�4AL2�6AL2�8=L2�6.L2�%L2�?%L2�%0L2�0L2�0L2�8#L2�L2�;*L�&L2�<L2�L2�L/�,L2�.L/�/L2�2M
�M
N)r
rrrQrRrO�classmethodr\rrrr+r+'s����O�\%�K�|`@�t�=�`@��=�`@��=�`@��=�`@��=�	`@�
�=�`@��=�
`@��=�`@��=�`@��=�`@��=�`@��=�`@��=�`@��=�`@��=�`@��=�`@� �=�!`@�"�=�#`@�$�=�%`@�&�=�'`@�(�=�)`@�*�=�+`@�,�=�-`@�.�=�/`@�0�=�1`@�2�=�3`@�4�=�5`@�6�=�7`@�8�=�9`@�:�=�;`@�<�=�=`@�>�=�?`@�@�=�A`@�B�=�C`@�D�=�E`@�F�=�G`@�H�=�I`@�J�=�K`@�L�=�M`@�N�=�O`@�P�=�Q`@�R�=�S`@�T�=�U`@�V�=�W`@�X�=�Y`@�Z�=�[`@�\�=�]`@�^�=�_`@�`�=�a`@�b�=�c`@�d�=�e`@�f�=�g`@�h�=�i`@�j�=�k`@�l�=�m`@�n�=�o`@�p�=�q`@�r�=�s`@�t�=�u`@�v�=�w`@�x�=�y`@�z�=�{`@�|�=�}`@�~�=�`@�@�=�A`@�B�=�C`@�D�=�E`@�F�=�G`@�H�=�I`@�J�=�K`@�L�=�M`@�N�=�O`@�P�=�Q`@�R�=�S`@�T�=�U`@�V�=�W`@�X�=�Y`@�Z�=�[`@�\�=�]`@�^�=�_`@�`�=�a`@�b�=�c`@�d�=�e`@�f�=�g`@�h�=�i`@�j>�=�=�=�=�=�=�=�=�=�=�=�A`@�G�D�G1��G1rr+c�^�tj|||�\}}d||j|fz|fS)Nz%4d: (%02x) %s)r+r\r)r�w0rWr(�skips     r�disassemble_instructionra3s5���#�#�A�r�2�.�K�E�4��q�"�)�)�U�3�3�T�9�9rc��tjtj|�tjt��}tt
|�dz�}|d}d}g}td|�D]:}||}|r|dz}d|z}nt|dz
||�\}}|j|�|}�<t|dz
|d�\}}|j|�|S)Nr�rrz%4d:      (64-bit upper word))
r
�cast�c_char_p�POINTERr&�int�len�rangera�append)	�bpfstr�ptr�numinstrr_r`�
instr_listrrW�	instr_strs	         r�disassemble_strro7s���
�'�'�"�+�+�f�%�r�z�z�(�';�
<�C��3�v�;��?�#�H�	�Q��B��D��J�
�1�h�
���
��V����A�I�D�7�1�=�I�5�a�!�e�R��D�O�I�t����)�$�
���.�h��l�B��E�O�I�t����i� ��rc�T�d|zg}|t|�z
}tj|�S)NzDisassemble of BPF program %s:)ror�join)�	func_namerjrms   r�disassemble_progrsJs-��2�i�@�A�J��/�&�)�)�J��<�<�
�#�#rc�,�eZdZiejd�ej
d�ejd�ejd�ejd�ejd�ejd�ejd�ejd	�ejd
�ejd�ejd�ej d
�ej"d�ej$d�ej&dzd�ej(dzd�Zed��Zedd��Zedd��Zed��Zedd��Zy)�
MapDecoder�_Bool�char�wchar_tz
unsigned char�shortzunsigned shortrfzunsigned int�longz
unsigned longz	long longzunsigned long long�float�doublezlong double��__int128zunsigned __int128c�x�	t|tj�rd}|St|tj�rd}|St|tj�r7|j
|jdzt|j�zdz}|S|j
|}	|S#t$rt|�}Y|SwxYw)N�struct�union�[rM)
�
issubclassr
�	Structure�Union�Array�	ctype2str�_type_�str�_length_rT)rU�t�field_type_names   r�get_ct_namezMapDecoder.get_ct_namebs���
	%��!�R�\�\�*�"*�����A�r�x�x�(�")����
�A�r�x�x�(�"%�-�-����"9�C�"?�#�a�j�j�/�"Q�TW�"W��
��#&�-�-��"2������	%�!�!�f�O���	%�s"�B!�B!�AB!�B!�!B9�8B9Nc�*�|sy|�d|||fzSd||fzS)N�z[%d,%d +%d bit]z	[%d +%d] r)rUr	�size�enabled�	bitoffsets     r�format_size_infozMapDecoder.format_size_infoqs/����� �$��	�4�'@�@�@��f�d�^�+�+rc
��g}	|jD]�\}}t|tj�xst|tj�}|j|�}	t
||�j}
tj|�}|j||
z||�}|rL|j|�|�|	�d��||j||dz||
z�z
}|j|�d|�d����|j|�|�|	�d|�d����	|S#t$r�d}
|jD]�}t|�dk(rE|\}}}|j|�}	|j||
||�}|jd|||	||fz�n{|\}}|j|�}	t
||�j}
tj|�}d}d}
|j||
z||�}|j|�|�|	�d|�d��||
z
}|
|z
}
��Y|SwxYw)	Nz {�  z} �;rNr�z
%s%s%s %s:%d;)rr�r
r�r�r��getattrr	�sizeofr�ri�print_ct_map�
ValueErrorrg)rUr��indentr	�sizeinfo�	map_lines�
field_name�
field_type�
is_structuredr��field_offset�
field_size�sizedesc�offset_bits�field�
field_bitss                rr�zMapDecoder.print_ct_mapysG���	�.	*�*+�*�*�
B�&�
�J�!+�J����!E�"B�!+�J����!A��"%�/�/�*�"=��&�q�*�5�<�<���Y�Y�z�2�
��/�/���0E�0:�H�F�� ��$�$�6�8�_�%U�V���!1�!1�*�28�4�-�28�<�2G�"I�I�I��$�$�&�*�%E�F��$�$�V�X�5D�5?�&A�B�
B�\���9�	*��K����
*���u�:��?�9>�6�J�
�J�&)�o�o�j�&A�O�"�3�3�F�K�4<�j� J�H��$�$�_���8G�8B�8B�8D�&D�E�.3�*�J�
�&)�o�o�j�&A�O�#*�1�j�#9�#@�#@�L�!#���:�!6�J�!"�J�"#�K�"�3�3�F�\�4I�4>�� J�H��$�$�V�X�5D�5?�&A�B��l�*�F��z�)��1
*�2��9	*�s�DD�C/G?�>G?c��t|tj�xst|tj�}|j	|�}|r3d|zg}||j|d|��z
}|j
d|z�|Sd|�d|�d�g}|S)Nz  %s {z    �r�z  } %s;r�rNr�)r�r
r�r�r�r�ri)rUr�r�r�r��	type_namer�s       r�print_map_ctypezMapDecoder.print_map_ctype�s���#�A�r�|�|�4�1�#�A�r�x�x�0�	��O�O�A�&�	��!�Y�/�0�I���)�)�!�V�h�)�G�G�I����Y�*�5�6���
�
(1�*�=�>�I��rc���d|||j|jfzg}||j|jd|��z
}||j|jd|��z
}tj|�S)Nz-Layout of BPF map %s (type %s, FD %d, ID %d):�keyr��value)�map_fd�map_idr��Key�Leafrrq)rU�map_name�map_obj�map_typer�r�s      r�
decode_mapzMapDecoder.decode_map�s~��D��HP�HO���HO���HX�X�Y�	�	�S�(�(����e�h�(�O�O�	��S�(�(����w��(�R�R�	��|�|�I�&�&r)FN)r�rF�F)r
rrr
�c_bool�c_char�c_wchar�c_ubyte�c_short�c_ushort�c_int�c_uint�c_long�c_ulong�
c_longlong�c_ulonglong�c_float�c_double�c_longdouble�c_int64r)r�r]r�r�r�r�r�rrrruruOs���9����H�9����G�9����Z�9����-�9����X�	9�
���/�9����6�
9����O�9����G�9����-�9�����9����!6�9����X�9����i�9����.�9����a���9� ���q��"6�!9�I�$�����,��,��1��1�f�
��
��'��'rruc�J�t|�}tj||||��S)Nr�)rrur�)r�r�r�r��
map_type_names     rr�r��s&��'��1�M�� � ��7�M�H� �U�Ur)Nr�)�osr�ctypesr
�tablerr�rrr�rr&r+rarorsrur�rrr�<module>r�s�����&�B�"�(�(�B�<�r�x�x�<�!�R�\�\�!�?�r�x�x�?�
J1�J1�X:��&$�
s'�s'�jVr