o
    ih
                     @   sN  d dl mZ d dlmZmZmZmZmZmZm	Z	 G dd dej
ZG dd dej
Zeegejj_ejejj_ejgejj_ejgejj_ejejj_ejgejj_ejgejj_ejejgejj_eejj_ejgejj_eejj_ejgejj_eejj_ejgejj_eejj_ejgejj_e	eejj_ejgejj_eejj_dS )    )ffi)c_boolc_char_pc_charc_size_t	string_atc_uint64POINTERc                   @   sL   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dd Z
dS )SectionIteratorRefc                 C      t j| S N)r   libLLVMPY_GetSectionNameself r   k/var/www/html/eduruby.in/lip-sync/lip-sync-env/lib/python3.10/site-packages/llvmlite/binding/object_file.pyname      zSectionIteratorRef.namec                 C   r   r   )r   r   LLVMPY_IsSectionTextr   r   r   r   is_text
   r   zSectionIteratorRef.is_textc                 C   r   r   )r   r   LLVMPY_GetSectionSizer   r   r   r   size   r   zSectionIteratorRef.sizec                 C   r   r   )r   r   LLVMPY_GetSectionAddressr   r   r   r   address   r   zSectionIteratorRef.addressc                 C   s   t tj| |  S r   )r   r   r   LLVMPY_GetSectionContentsr   r   r   r   r   data   s   zSectionIteratorRef.datac                 C   s   t j|| S r   )r   r   LLVMPY_IsSectionIteratorAtEnd)r   Zobject_filer   r   r   is_end   s   zSectionIteratorRef.is_endc                 C      t j|  d S r   )r   r   LLVMPY_MoveToNextSectionr   r   r   r   next      zSectionIteratorRef.nextc                 C   r   r   )r   r   LLVMPY_DisposeSectionIteratorr   r   r   r   _dispose   r"   zSectionIteratorRef._disposeN)__name__
__module____qualname__r   r   r   r   r   r   r!   r$   r   r   r   r   r
      s    r
   c                   @   s4   e Zd Zedd Zedd Zdd Zdd Zd	S )
ObjectFileRefc                 C   s   | t j|t|S r   )r   r   LLVMPY_CreateObjectFilelen)clsr   r   r   r   	from_data!   s   zObjectFileRef.from_datac                 C   sH   t |d}| }W d    n1 sw   Y  | tj|t|S )Nrb)openreadr   r   r)   r*   )r+   pathfr   r   r   r   	from_path%   s   
zObjectFileRef.from_pathc                 c   s<    t tj| }|| s|V  |  || rd S d S r   )r
   r   r   LLVMPY_GetSectionsr   r!   )r   itr   r   r   sections+   s   
zObjectFileRef.sectionsc                 C   r   r   )r   r   LLVMPY_DisposeObjectFiler   r   r   r   r$   1   r"   zObjectFileRef._disposeN)r%   r&   r'   classmethodr,   r2   r5   r$   r   r   r   r   r(       s    

r(   N)Zllvmlite.bindingr   ctypesr   r   r   r   r   r   r	   Z	ObjectRefr
   r(   r   r)   argtypesZLLVMObjectFileRefrestyper6   r3   ZLLVMSectionIteratorRefr#   r    r   r   r   r   r   r   r   r   r   r   <module>   s0    $




