Sindbad~EG File Manager
3
�^� � @ sN d dl Z ddlmZ ddlmZ ddlmZ ddlmZ G dd� dee�Z dS ) � N� )�MatchContext)�
IomemconRange)�PolicyQuery)�match_rangec sV e Zd ZdZdZdZdZdZdZe dd� �Z
e
jdd� �Z
� fdd�Zd d
� Z
� ZS )�
IomemconQuerya�
Iomemcon context query.
Parameter:
policy The policy to query.
Keyword Parameters/Class attributes:
addr A 2-tuple of the memory addr range to match. (Set both to
the same value for a single mem addr)
addr_subset If true, the criteria will match if it is a subset
of the iomemcon's range.
addr_overlap If true, the criteria will match if it overlaps
any of the iomemcon's range.
addr_superset If true, the criteria will match if it is a superset
of the iomemcon's range.
addr_proper If true, use proper superset/subset operations.
No effect if not using set operations.
user The criteria to match the context's user.
user_regex If true, regular expression matching
will be used on the user.
role The criteria to match the context's role.
role_regex If true, regular expression matching
will be used on the role.
type_ The criteria to match the context's type.
type_regex If true, regular expression matching
will be used on the type.
range_ The criteria to match the context's range.
range_subset If true, the criteria will match if it is a subset
of the context's range.
range_overlap If true, the criteria will match if it overlaps
any of the context's range.
range_superset If true, the criteria will match if it is a superset
of the context's range.
range_proper If true, use proper superset/subset operations.
No effect if not using set operations.
NFc C s | j S )N)�_addr)�self� r
�%/usr/lib64/python3.6/iomemconquery.py�addrL s zIomemconQuery.addrc C s^ t |� }t|�rT|jdk s$|jdk r2tdj|���|j|jkrLtdj|���|| _nd | _d S )Nr z1Memory address must be positive: {0.low}-{0.high}zIThe low mem addr must be smaller than the high mem addr: {0.low}-{0.high})r �allZlowZhigh�
ValueError�formatr )r �valueZpending_addrr
r
r r P s c s$ t t| �j|f|� tjt�| _d S )N)�superr �__init__�loggingZ getLogger�__name__�log)r �policy�kwargs)� __class__r
r r b s zIomemconQuery.__init__c c s� | j jdj| �� | j jdj| �� | j| j � xN| jj� D ]@}| jrht|j| j| j | j
| j| j� rhq<| j
|j�svq<|V q<W dS )z.Generator which yields all matching iomemcons.z"Generating results from {0.policy}z}Address: {0.addr!r}, overlap: {0.addr_overlap}, subset: {0.addr_subset}, superset: {0.addr_superset}, proper: {0.addr_proper}N)r �infor �debugZ_match_context_debugr Z iomemconsr r �addr_subset�addr_overlap�
addr_superset�addr_properZ_match_context�context)r Ziomemconr
r
r �resultsf s
zIomemconQuery.results)r �
__module__�__qualname__�__doc__r r r r r �propertyr �setterr r �
__classcell__r
r
)r r r s )r )
r Zmixinsr Z policyrepr Zqueryr �utilr r r
r
r
r �<module> s
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists