ó
qxPXc           @   s_   d  d l  Z  d  d l Z d  d l Z d „  Z d „  Z e  j j d ƒ r[ e d e j ƒ n  d S(   iÿÿÿÿNc   
      C   sr  | j  d | ƒ d } t |  d ƒ } d } zÕ | j d ƒ } x¿ | d k rÿ t | ƒ } | d @d k r| d | } d } n  | d | } | d	 k  s¢ | d
 k r¯ | d } n
 | | } | d } | d @d k rí | j  d | | f ƒ n  | j d ƒ } qA WWd x% t | d @d ƒ D] }	 | d } qW| d @d k rV| j  d | | f ƒ n  | j ƒ  X| j  d ƒ d S(   s   Dump a single ACPI tables   %s @ 0x00000000
i    t   rbt    i   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   hex_strt   bytet   valt	   ascii_strt   i(    (    s%   /usr/share/apport/dump_acpi_tables.pyt   dump_acpi_table   s2    
	

c         C   sz   t  j |  ƒ } xd | D]\ } t  j j |  | ƒ } t  j | ƒ j } t j | ƒ rb 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   R   R   R   t   isdirt   stdout(    (    (    s%   /usr/share/apport/dump_acpi_tables.pyt   <module>   s   $	"	