HOME


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

f����ddlZddlZddlZddlZddlZddlmZd�Zd�Z	d�Z
d�Zej�Z
ejdfd�ZGd	�d
e�Zdd�ZdZd
�ZGd�de�Zy)�N�)�libc	�x�g}t|d�5}|j�}|jd�D]p}|jd�}|dk(r|j	t|���4t|d|�}t||dzd�}|j
t||dz���r	ddd�|S#1swY|SxYw)N�r�,�-���r)�open�read�split�find�append�int�extend�range)�path�cpus�f�cpus_range_str�	cpu_range�rangeop�start�ends        �+/usr/lib/python3/dist-packages/bcc/utils.py�_read_cpu_rangers���
�D�	
�d�C��	1�A������'�-�-�c�2�	1�I��n�n�S�)�G��"�}����C�	�N�+��I�h�w�/�0���)�G�A�I�J�/�0�����E�%��Q��/�0�	1�	1��K�	1��K�s�BB/�/B9c��td�S)Nz/sys/devices/system/cpu/online�r��r�get_online_cpusr $s���;�<�<rc��td�S)Nz /sys/devices/system/cpu/possiblerrrr�get_possible_cpusr"'s���=�>�>rc��tj|�}tj|tj�j
j
�}||vr|SdS�N)r�bcc_procutils_language�ct�cast�c_char_p�value�decode)�
candidates�pid�res�languages    r�detect_languager/*sG��

�
$�
$�S�
)�C��w�w�s�B�K�K�(�.�.�5�5�7�H��:�-�8�7�4�7rc��t|d�r|jn|}|j|�|r|jd�|j�y)zA
    printb(s)

    print a bytes object to stdout and flush
    �buffer�
N)�hasattrr1�write�flush)�s�file�nl�bufs    r�printbr:1s;��!��x�0�$�+�+�d�C��I�I�a�L�	��	�	�%���J�J�Lrc�"�eZdZdZd�Zd�Zd�Zy)�	ArgStringz�
    ArgString(arg)

    encapsulate a system argument that can be easily coerced to a bytes()
    object, which is better for comparing to kernel or probe data (which should
    never be en/decode()'ed).
    c�t�tjddk\r||_y|jt�|_y)Nr�)�sys�version_infor6r*�FILESYSTEMENCODING)�self�args  r�__init__zArgString.__init__Fs-�����A��!�#��D�F��Z�Z� 2�3�D�Frc�@�|jjt�Sr$)r6�encoderA�rBs r�	__bytes__zArgString.__bytes__Ls���v�v�}�}�/�0�0rc��|jSr$)r6rGs r�__str__zArgString.__str__Os���v�v�
rN)�__name__�
__module__�__qualname__�__doc__rDrHrJrrrr<r<>s���4�1�rr<c	���t|d�r|ntj}tjtj
d�|��|j
tj|||||��y)Nr4�)rr7)	r3r?�stderr�	traceback�print_stack�	_getframer4�warnings�
formatwarning)�message�category�filename�linenor7�line�logs       r�warn_with_tracebackr]RsN���$��(�$�c�j�j�C�
���C�M�M�!�,�3�7��I�I�h�$�$�W�h��&�$�O�PrFc���|�|Strt|�tus
Jd|z��|St|�tur7tjd|zt
d�t
|�j�S|S)Nznot a bytes object: %rrP)�
_strict_bytes�type�bytesrU�warn�DeprecationWarningr<rH)rCs r�_assert_is_bytesrd[sp��
�{��
���C�y�E�!�A�#;�c�#A�A�!��J�
�c��%�	��
�
�.��4�6H�!�L���~�'�'�)�)��Jrc�,�eZdZed��Zed��Zy)�
StrcmpRewritec�2�d|z}|d|�d|�d|�d�z
}||fS)Nzstreq_%dz
static inline bool z?(char const *ignored, uintptr_t str) {
        char needle[] = z1;
        char haystack[sizeof(needle)];
        z�(&haystack, sizeof(haystack), (void *)str);
        for (int i = 0; i < sizeof(needle) - 1; ++i) {
                if (needle[i] != haystack[i]) {
                        return false;
                }
        }
        return true;
}
        r)�string�probe_read_func�streq_functions�probeid�fnames     r�_generate_streq_functionz&StrcmpRewrite._generate_streq_functionfs3���W�$����f�o�/�	/���o�%�%rc�0�|rd}nd}tj||�}|D]m}|jd�}	d}
|s!|jd�j�|vrd}
tj|	|
||�\}}|dz
}|j
d|d�}�o|||d�}|S)	NzSTRCMP\("([^"]+)\",(.+?)\)zSTRCMP\(("[^"]+\"),(.+?)\)r�bpf_probe_readrP�bpf_probe_read_user�STRCMP)�exprrjrk)�re�finditer�group�striprfrm�replace)
rr�bin_cmp�is_user�probe_user_listrjrk�	STRCMP_RE�matches�matchrhrirl�rdicts
             r�rewrite_exprzStrcmpRewrite.rewrite_exprys����8�I�7�I��+�+�i��.���	4�E��[�[��^�F�.�O�����A��$�$�&�/�9�&;�O�%2�%K�%K�,2�O�,;�W�&F�"�E�?�
�q�L�G��<�<��%��3�D�	4��.��
��
�rN)rKrLrM�staticmethodrmrrrrrfrfes(���&��&�$���rrf)NN)�ctypesr&r?rRrUrs�libbccrrr r"r/�getfilesystemencodingrA�stdoutr:�objectr<r]r_rdrfrrr�<module>r�sx���
���	���=�?�8�
/�S�.�.�0���:�:�!�����(Q��
��.�F�.r