
    11i                     P   S SK r S SKr S SKrSr " S S\ R                  5      r\ R                  R                  \ R                  R                  S5      5      r
\
R                  r\ R                  \ R                  \ R                  4\l        \ R                  \l         " S S5      rg)    N   c                       \ rS rSrS\R
                  4S\R                  4S\R
                  4S\R
                  4S\R
                  4/rSrg)	_LinkMap	   l_addrl_namel_ldl_next
l_previous N)	__name__
__module____qualname____firstlineno__ctypesc_void_pc_char_p_fields___static_attributes__r       G/home/james-whalen/.local/lib/python3.13/site-packages/dlinfo/_glibc.pyr   r   	   sG     
6??#	6??#	!	6??#	v'Hr   r   dlc                   R    \ rS rSrSrS\R                  4S jr\S\	4S j5       r
Srg)	DLInfo   z
>>> lib = ctypes.cdll.LoadLibrary(ctypes.util.find_library('c'))
>>> dlinfo = DLInfo(lib)
>>> dlinfo.path
'/lib/x86_64-linux-gnu/libc.so.6'
cdllc                 .   [         R                  " 5       n[        UR                  [        [         R
                  " U5      5      S:w  a  [        SUR                   S35      e[         R                  " U[         R                  " [        5      5      U l        g )Nr   z
dlinfo on z failed)r   r   _DLINFO_handle_RTLD_DI_LINKMAPbyrefRuntimeError_namecastPOINTERr   _linkmap)selfr   r&   s      r   __init__DLInfo.__init__#   s`    ??$4<<!16<<3IJaODJJ<w?@@HfnnX.FGr   returnc                     U R                   R                  R                  R                  [        R
                  " 5       5      $ )N)r&   contentsr   decodesysgetdefaultencoding)r'   s    r   pathDLInfo.path*   s,    }}%%,,33C4J4J4LMMr   )r&   N)r   r   r   r   __doc__r   CDLLr(   propertystrr0   r   r   r   r   r   r      s7    HV[[ H Nc N Nr   r   )r   ctypes.utilr.   r    	Structurer   r   LoadLibraryutilfind_library_LIBDLdlinfor   r   c_intargtypesrestyper   r   r   r   <module>r@      s      
  v  
	 	 !9!9$!?	@
--??FLL&//A ,,N Nr   