HEX
Server: LiteSpeed
System: Linux s1049.use1.mysecurecloudhost.com 4.18.0-477.27.2.lve.el8.x86_64 #1 SMP Wed Oct 11 12:32:56 UTC 2023 x86_64
User: xedaptot (3356)
PHP: 8.3.31
Disabled: NONE
Upload Files
File: //proc/722141/root/lib/python3.6/site-packages/usb/backend/__pycache__/libusb1.cpython-36.pyc
3

�~�V��@sddlTddlZddlZddlZddlmZddljZddl	j
Z
ddlZddlZddl
mZddlZdZdddd	d
ddd
dddddddddddddgZejd�Zd~ZdZdZdZdZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z d�Z!d�Z"d�Z#d�Z$d�Z%ed)ed*ed+ed,ed-ed.ed/ed0e d1e!d2e"d3e#d4e$d5e%d6iZ&ddeej'j(d7d�eej'j(d8d�eej'j(d9d�eej'j(d:d�eej'j(d;d�eej'j(d<d�eej'j(d=d�e ej'j(d>d�e!ej'j(d?d�e"ej'j(d@d�e#ej'j(dAd�e$ej'j(dBd�e%diZ)dZ*dZ+dZ,dZ-dZ.d Z/d!Z0e*d)e+dCe,dDe-dEe.dFe/dGe0dHiZ1e*de+ej'j(d7d�e,ej'j(d=d�e-ej'j(dId�e.ej'j(d7d�e/ej'j(d:d�e0ej'j(d>d�iZ2dJdK�Z3GdLdM�dMe4�Z5GdNdO�dOe4�Z6GdPdQ�dQe4�Z7GdRdS�dSe4�Z8GdTdU�dUe4�Z9GdVdW�dWe4�Z:e;Z<GdXdY�dYe4�Z=e>e=�Z?e@de?�ZAdZe<fd[eBfd\eBfd]eBfd^eCfd_eDfd`eDfdaeDfdbeAfdceEfdde;fdeeDfdfe:fg
e=_Fdgdh�ZGdaHd�didj�ZIdkdl�ZJdmdn�ZKGdodp�dpe
jL�ZMGdqdr�dreN�ZOGdsdt�dte
jL�ZPGdudv�dve
jL�ZQGdwdx�dxeN�ZRGdydz�dze
jL�ZSGd{d|�d|ejTjU�ZVd�d}d�ZWdS)��)�*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���������	�
���czSuccess (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 errorZEIOZEINVALZEACCESZENODEV�ENOENTZEBUSYZ	ETIMEDOUTZ	EOVERFLOWZEPIPEZEINTRZENOMEMZENOSYSzTransfer 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 requestedZEAGAINcCs.ytj|�jd�Stk
r(t|SXdS)N�utf8)�_lib�libusb_strerror�decode�AttributeError�_str_error_map)Zerrcode�r,�/usr/lib/python3.6/libusb1.py�	_strerror�sr.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_descriptorr0r1ZbInterfaceNumberZbAlternateSetting�
bNumEndpointsZbInterfaceClassZbInterfaceSubClassZbInterfaceProtocolZ
iInterface�endpointr3r4N)	r5r6r7r8r:r/r;r<r=r,r,r,r-r>�s

r>c@s eZdZdee�fdefgZdS)�_libusb_interface�
altsetting�num_altsettingN)r5r6r7r:r>r<r=r,r,r,r-rA�s
rAc@sZeZdZdefdefdefdefdefdefdefdefd	ee�fd
ee�fdefgZ	dS)
�_libusb_config_descriptorr0r1ZwTotalLength�bNumInterfacesZbConfigurationValueZiConfigurationr2Z	bMaxPower�	interfacer3r4N)
r5r6r7r8r9r:rAr;r<r=r,r,r,r-rD�s

rDc@sdeZdZdefdefdefdefdefdefdefdefd	efd
efdefdefd
efdefgZdS)�_libusb_device_descriptorr0r1ZbcdUSBZbDeviceClassZbDeviceSubClassZbDeviceProtocolZbMaxPacketSize0ZidVendorZ	idProductZ	bcdDeviceZ
iManufacturerZiProductZ
iSerialNumberZbNumConfigurationsN)r5r6r7r8r9r=r,r,r,r-rG�srGc@s"eZdZdefdefdefgZdS)�_libusb_iso_packet_descriptor�length�
actual_length�statusN)r5r6r7�c_uintr<r=r,r,r,r-rH�srHc@seZdZdS)�_libusb_transferN)r5r6r7r,r,r,r-rM�srM�
dev_handle�flagsr@�type�timeoutrKrIrJ�callback�	user_data�buffer�num_iso_packets�iso_packet_desccCst|j}|jt|j��S)N)rHrUZfrom_addressZ	addressofrV)�transferZ	list_typer,r,r-�_get_iso_packet_lists
rXcCs,tjdkrt}nd}tjjd	dd||d
d�S)NZwin32�usb-1.0�
libusb-1.0�usbzcygusb-1.0.dllzLibusb 1�libusb_init)�win_cls�find_libraryZ
check_symbols)rYrZr[)r\)�sys�platformZWinDLLr[�	libloaderZload_locate_library)r^r]r,r,r-�
_load_librarys
rbcCs�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_
ytg|j2_t|j2_
Wnt3k
�r^YnXytg|j4_t|j4_
Wnt3k
�r�YnXyttt�tg|j5_t|j5_
Wnt3k
�r�YnXtg|j6_dS)Nr(cSs"|j}xt|�D]
}||_qWdS)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)�contentsrXrI)Z
transfer_prIrWrVr,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)
rcrNr@�!_LIBUSB_TRANSFER_TYPE_ISOCHRONOUSrPrQ�cast�c_void_prTrIrUrSrR)
�_libusb_transfer_prNr@rTrIrUrRrSrQrWr,r,r-�libusb_fill_iso_transfersz3_setup_prototypes.<locals>.libusb_fill_iso_transfer)7rgr<Zlibusb_set_debugZargtypesr:r\�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_driverrG�libusb_get_device_descriptorr8rD�libusb_get_config_descriptor�libusb_free_config_descriptorr;Z"libusb_get_string_descriptor_asciir9rL�libusb_control_transfer�libusb_bulk_transfer�libusb_interrupt_transfer�libusb_alloc_transferrM�libusb_free_transfer�libusb_submit_transfer�hasattrr(Zc_char_p�libusb_clear_haltrd�libusb_get_max_iso_packet_sizeri�libusb_get_bus_number�libusb_get_device_address�libusb_get_device_speedr*�libusb_get_port_number�libusb_get_port_numbers�libusb_handle_events)�librdrir,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)�_DevicecCstj|�|_dS)N)r'rm�devid)�selfr�r,r,r-�__init__Ysz_Device.__init__cCstj|j�dS)N)r'rnr�)r�r,r,r-�_finalize_object[sz_Device._finalize_objectN)r5r6r7r�r�r,r,r,r-r�Xsr�c@seZdZddd�Zdd�ZdS)�_WrapDescriptorNcCs||_||_dS)N)�obj�desc)r�r�r�r,r,r-r�asz_WrapDescriptor.__init__cCst|j|�S)N)�getattrr�)r��namer,r,r-�__getattr__dsz_WrapDescriptor.__getattr__)N)r5r6r7r�r�r,r,r,r-r�`s
r�c@s$eZdZdd�Zdd�Zdd�ZdS)�_ConfigDescriptorcCs
||_dS)N)r�)r�r�r,r,r-r�isz_ConfigDescriptor.__init__cCstj|j�dS)N)r'r}r�)r�r,r,r-r�ksz"_ConfigDescriptor._finalize_objectcCst|jj|�S)N)r�r�rc)r�r�r,r,r-r�msz_ConfigDescriptor.__getattr__N)r5r6r7r�r�r�r,r,r,r-r�hsr�c@s$eZdZdd�Zdd�Zdd�ZdS)�_DevIteratorcCs(tt��|_ttj|t|j���|_dS)N)r:rg�dev_listr�r'rk�byref�num_devs)r��ctxr,r,r-r�ssz_DevIterator.__init__ccs(x"t|j�D]}t|j|�VqWdS)N)�ranger�r�r�)r��ir,r,r-�__iter__ysz_DevIterator.__iter__cCstj|jd�dS)Nr)r'rlr�)r�r,r,r-r�|sz_DevIterator._finalize_objectN)r5r6r7r�r�r�r,r,r,r-r�rsr�c@seZdZdd�ZdS)�
_DeviceHandlecCs,t�|_|j|_ttj|jt|j���dS)N)ro�handler�r�r'rpr�)r��devr,r,r-r��sz_DeviceHandle.__init__N)r5r6r7r�r,r,r,r-r�sr�c@s>eZdZdd�Zdd�Zddd�Zdd	�Zd
d�Zdd
�ZdS)�_IsoTransferHandlerc	
Csz|j�\}}tj|j|�}ttjt|�|��}tj|�|_	tj
|j	|j|t|t
t��||t|j�d|�	|j||�dS)N)�buffer_infor'r�r��int�mathZceil�floatr�rWrir�rfr:r;�_libusb_transfer_cb_fn_p�_IsoTransferHandler__callback�'_IsoTransferHandler__set_packets_length)	r�rN�ep�buffrQ�addressrI�
packet_lengthZpacket_countr,r,r-r��sz_IsoTransferHandler.__init__cCstj|j�dS)N)r'r�rW)r�r,r,r-r��sz$_IsoTransferHandler._finalize_objectNcCsdd|_ttj|j��x|js.ttj|��qWt|jjj�}|t	kr\t
jt||t
|��|j�S)Nr)�"_IsoTransferHandler__callback_doner�r'r�rWr�r�rcrK�LIBUSB_TRANSFER_COMPLETEDr[r�_str_transfer_error�_transfer_errno�-_IsoTransferHandler__compute_size_transf_data)r�r�rKr,r,r-�submit�s

z_IsoTransferHandler.submitcCstdd�t|jj�D��S)NcSsg|]
}|j�qSr,)rJ)�.0�tr,r,r-�
<listcomp>�szB_IsoTransferHandler.__compute_size_transf_data.<locals>.<listcomp>)�sumrXrWrc)r�r,r,r-Z__compute_size_transf_data�sz._IsoTransferHandler.__compute_size_transf_datacCs<tj|j|�||}|r8t|jj�}t|�r8||d_dS)Nr���)r'rdrWrXrc�lenrI)r��nr��rZiso_packetsr,r,r-Z__set_packets_length�sz(_IsoTransferHandler.__set_packets_lengthcCs
d|_dS)Nr)r�)r�rWr,r,r-Z
__callback�sz_IsoTransferHandler.__callback)N)	r5r6r7r�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):�_LibUSBcCs6tjjj|�||_t�|_t|jjt	|j���dS)N)
r[�backend�IBackendr�r�rgr�r�r\r�)r�r�r,r,r-r��sz_LibUSB.__init__cCs|jj|j�dS)N)r�rjr�)r�r,r,r-r��sz_LibUSB._finalize_objectcCs
t|j�S)N)r�r�)r�r,r,r-�enumerate_devices�sz_LibUSB.enumerate_devicescCst�}t|jj|jt|���|jj|j�|_|jj|j�|_	y|jj
|j�|_Wntk
rld|_YnXy|jj
|j�|_Wntk
r�d|_YnXyLtd�}|jj|j|t|��}|_|dkr�t|d|��|_nd|_Wntk
�rd|_YnX|S)Nrr)rGr�r�r{r�r�r�Zbusr�r�r�Zspeedr*r�Zport_numberr8r�r�Zport_numbers�tuple)r�r�Zdev_descr�Zwrittenr,r,r-�get_device_descriptor�s,

z_LibUSB.get_device_descriptorcCsBtt��}t|jj|j|t|���t|�}|jd|j	�|_
|S)N)r:rDr�r�r|r�r�r�r3r4�extra_descriptors)r�r��config�cfgZconfig_descr,r,r-�get_configuration_descriptor�s
z$_LibUSB.get_configuration_descriptorcCsp|j||�}||jkr&tdt|���|j|}||jkrJtdt|���|j|}|jd|j�|_	t
||�S)NzInvalid interface index z Invalid alternate setting index )r�rE�
IndexError�strrFrCrBr3r4r�r�)r�r��intf�altr�r�r�Z	intf_descr,r,r-�get_interface_descriptor�s



z _LibUSB.get_interface_descriptorcCsP|j||||�}||jkr*tdt|���|j|}|jd|j�|_t||�S)NzInvalid endpoint index )	r�r?r�r�r@r3r4r�r�)r�r�r�r�r�r�r�Zep_descr,r,r-�get_endpoint_descriptors

z_LibUSB.get_endpoint_descriptorcCst|�S)N)r�)r�r�r,r,r-�open_devicesz_LibUSB.open_devicecCs|jj|j�dS)N)r�rqr�)r�rNr,r,r-�close_devicesz_LibUSB.close_devicecCst|jj|j|��dS)N)r�r�rrr�)r�rNZconfig_valuer,r,r-�set_configurationsz_LibUSB.set_configurationcCs$t�}t|jj|jt|���|jS)N)r<r�r�rsr�r�r�)r�rNr�r,r,r-�get_configurationsz_LibUSB.get_configurationcCst|jj|j||��dS)N)r�r�rvr�)r�rNr�rBr,r,r-�set_interface_altsetting"sz _LibUSB.set_interface_altsettingcCst|jj|j|��dS)N)r�r�rtr�)r�rNr�r,r,r-�claim_interface)sz_LibUSB.claim_interfacecCst|jj|j|��dS)N)r�r�rur�)r�rNr�r,r,r-�release_interface-sz_LibUSB.release_interfacecCs|j|jj|||||�S)N)�_LibUSB__writer�r)r�rNr�r��datarQr,r,r-�
bulk_write1s
z_LibUSB.bulk_writecCs|j|jj|||||�S)N)�
_LibUSB__readr�r)r�rNr�r�r�rQr,r,r-�	bulk_read:s
z_LibUSB.bulk_readcCs|j|jj|||||�S)N)r�r�r�)r�rNr�r�r�rQr,r,r-�
intr_writeCs
z_LibUSB.intr_writecCs|j|jj|||||�S)N)r�r�r�)r�rNr�r�r�rQr,r,r-�	intr_readLs
z_LibUSB.intr_readcCst||||�}|j|j�S)N)r�r�r�)r�rNr�r�r�rQ�handlerr,r,r-�	iso_writeUsz_LibUSB.iso_writecCst||||�}|j|j�S)N)r�r�r�)r�rNr�r�r�rQr�r,r,r-�iso_readZsz_LibUSB.iso_readcCsD|j�\}}	|	|j9}	t|jj|j||||t|tt��|	|��}
|
S)N)	r��itemsizer�r�r~r�rfr:r;)r�rNZ
bmRequestTypeZbRequestZwValueZwIndexr�rQZaddrrIr�r,r,r-�
ctrl_transfer_s	
z_LibUSB.ctrl_transfercCst|jj|j|��dS)N)r�r�r�r�)r�rNr�r,r,r-�
clear_haltwsz_LibUSB.clear_haltcCst|jj|j��dS)N)r�r�rwr�)r�rNr,r,r-�reset_device{sz_LibUSB.reset_devicecCstt|jj|j|���S)N)�boolr�r�rxr�)r�rNr�r,r,r-�is_kernel_driver_activesz_LibUSB.is_kernel_driver_activecCst|jj|j|��dS)N)r�r�ryr�)r�rNr�r,r,r-�detach_kernel_driver�sz_LibUSB.detach_kernel_drivercCst|jj|j|��dS)N)r�r�rzr�)r�rNr�r,r,r-�attach_kernel_driver�sz_LibUSB.attach_kernel_drivercCsZ|j�\}}||j9}t�}	||j|t|tt��|t|	�|�}
|	joJ|
t	ksTt
|
�|	jS)N)r�r�r<r�rfr:r;r�r�rr�)r��fnrNr�r�r�rQr�rI�transferred�retvalr,r,r-Z__write�s
z_LibUSB.__writecCsZ|j�\}}||j9}t�}	||j|t|tt��|t|	�|�}
|	joJ|
t	ksTt
|
�|	jS)N)r�r�r<r�rfr:r;r�r�rr�)r�r�rNr�r�r�rQr�rIr�r�r,r,r-Z__read�s
z_LibUSB.__readN)!r5r6r7r�_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��s8!					r�cCsny"tdkrt|d�att�tt�Stjjk
rHtjddd�dSt	k
rhtjddd�dSXdS)N)r^z Error loading libusb 1.0 backendF)�exc_infoT)
r'rbr�r�r[raZLibaryExceptionr��error�	Exception)r^r,r,r-r�s
)rr�������������i����i����i����i����i����i����i�i����)N)N)XZctypesZusb.utilr[r_ZloggingZ
usb._debugrZusb._interopZ_interopZusb._objfinalizerZ
_objfinalizer�errnor�Zusb.corerZ
usb.libloader�
__author__�__all__Z	getLoggerr�Z_LIBUSB_TRANSFER_TYPE_CONTROLreZ_LIBUSB_TRANSFER_TYPE_BULKZ_LIBUSB_TRANSFER_TYPE_INTERRUPTZLIBUSB_SUCCESSrrrr	r
rrr
rrrrZLIBUSB_ERROR_OTHERr+�__dict__�getr�r�rrrrrrr�r�r.Z	Structurer/r>rArDrGrHrgrorMr:rhZ	CFUNCTYPEr�r8rLr<Z	py_objectr=rXr'rbr�r�ZAutoFinalizedObjectr��objectr�r�r�r�r�r�r�r�rr,r,r,r-�<module>s





+


9n