o
    �õ±j  ã                   @   sb   d dl Z d dlZG dd„ dejƒZG dd„ dejƒZG dd„ dƒZG dd	„ d	ƒZG d
d„ dƒZdS )é    Nc                   @   s   e Zd ZdZdZdZdS )ÚMinidumpMiscInfo2Flags1é   é   é   N)Ú__name__Ú
__module__Ú__qualname__ÚMINIDUMP_MISC1_PROCESS_IDÚMINIDUMP_MISC1_PROCESS_TIMESÚ#MINIDUMP_MISC1_PROCESSOR_POWER_INFO© r   r   ú’/root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/venv/lib/python3.10/site-packages/minidump/streams/MiscInfoStream.pyr   
   s    r   c                   @   s   e Zd ZdZdZdS )ÚMinidumpMiscInfoFlags1r   r   N)r   r   r   r	   r
   r   r   r   r   r      s    r   c                   @   ó$   e Zd ZdZdd„ Zedd„ ƒZdS )ÚMINIDUMP_MISC_INFOé   c                 C   s(   d | _ d | _d | _d | _d | _d | _d S ©N)Ú
SizeOfInfoÚFlags1Ú	ProcessIdÚProcessCreateTimeÚProcessUserTimeÚProcessKernelTime©Úselfr   r   r   Ú__init__   s   
zMINIDUMP_MISC_INFO.__init__c                 C   sÐ   t ƒ }tj|  d¡ddd�|_ttj|  d¡ddd�ƒ|_|jtj@ r0tj|  d¡ddd�|_n|  d¡ |jtj	@ ratj|  d¡ddd�|_
tj|  d¡ddd�|_tj|  d¡ddd�|_|S |  d¡ |S )Nr   ÚlittleF©Ú	byteorderÚsignedé   )r   ÚintÚ
from_bytesÚreadr   r   r   r	   r   r
   r   r   r   ©ÚbuffÚmmir   r   r   Úparse   s   

þzMINIDUMP_MISC_INFO.parseN©r   r   r   Úsizer   Ústaticmethodr'   r   r   r   r   r      s
    r   c                   @   r   )ÚMINIDUMP_MISC_INFO_2é,   c                 C   sF   d | _ d | _d | _d | _d | _d | _d | _d | _d | _d | _	d | _
d S r   )r   r   r   r   r   r   ÚProcessorMaxMhzÚProcessorCurrentMhzÚProcessorMhzLimitÚProcessorMaxIdleStateÚProcessorCurrentIdleStater   r   r   r   r   4   s   
zMINIDUMP_MISC_INFO_2.__init__c                 C   s`  t ƒ }tj|  d¡ddd�|_ttj|  d¡ddd�ƒ|_|jtj@ r0tj|  d¡ddd�|_n|  d¡ |jtj	@ r`tj|  d¡ddd�|_
tj|  d¡ddd�|_tj|  d¡ddd�|_n|  d¡ |jtj@ r©tj|  d¡ddd�|_tj|  d¡ddd�|_tj|  d¡ddd�|_tj|  d¡ddd�|_tj|  d¡ddd�|_|S |  d¡ |S )Nr   r   Fr   r    é   )r+   r!   r"   r#   r   r   r   r	   r   r
   r   r   r   r   r-   r.   r/   r0   r1   r$   r   r   r   r'   A   s(   


þzMINIDUMP_MISC_INFO_2.parseNr(   r   r   r   r   r+   2   s
    r+   c                   @   s4   e Zd Zdd„ Zedd„ ƒZedd„ ƒZdd„ Zd	S )
ÚMinidumpMiscInfoc                 C   s:   d | _ d | _d | _d | _d | _d | _d | _d | _d | _d S r   ©	r   r   r   r   r-   r.   r/   r0   r1   r   r   r   r   r   \   s   
zMinidumpMiscInfo.__init__c                 C   sº   t ƒ }| | jj¡ t | | jj¡¡}| jjtj	kr2t 
|¡}|j|_|j|_|j|_|j|_|S t 
|¡}|j|_|j|_|j|_|j|_|j|_|j|_|j|_|j|_|j|_|S r   )r3   ÚseekÚLocationÚRvaÚioÚBytesIOr#   ÚDataSizer   r)   r'   r   r   r   r   r+   r-   r.   r/   r0   r1   )Údirr%   ÚtÚchunkÚmiscr   r   r   r'   g   s*   

özMinidumpMiscInfo.parsec                 Ã   sÌ   �t ƒ }| | jj¡I d H  | | jj¡I d H }t |¡}| jjtj	kr;t 
|¡}|j|_|j|_|j|_|j|_|S t 
|¡}|j|_|j|_|j|_|j|_|j|_|j|_|j|_|j|_|j|_|S r   )r3   r5   r6   r7   r#   r:   r8   r9   r   r)   r'   r   r   r   r   r+   r-   r.   r/   r0   r1   )r;   r%   r<   Ú
chunk_datar=   r>   r   r   r   Úaparse   s.   €


özMinidumpMiscInfo.aparsec                 C   s†   d}|d| j  7 }|d| j 7 }|d| j 7 }|d| j 7 }|d| j 7 }|d| j 7 }|d| j 7 }|d	| j 7 }|d
| j 7 }|S )Nz== MinidumpMiscInfo ==
zProcessId %s
zProcessCreateTime %s
zProcessUserTime %s
zProcessKernelTime %s
zProcessorMaxMhz %s
zProcessorCurrentMhz %s
zProcessorMhzLimit %s
zProcessorMaxIdleState %s
zProcessorCurrentIdleState %s
r4   )r   r<   r   r   r   Ú__str__˜   s   zMinidumpMiscInfo.__str__N)r   r   r   r   r*   r'   r@   rA   r   r   r   r   r3   [   s    

r3   )r8   ÚenumÚIntFlagr   r   r   r+   r3   r   r   r   r   Ú<module>   s   )