HEX
Server: LiteSpeed
System: Linux my-kul-web2054.main-hosting.eu 5.14.0-611.13.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 11 04:57:59 EST 2025 x86_64
User: u665686179 (665686179)
PHP: 8.2.30
Disabled: system, exec, shell_exec, passthru, mysql_list_dbs, ini_alter, dl, symlink, link, chgrp, leak, popen, apache_child_terminate, virtual, mb_send_mail
Upload Files
File: //lib/python3.9/site-packages/bcc/__pycache__/utils.cpython-39.opt-1.pyc
a

u*�h�@s�ddlZddlZddlZddlZddlZddlmZdd�Zdd�Z	dd	�Z
d
d�Ze��Z
ejdfdd
�ZGdd�de�Zddd�ZdZdd�ZGdd�de�ZdS)�N�)�libcCs�g}t|d���}|��}|�d�D]^}|�d�}|dkrH|�t|��q"t|d|��}t||dd��}|�t||d��q"Wd�n1s�0Y|S)N�r�,�-���r)�open�read�split�find�append�int�extend�range)�pathZcpus�fZcpus_range_strZ	cpu_rangeZrangeop�start�end�r�-/usr/lib/python3.9/site-packages/bcc/utils.py�_read_cpu_ranges
4rcCstd�S)Nz/sys/devices/system/cpu/online�rrrrr�get_online_cpus$srcCstd�S)Nz /sys/devices/system/cpu/possiblerrrrr�get_possible_cpus'srcCs.t�|�}t�|tj�j��}||vr*|SdS�N)rZbcc_procutils_language�ct�castZc_char_p�value�decode)Z
candidates�pid�res�languagerrr�detect_language*s
r"cCs8t|d�r|jn|}|�|�|r,|�d�|��dS)zA
    printb(s)

    print a bytes object to stdout and flush
    �buffer�
N)�hasattrr#�write�flush)�s�file�nl�bufrrr�printb1s


r,c@s(eZdZdZdd�Zdd�Zdd�ZdS)	�	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).
    cCs&tjddkr||_n|�t�|_dS)Nr�)�sys�version_infor(r�FILESYSTEMENCODING)�self�argrrr�__init__FszArgString.__init__cCs|j�t�Sr)r(�encoder1�r2rrr�	__bytes__LszArgString.__bytes__cCs|jSr)r(r6rrr�__str__OszArgString.__str__N)�__name__�
__module__�__qualname__�__doc__r4r7r8rrrrr->sr-c	CsDt|d�r|ntj}tjt�d�|d�|�t�|||||��dS)Nr&�)rr))	r%r/�stderr�	traceback�print_stack�	_getframer&�warnings�
formatwarning)�message�category�filename�linenor)�line�logrrr�warn_with_tracebackRsrJFcCs@|dur|Strn*t|�tur<t�d|td�t|���S|S)Nznot a bytes object: %rr=)�
_strict_bytes�type�bytesrB�warn�DeprecationWarningr-r7)r3rrr�_assert_is_bytes[srPc@s$eZdZedd��Zedd��ZdS)�
StrcmpRewritecCs"d|}|d|||f7}||fS)Nzstreq_%da~
static inline bool %s(char const *ignored, uintptr_t str) {
        char needle[] = %s;
        char haystack[sizeof(needle)];
        %s(&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�fnamerrr�_generate_streq_functionfs
�
z&StrcmpRewrite._generate_streq_functionc
Cs�|r
d}nd}t�||�}|D]V}|�d�}	d}
|sF|�d���|vrJd}
t�|	|
||�\}}|d7}|�d|d�}q|||d�}|S)	NzSTRCMP\("([^"]+)\",(.+?)\)zSTRCMP\(("[^"]+\"),(.+?)\)rZbpf_probe_readr=Zbpf_probe_read_userZSTRCMP)�exprrTrU)�re�finditer�group�striprQrW�replace)
rXZbin_cmpZis_userZprobe_user_listrTrUZ	STRCMP_RE�matches�matchrRrSrVZrdictrrr�rewrite_exprys,
���zStrcmpRewrite.rewrite_exprN)r9r:r;�staticmethodrWr`rrrrrQes
rQ)NN)Zctypesrr/r?rBrYZlibbccrrrrr"�getfilesystemencodingr1�stdoutr,�objectr-rJrKrPrQrrrr�<module>s