HEX
Server: LiteSpeed
System: Linux shams.tasjeel.ae 5.14.0-611.5.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Tue Nov 11 08:09:09 EST 2025 x86_64
User: infowars (1469)
PHP: 8.2.29
Disabled: NONE
Upload Files
File: //usr/lib/python3.9/site-packages/usb/backend/__pycache__/libusb1.cpython-39.pyc
a

j��Y��@s�ddlTddlZddlZddlZddlmZddlmZddl	m
Z
ddlZddlZddl
mZddlZdZgd�Ze�d�ZdZd	Zd
ZdZdZdZd
ZdZdZdZdZdZdZ dZ!dZ"dZ#dZ$dZ%edededededededed e d!e!d"e"d#e#d$e$d%e%d&iZ&ddeej'�(d'd�eej'�(d(d�eej'�(d)d�eej'�(d*d�eej'�(d+d�eej'�(d,d�eej'�(d-d�e ej'�(d.d�e!ej'�(d/d�e"ej'�(d0d�e#ej'�(d1d�e$ej'�(d2d�e%diZ)dZ*d	Z+d
Z,dZ-d3Z.d4Z/d5Z0e*de+d6e,d7e-d8e.d9e/d:e0d;iZ1e*de+ej'�(d'd�e,ej'�(d-d�e-ej'�(d<d�e.ej'�(d'd�e/ej'�(d*d�e0ej'�(d.d�iZ2d=d>�Z3Gd?d@�d@e4�Z5GdAdB�dBe4�Z6GdCdD�dDe4�Z7GdEdF�dFe4�Z8GdGdH�dHe4�Z9GdIdJ�dJe4�Z:e;Z<GdKdL�dLe4�Z=e>e=�Z?e@de?�ZAdMe<fdNeBfdOeBfdPeBfdQeCfdReDfdSeDfdTeDfdUeAfdVeEfdWe;fdXeDfdYe:fg
e=_FdZd[�ZGdaHdrd\d]�ZId^d_�ZJd`da�ZKGdbdc�dce
jL�ZMGddde�deeN�ZOGdfdg�dge
jL�ZPGdhdi�die
jL�ZQGdjdk�dkeN�ZRGdldm�dme
jL�ZSGdndo�doejTjU�ZVdsdpdq�ZWdS)t�)�*N)�methodtrace)�USBErrorzWander Lairson Costa)�get_backendZ
LIBUSB_SUCESS�LIBUSB_ERROR_IO�LIBUSB_ERROR_INVALID_PARAM�LIBUSB_ERROR_ACCESS�LIBUSB_ERROR_NO_DEVICE�LIBUSB_ERROR_NOT_FOUND�LIBUSB_ERROR_BUSY�LIBUSB_ERROR_TIMEOUT�LIBUSB_ERROR_OVERFLOW�LIBUSB_ERROR_PIPE�LIBUSB_ERROR_INTERRUPTED�LIBUSB_ERROR_NO_MEM�LIBUSB_ERROR_NOT_SUPPORTEDZ+LIBUSB_ERROR_OTHERLIBUSB_TRANSFER_COMPLETED�LIBUSB_TRANSFER_ERROR�LIBUSB_TRANSFER_TIMED_OUT�LIBUSB_TRANSFER_CANCELLED�LIBUSB_TRANSFER_STALL�LIBUSB_TRANSFER_NO_DEVICE�LIBUSB_TRANSFER_OVERFLOWzusb.backend.libusb1)r������������������i����i����i����i����i����i����i�i����zSuccess (no error)zInput/output errorzInvalid parameterz(Access denied (insufficient permissions)z.No such device (it may have been disconnected)zEntity not foundz
Resource busyzOperation timed outZOverflowz
Pipe errorz/System call interrupted (perhaps due to signal)zInsufficient memoryz9Operation not supported or unimplemented on this platformz
Unknown errorZEIO�EINVALZEACCESZENODEV�ENOENTZEBUSYZ	ETIMEDOUTZ	EOVERFLOWZEPIPEZEINTRZENOMEMZENOSYS���zTransfer failedzTransfer timed outzTransfer was cancelledzFor bulk/interrupt endpoints: halt condition detected (endpoint stalled). For control endpoints: control request not supported.zDevice was disconnectedz$Device sent more data than requestedZEAGAINcCs2zt�|��d�WSty,t|YS0dS)N�utf8)�_lib�libusb_strerror�decode�AttributeError�_str_error_map)Zerrcode�r+�7/usr/lib/python3.9/site-packages/usb/backend/libusb1.py�	_strerror�sr-c@sPeZdZdefdefdefdefdefdefdefdefd	ee�fd
efg
ZdS)�_libusb_endpoint_descriptor�bLength�bDescriptorTypeZbEndpointAddress�bmAttributesZwMaxPacketSizeZ	bIntervalZbRefreshZ
bSynchAddress�extra�extra_lengthN)	�__name__�
__module__�__qualname__�c_uint8�c_uint16�POINTER�c_ubyte�c_int�_fields_r+r+r+r,r.�s
�r.c
@s`eZdZdefdefdefdefdefdefdefdefd	efd
ee�fdee�fdefgZd
S)�_libusb_interface_descriptorr/r0ZbInterfaceNumberZbAlternateSetting�
bNumEndpointsZbInterfaceClassZbInterfaceSubClassZbInterfaceProtocolZ
iInterface�endpointr2r3N)	r4r5r6r7r9r.r:r;r<r+r+r+r,r=�s

�r=c@s eZdZdee�fdefgZdS)�_libusb_interface�
altsetting�num_altsettingN)r4r5r6r9r=r;r<r+r+r+r,r@�s
�r@c@sZeZdZdefdefdefdefdefdefdefdefd	ee�fd
ee�fdefgZ	dS)
�_libusb_config_descriptorr/r0ZwTotalLength�bNumInterfacesZbConfigurationValueZiConfigurationr1Z	bMaxPower�	interfacer2r3N)
r4r5r6r7r8r9r@r:r;r<r+r+r+r,rC�s

�rCc@sdeZdZdefdefdefdefdefdefdefdefd	efd
efdefdefd
efdefgZdS)�_libusb_device_descriptorr/r0ZbcdUSBZbDeviceClassZbDeviceSubClassZbDeviceProtocolZbMaxPacketSize0ZidVendorZ	idProductZ	bcdDeviceZ
iManufacturerZiProductZ
iSerialNumberZbNumConfigurationsN)r4r5r6r7r8r<r+r+r+r,rF�s�rFc@s"eZdZdefdefdefgZdS)�_libusb_iso_packet_descriptor�length�
actual_length�statusN)r4r5r6�c_uintr;r<r+r+r+r,rG�s�rGc@seZdZdS)�_libusb_transferN)r4r5r6r+r+r+r,rL�srL�
dev_handle�flagsr?�type�timeoutrJrHrI�callback�	user_data�buffer�num_iso_packets�iso_packet_desccCst|j}|�t|j��S�N)rGrTZfrom_addressZ	addressofrU)�transferZ	list_typer+r+r,�_get_iso_packet_lists
rXcCs,tjdkrt}nd}tjjddd||dd�S)N�win32)zusb-1.0z
libusb-1.0�usbzcygusb-1.0.dllzLibusb 1)�libusb_init)�win_cls�find_libraryZ
check_symbols)�sys�platformZWinDLLrZ�	libloaderZload_locate_library)r]r\r+r+r,�
_load_librarys
�racCs�ttg|j_tt�g|j_tg|j_tttt��g|j_tt�tg|j_tg|j	_t|j	_
tg|j_ttt�g|j
_tg|j_ttg|j_ttt�g|j_ttg|j_ttg|j_tttg|j_tg|j_ttg|j_ttg|j_ttg|j_ttt�g|j_ttttt��g|j_tt�g|j_tttt�tg|j_tttt t tt�t t!g|j"_tttt�ttt�t!g|j#_tttt�ttt�t!g|j$_tg|j%_tt&�|j%_
tt&�g|j'_tt&�g|j(_t)|d��r�t!g|j*_t+|j*_
ttg|j,_dd�}||_-ttg|j._dd�}||_/tg|j0_t|j0_
tg|j1_t|j1_
ztg|j2_t|j2_
Wnt3�y\Yn0ztg|j4_t|j4_
Wnt3�y�Yn0zttt�tg|j5_t|j5_
Wnt3�y�Yn0tg|j6_dS)Nr'cSs|j}t|�D]
}||_qdS)z�This function is inline in the libusb.h file, so we must implement
            it.

        lib.libusb_set_iso_packet_lengths.argtypes = [
                        POINTER(_libusb_transfer),
                        c_int
                    ]
        N)�contentsrXrH)Z
transfer_prHrWrUr+r+r,�libusb_set_iso_packet_lengths�s	z8_setup_prototypes.<locals>.libusb_set_iso_packet_lengthsc	
SsF|j}	||	_||	_t|	_||	_t|t�|	_||	_	||	_
||	_||	_dS)a�This function is inline in the libusb.h file, so we must implement
            it.

        lib.libusb_fill_iso_transfer.argtypes = [
                       _libusb_transfer,
                       _libusb_device_handle,
                       c_ubyte,
                       POINTER(c_ubyte),
                       c_int,
                       c_int,
                       _libusb_transfer_cb_fn_p,
                       c_void_p,
                       c_uint
                   ]
        N)
rbrMr?�!_LIBUSB_TRANSFER_TYPE_ISOCHRONOUSrOrP�cast�c_void_prSrHrTrRrQ)
�_libusb_transfer_prMr?rSrHrTrQrRrPrWr+r+r,�libusb_fill_iso_transfersz3_setup_prototypes.<locals>.libusb_fill_iso_transfer)7rfr;Zlibusb_set_debug�argtypesr9r[�libusb_exit�libusb_get_device_list�libusb_free_device_list�libusb_ref_deviceZrestype�libusb_unref_device�_libusb_device_handle�libusb_open�libusb_close�libusb_set_configuration�libusb_get_configuration�libusb_claim_interface�libusb_release_interface� libusb_set_interface_alt_setting�libusb_reset_device�libusb_kernel_driver_active�libusb_detach_kernel_driver�libusb_attach_kernel_driverrF�libusb_get_device_descriptorr7rC�libusb_get_config_descriptor�libusb_free_config_descriptorr:Z"libusb_get_string_descriptor_asciir8rK�libusb_control_transfer�libusb_bulk_transfer�libusb_interrupt_transfer�libusb_alloc_transferrL�libusb_free_transfer�libusb_submit_transfer�hasattrr'Zc_char_p�libusb_clear_haltrc�libusb_get_max_iso_packet_sizerh�libusb_get_bus_number�libusb_get_device_address�libusb_get_device_speedr)�libusb_get_port_number�libusb_get_port_numbers�libusb_handle_events)�librcrhr+r+r,�_setup_prototypes"s�

��


�
���
�
�
�	����


�



�r�cCsFt|d�r|j}|dkrB|tkr.tt|���ntt|�|t|��|S)N�valuer)r�r�r�NotImplementedErrorr-r�
_libusb_errno)�retr+r+r,�_checkKs
r�c@seZdZdd�Zdd�ZdS)�_DevicecCst�|�|_dSrV)r&rm�devid)�selfr�r+r+r,�__init__Ysz_Device.__init__cCst�|j�dSrV)r&rnr��r�r+r+r,�_finalize_object[sz_Device._finalize_objectN)r4r5r6r�r�r+r+r+r,r�Xsr�c@seZdZddd�Zdd�ZdS)�_WrapDescriptorNcCs||_||_dSrV)�obj�desc)r�r�r�r+r+r,r�asz_WrapDescriptor.__init__cCst|j|�SrV)�getattrr��r��namer+r+r,�__getattr__dsz_WrapDescriptor.__getattr__)N)r4r5r6r�r�r+r+r+r,r�`s
r�c@s$eZdZdd�Zdd�Zdd�ZdS)�_ConfigDescriptorcCs
||_dSrV)r�)r�r�r+r+r,r�isz_ConfigDescriptor.__init__cCst�|j�dSrV)r&r}r�r�r+r+r,r�ksz"_ConfigDescriptor._finalize_objectcCst|jj|�SrV)r�r�rbr�r+r+r,r�msz_ConfigDescriptor.__getattr__N)r4r5r6r�r�r�r+r+r+r,r�hsr�c@s$eZdZdd�Zdd�Zdd�ZdS)�_DevIteratorcCs(tt��|_tt�|t|j���|_dSrV)r9rf�dev_listr�r&rk�byref�num_devs)r��ctxr+r+r,r�ss
�z_DevIterator.__init__ccs$t|j�D]}t|j|�Vq
dSrV)�ranger�r�r�)r��ir+r+r,�__iter__ysz_DevIterator.__iter__cCst�|jd�dS�Nr)r&rlr�r�r+r+r,r�|sz_DevIterator._finalize_objectN)r4r5r6r�r�r�r+r+r+r,r�rsr�c@seZdZdd�ZdS)�
_DeviceHandlecCs,t�|_|j|_tt�|jt|j���dSrV)ro�handler�r�r&rpr��r��devr+r+r,r��sz_DeviceHandle.__init__N)r4r5r6r�r+r+r+r,r�sr�c@s>eZdZdd�Zdd�Zddd�Zdd	�Zd
d�Zdd
�ZdS)�_IsoTransferHandlerc	Csz|��\}}t�|j|�}tt�t|�|��}t�|�|_	t�
|j	|j|t|t
t��||t|j�d|�	|�||�dSrV)�buffer_infor&r�r��int�mathZceil�floatr�rWrhr�rer9r:�_libusb_transfer_cb_fn_p�_IsoTransferHandler__callback�'_IsoTransferHandler__set_packets_length)	r�rM�ep�buffrP�addressrH�
packet_lengthZpacket_countr+r+r,r��s�
z_IsoTransferHandler.__init__cCst�|j�dSrV)r&r�rWr�r+r+r,r��sz$_IsoTransferHandler._finalize_objectNcCs`d|_tt�|j��|js,tt�|��qt|jjj�}|t	krXt
�t||t
|��|��S)Nr)�"_IsoTransferHandler__callback_doner�r&r�rWr�r�rbrJ�LIBUSB_TRANSFER_COMPLETEDrZr�_str_transfer_error�_transfer_errno�-_IsoTransferHandler__compute_size_transf_data)r�r�rJr+r+r,�submit�s
�z_IsoTransferHandler.submitcCstdd�t|jj�D��S)NcSsg|]
}|j�qSr+)rI)�.0�tr+r+r,�
<listcomp>��zB_IsoTransferHandler.__compute_size_transf_data.<locals>.<listcomp>)�sumrXrWrbr�r+r+r,Z__compute_size_transf_data�s
�z._IsoTransferHandler.__compute_size_transf_datacCs<t�|j|�||}|r8t|jj�}t|�r8||d_dS)Nr)r&rcrWrXrb�lenrH)r��nr��rZiso_packetsr+r+r,Z__set_packets_length�sz(_IsoTransferHandler.__set_packets_lengthcCs
d|_dSr�)r�)r�rWr+r+r,Z
__callback�sz_IsoTransferHandler.__callback)N)	r4r5r6r�r�r�r�r�r�r+r+r+r,r��s

r�c@s�eZdZee�dd��Zee�dd��Zee�dd��Zee�dd��Zee�d	d
��Z	ee�dd��Z
ee�d
d��Zee�dd��Zee�dd��Z
ee�dd��Zee�dd��Zee�dd��Zee�dd��Zee�dd��Zee�dd��Zee�dd ��Zee�d!d"��Zee�d#d$��Zee�d%d&��Zee�d'd(��Zee�d)d*��Zee�d+d,��Zee�d-d.��Zee�d/d0��Zee�d1d2��Zee�d3d4��Zd5d6�Zd7d8�Z d9S):�_LibUSBcCs6tjj�|�||_t�|_t|j�t	|j���dSrV)
rZ�backend�IBackendr�r�rfr�r�r[r�)r�r�r+r+r,r��sz_LibUSB.__init__cCs|j�|j�dSrV)r�rjr�r�r+r+r,r��sz_LibUSB._finalize_objectcCs
t|j�SrV)r�r�r�r+r+r,�enumerate_devices�sz_LibUSB.enumerate_devicescCst�}t|j�|jt|���|j�|j�|_|j�|j�|_	z|j�
|j�|_Wntyjd|_Yn0z|j�
|j�|_Wnty�d|_Yn0zLtd�}|j�|j|t|��}|_|dkr�t|d|��|_nd|_Wnty�d|_Yn0|S)N�r)rFr�r�r{r�r�r�Zbusr�r�r�Zspeedr)r�Zport_numberr7r�r�Zport_numbers�tuple)r�r�Zdev_descr�Zwrittenr+r+r,�get_device_descriptor�s.
�

z_LibUSB.get_device_descriptorcCsBtt��}t|j�|j|t|���t|�}|jd|j	�|_
|SrV)r9rCr�r�r|r�r�r�r2r3�extra_descriptors)r�r��config�cfgZconfig_descr+r+r,�get_configuration_descriptor�s
��z$_LibUSB.get_configuration_descriptorcCsp|�||�}||jkr&tdt|���|j|}||jkrJtdt|���|j|}|jd|j�|_	t
||�S)NzInvalid interface index z Invalid alternate setting index )r�rD�
IndexError�strrErBrAr2r3r�r�)r�r��intf�altr�r�r�Z	intf_descr+r+r,�get_interface_descriptor�s



z _LibUSB.get_interface_descriptorcCsP|�||||�}||jkr*tdt|���|j|}|jd|j�|_t||�S)NzInvalid endpoint index )	r�r>r�r�r?r2r3r�r�)r�r�r�r�r�r�r�Zep_descr+r+r,�get_endpoint_descriptors

z_LibUSB.get_endpoint_descriptorcCst|�SrV)r�r�r+r+r,�open_devicesz_LibUSB.open_devicecCs|j�|j�dSrV)r�rqr��r�rMr+r+r,�close_devicesz_LibUSB.close_devicecCst|j�|j|��dSrV)r�r�rrr�)r�rMZconfig_valuer+r+r,�set_configurationsz_LibUSB.set_configurationcCs$t�}t|j�|jt|���|jSrV)r;r�r�rsr�r�r�)r�rMr�r+r+r,�get_configurationsz_LibUSB.get_configurationcCst|j�|j||��dSrV)r�r�rvr�)r�rMr�rAr+r+r,�set_interface_altsetting"s
�z _LibUSB.set_interface_altsettingcCst|j�|j|��dSrV)r�r�rtr��r�rMr�r+r+r,�claim_interface)sz_LibUSB.claim_interfacecCst|j�|j|��dSrV)r�r�rur�r�r+r+r,�release_interface-sz_LibUSB.release_interfacecCs|�|jj|||||�SrV)�_LibUSB__writer�r�r�rMr�r��datarPr+r+r,�
bulk_write1s
�z_LibUSB.bulk_writecCs|�|jj|||||�SrV)�
_LibUSB__readr�r�r�rMr�r�r�rPr+r+r,�	bulk_read:s
�z_LibUSB.bulk_readcCs|�|jj|||||�SrV)r�r�r�r�r+r+r,�
intr_writeCs
�z_LibUSB.intr_writecCs|�|jj|||||�SrV)r�r�r�r�r+r+r,�	intr_readLs
�z_LibUSB.intr_readcCst||||�}|�|j�SrV�r�r�r�)r�rMr�r�r�rP�handlerr+r+r,�	iso_writeUsz_LibUSB.iso_writecCst||||�}|�|j�SrVr�)r�rMr�r�r�rPr�r+r+r,�iso_readZsz_LibUSB.iso_readcCsD|��\}}	|	|j9}	t|j�|j||||t|tt��|	|��}
|
SrV)	r��itemsizer�r�r~r�rer9r:)r�rMZ
bmRequestTypeZbRequestZwValueZwIndexr�rPZaddrrHr�r+r+r,�
ctrl_transfer_s	
�
z_LibUSB.ctrl_transfercCst|j�|j|��dSrV)r�r�r�r�)r�rMr�r+r+r,�
clear_haltwsz_LibUSB.clear_haltcCst|j�|j��dSrV)r�r�rwr�r�r+r+r,�reset_device{sz_LibUSB.reset_devicecCstt|j�|j|���SrV)�boolr�r�rxr�r�r+r+r,�is_kernel_driver_actives�z_LibUSB.is_kernel_driver_activecCst|j�|j|��dSrV)r�r�ryr�r�r+r+r,�detach_kernel_driver�sz_LibUSB.detach_kernel_drivercCst|j�|j|��dSrV)r�r�rzr�r�r+r+r,�attach_kernel_driver�sz_LibUSB.attach_kernel_drivercCsZ|��\}}||j9}t�}	||j|t|tt��|t|	�|�}
|	jrL|
t	ksTt
|
�|	jSrV�r�r�r;r�rer9r:r�r�rr�)r��fnrMr�r�r�rPr�rH�transferred�retvalr+r+r,Z__write�s
�z_LibUSB.__writecCsZ|��\}}||j9}t�}	||j|t|tt��|t|	�|�}
|	jrL|
t	ksTt
|
�|	jSrVr�)r�r�rMr�r�r�rPr�rHr�r�r+r+r,Z__read�s
�z_LibUSB.__readN)!r4r5r6r�_loggerr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r+r+r+r,r��sl



 






















r�cCspz$tdurt|d�att�tt�WStjjyJtjddd�YdSt	yjtjddd�YdS0dS)N�r]z Error loading libusb 1.0 backendF)�exc_infoT)
r&rar�r�rZr`ZLibraryExceptionr��error�	Exceptionr�r+r+r,r�s

r)N)N)XZctypesZusb.utilrZr^ZloggingZ
usb._debugrZusb._interopZ_interopZusb._objfinalizerZ
_objfinalizer�errnor�Zusb.corerZ
usb.libloader�
__author__�__all__Z	getLoggerr�Z_LIBUSB_TRANSFER_TYPE_CONTROLrdZ_LIBUSB_TRANSFER_TYPE_BULKZ_LIBUSB_TRANSFER_TYPE_INTERRUPTZLIBUSB_SUCCESSrrrr	r
rrr
rrrrZLIBUSB_ERROR_OTHERr*�__dict__�getr�r�rrrrrrr�r�r-Z	Structurer.r=r@rCrFrGrfrorLr9rgZ	CFUNCTYPEr�r7rKr;Z	py_objectr<rXr&rar�r�ZAutoFinalizedObjectr��objectr�r�r�r�r�r�r�r�rr+r+r+r,�<module>s�
����


�
+


9n