
    Xf	                     r    d Z ddlmZmZ ddlmZ ddlmZ ddlm	Z	 ddl
mZ  G d dej                        Zy	)
zeA module containing a collection of plugins that produce data typically
found in Mac's mount command.    )	renderers
interfaces)requirements)plugins)utility)macc                   v    e Zd ZdZdZdZed        Zedej                  j                  defd       Zd Zd Zy	)
MountzhA module containing a collection of plugins that produce data typically
    found in Mac's mount command)   r   r   c                     t        j                  ddddg      t        j                  dt        j                  d      gS )	NkernelzKernel module for the OSIntel32Intel64)namedescriptionarchitecturesmacutils)   r   r   )r   	componentversion)r   ModuleRequirementVersionRequirementr   MacUtilities)clss    Y/home/panchajanya/Development/work/volatility3/volatility3/framework/plugins/mac/mount.pyget_requirementszMount.get_requirements   sG     **6()4
 ++3+;+;Y	
 		
    contextkernel_module_namec              #      K   |j                   |   }|j                  d      }t        j                  j	                  |d      D ]  }|  yw)a  Lists all the mount structures in the primary layer.

        Args:
            context: The context to retrieve required elements (layers, symbol tables) from
            layer_name: The name of the layer on which to operate
            darwin_symbols: The name of the table containing the kernel symbols

        Returns:
            A list of mount structures from the `layer_name` layer
        	mountlist)symbol_namemnt_listN)modulesobject_from_symbolr   r   
walk_tailq)r   r   r   r   	list_headmounts         r   list_mountszMount.list_mounts"   sQ      !34--+-F	%%00JG 	EK	s   AAc              #   L  K   | j                  | j                  | j                  d         D ]t  }|j                  }t	        j
                  |j                        }t	        j
                  |j                        }t	        j
                  |j                        }d|||ff v y w)Nr   r   )	r)   r   configmnt_vfsstatr   array_to_stringf_mntonnamef_mntfromnamef_fstypename)selfr(   vfsdevice_namemount_point
mount_types         r   
_generatorzMount._generator7   s     %%dllDKK4IJ 	<E##C!11#//BK!11#2C2CDK 001A1ABJk;
;;;	<s   B"B$c                 t    t        j                  dt        fdt        fdt        fg| j                               S )NDevicezMount PointType)r   TreeGridstrr6   )r1   s    r   runz	Mount.run@   s5    !!_}c2VSMBDOODU
 	
r   N)__name__
__module____qualname____doc___required_framework_version_versionclassmethodr   r   r   ContextInterfacer;   r)   r6   r<    r   r   r
   r
      s`    $ #,H

 

  ((99OR (<
r   r
   N)r@   volatility3.frameworkr   r   #volatility3.framework.configurationr    volatility3.framework.interfacesr   volatility3.framework.objectsr   volatility3.framework.symbolsr   PluginInterfacer
   rE   r   r   <module>rL      s+   ! 7 < 4 1 -6
G## 6
r   