ó
ýGpNc           @   sm   d  d l  Z  d  d l Z d  d l Td  d l m Z d   Z d   Z e  j j d  ri e d e j	  n  d S(   i˙˙˙˙N(   t   *(   t   mkstempc   
      C   sl  | j  d |  d } t |  d  } zŐ | j d  } xż | d k rů t |  } | d @d k rv d | } d } n  | d | } | d	 k  s | d
 k rŠ | d } n
 | | } | d } | d @d k rç | j  d | | f  n  | j d  } q; WWd x% t | d @d  D] }	 | d } qW| d @d k rP| j  d | | f  n  | j   X| j  d  d S(   s   Dump a single ACPI tables   %s @ 0x00000000
i    t   rbi   t    i   s	     %4.4x: s   %2.2x i    i~   t   .s   %s %s
Ni   s      s   
(   t   writet   opent   readt   ordt   ranget   close(
   t   filenamet	   tablenamet   outt   nt   ft   bytet   valt   hex_strt	   ascii_strt   i(    (    s%   /usr/share/apport/dump_acpi_tables.pyt   dump_acpi_table   s0    
	

c         C   sx   t  j |   } xb | D]Z } t  j j |  |  } t  j |  t } t |  r` t | |  q t | | |  q Wd S(   s   Dump ACPI tablesN(	   t   ost   listdirt   patht   joint   statt   ST_MODEt   S_ISDIRt   dump_acpi_tablesR   (   R   R   t   tablesR   t   pathnamet   mode(    (    s%   /usr/share/apport/dump_acpi_tables.pyR   (   s    s   /sys/firmware/acpi/tables(
   R   t   sysR   t   tempfileR   R   R   R   t   isdirt   stdout(    (    (    s%   /usr/share/apport/dump_acpi_tables.pyt   <module>   s   
	!	