
    Xf	                     p    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d	S )
zeA module containing a collection of plugins that produce data typically
found in Mac's mount command.    )	renderers
interfaces)requirements)plugins)utility)macc                   p    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d	S )
MountzhA module containing a collection of plugins that produce data typically
    found in Mac's mount command)   r   r   c                 v    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   sR     *6()4  
 +3+;Y  	
 		
    contextkernel_module_namec              #      K   |j         |         }|                    d          }t          j                            |d          D ]}|V  dS )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"   sb       !34--+-FF	%00JGG 	 	EKKKK	 	r   c              #     K   |                      | j        | j        d                   D ]]}|j        }t	          j        |j                  }t	          j        |j                  }t	          j        |j                  }d|||ffV  ^d S )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      %%dlDK4IJJ 	< 	<E#C!1#/BBK!1#2CDDK 01ABBJk;
;;;;;;	< 	<r   c                     t          j        dt          fdt          fdt          fg|                                           S )NDevicezMount PointType)r   TreeGridstrr6   )r1   s    r   runz	Mount.run@   s:    !_}c2VSMBDOODUDU
 
 	
r   N)__name__
__module____qualname____doc___required_framework_version_versionclassmethodr   r   r   ContextInterfacer;   r)   r6   r<    r   r   r
   r
      s        $ $ #,H

 

 [

  (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 7 7 7 7 7 7 7 < < < < < < 4 4 4 4 4 4 1 1 1 1 1 1 - - - - - -6
 6
 6
 6
 6
G# 6
 6
 6
 6
 6
r   