ó
Gq]c           @   st  d  Z  d d l Z d d l Z d d l Z d d l Z d d l Z d d l Z d d l m Z d d l m	 Z	 d d l
 m Z d d l
 m Z d d l
 m Z d d	 l
 m Z d d
 l m Z d d l m Z d d l m Z d d l m Z d d l m Z d d l m Z d d l m Z d d l m Z d d l m Z d d d g Z e j d ƒ Z e j Z e j dX k Z  d Z! d Z" i e j# e j$ 6e j% e j& 6e j' e j( 6e j) e j* 6e j+ e j, 6e j% e j- 6e j. e j/ 6Z0 i e j1 e j2 6e j3 e j4 6e j5 e j6 6e j7 e j8 6e j9 e j: 6e j; e j< 6e j= e j> 6e j? e j@ 6e jA e jB 6e jC e jD 6e jE e jF 6e jG e jH 6e! e jI 6e" e jJ 6ZK eL d d d d d d d d  d! d" d# d$ d% d& d' d( d) d* d+ d, d- d. d/ d0 ƒ ZM d ZO d ZP d ZQ d ZR e d1 d2 d3 d4 d5 g ƒ ZS e d6 d2 d3 d7 d8 g ƒ ZT e d9 d: d; d< d= d> g ƒ ZU e d? d d g ƒ ZV eV ZW e d@ dA d dB dC g ƒ ZX e dD dE dF jY eX jZ ƒ ƒ Z[ dG „  Z\ dH „  Z] dI „  Z^ dJ „  Z_ dK „  Z` dL „  Za dM „  Zb e jc Zc e jd Zd ee dN „ Zf e jg Zg e jh Zh d dO „ Zi dP „  Zj dQ „  Zk dR „  Zl dS „  Zm dT „  Zn dU „  Zo dV ep f dW „  ƒ  YZq d S(Y   s'   Sun OS Solaris platform implementation.iÿÿÿÿN(   t
   namedtuple(   t   AF_INETi   (   t   _common(   t   _psposix(   t   _psutil_posix(   t   _psutil_sunos(   t   AF_INET6(   t   get_procfs_path(   t   isfile_strict(   t   memoize_when_activated(   t   sockfam_to_enum(   t   socktype_to_enum(   t   usage_percent(   t   b(   t   PY3t	   CONN_IDLEt
   CONN_BOUNDt   PROCFS_PATHt   SC_PAGE_SIZEi   i    t   IDLEt   BOUNDt   ppidi    t   rsst   vmst   create_timei   t   nicei   t   num_threadsi   t   statusi   t   ttynri   t   uidi   t   euidi	   t   gidi
   t   egidi   t	   scputimest   usert   systemt   idlet   iowaitt	   pcputimest   children_usert   children_systemt   svmemt   totalt	   availablet   percentt   usedt   freet   pmemt   pmmap_groupedt   patht	   anonymoust   lockedt	   pmmap_exts   addr perms t    c          C   s_   t  j d ƒ t }  t  j d ƒ t } } |  | } t | |  d d ƒ} t |  | | | | ƒ S(   s   Report virtual memory metrics.t   SC_PHYS_PAGESt   SC_AVPHYS_PAGESt   round_i   (   t   ost   sysconft	   PAGE_SIZER   R)   (   R*   R.   t   availR-   R,   (    (    s.   lib/python2.7/site-packages/psutil/_pssunos.pyt   virtual_memory{   s
    
c          C   sr  t  j ƒ  \ }  } t j d d t j d d d g d t j ƒ} | j ƒ  \ } } t rq | j	 t
 j j ƒ } n  | j d k r– t d | j ƒ ‚ n  | j ƒ  j d	 ƒ d
 } | sÄ t d ƒ ‚ n  d } } x^ | D]V } | j ƒ  } | d \ }	 }
 | t t |	 ƒ d ƒ 7} | t t |
 ƒ d ƒ 7} qÕ W| | } t | | d d
 ƒ} t j | | | | |  t | t ƒ S(   s   Report swap memory metrics.s   /usr/bin/envs   PATH=/usr/sbin:/sbin:%st   PATHt   swaps   -lt   stdouti    s   'swap -l' failed (retcode=%s)s   
i   s   no swap device(s) configurediþÿÿÿi   R8   (   t   cextt   swap_memt
   subprocesst   PopenR9   t   environt   PIPEt   communicateR   t   decodet   sysR@   t   encodingt
   returncodet   RuntimeErrort   stript   splitt   intR   R   t   sswapR;   (   t   sint   soutt   pR@   t   stderrt   linesR*   R.   t   linet   tt   fR-   R,   (    (    s.   lib/python2.7/site-packages/psutil/_pssunos.pyt   swap_memory†   s,    

c          C   s5   t  j ƒ  }  t g  t |  Œ  D] } t | ƒ ^ q Œ  S(   s-   Return system-wide CPU times as a named tuple(   RA   t   per_cpu_timesR!   t   zipt   sum(   t   rett   x(    (    s.   lib/python2.7/site-packages/psutil/_pssunos.pyt	   cpu_times¬   s    c          C   s)   t  j ƒ  }  g  |  D] } t | Œ  ^ q S(   s5   Return system per-CPU times as a list of named tuples(   RA   RZ   R!   (   R]   R^   (    (    s.   lib/python2.7/site-packages/psutil/_pssunos.pyRZ   ²   s    c           C   s*   y t  j d ƒ SWn t k
 r% d SXd S(   s0   Return the number of logical CPUs in the system.t   SC_NPROCESSORS_ONLNN(   R9   R:   t
   ValueErrort   None(    (    (    s.   lib/python2.7/site-packages/psutil/_pssunos.pyt   cpu_count_logical¸   s    c           C   s
   t  j ƒ  S(   s1   Return the number of physical CPUs in the system.(   RA   t   cpu_count_phys(    (    (    s.   lib/python2.7/site-packages/psutil/_pssunos.pyt   cpu_count_physicalÁ   s    c          C   s4   t  j ƒ  \ }  } } } d } t j |  | | | ƒ S(   s*   Return various CPU stats as a named tuple.i    (   RA   t	   cpu_statsR   t	   scpustats(   t   ctx_switchest
   interruptst   syscallst   trapst   soft_interrupts(    (    s.   lib/python2.7/site-packages/psutil/_pssunos.pyRf   Æ   s    c   	      C   s‘   g  } t  j ƒ  } xx | D]p } | \ } } } } | d k rF d } n  |  sd t | ƒ j sd q qd n  t j | | | | ƒ } | j | ƒ q W| S(   s   Return system disk partitions.t   nonet    (   RA   t   disk_partitionst
   disk_usageR*   R   t	   sdiskpartt   append(	   t   allt   retlistt
   partitionst	   partitiont   devicet
   mountpointt   fstypet   optst   ntuple(    (    s.   lib/python2.7/site-packages/psutil/_pssunos.pyRo   ×   s    		c      	   C   s¼  t  j j ƒ  } | d k r. | j d d ƒ n  |  | k ru t d |  d j g  | D] } t | ƒ ^ qP ƒ f ƒ ‚ n  t  j |  \ } } t j | ƒ } t	 ƒ  } x| D]} | \ }	 }
 } } } } } |
 | k rÚ q§ n  | | k rì q§ n  |
 t
 t f k r1| rt  j | Œ  } n  | r1t  j | Œ  } q1n  t | } t |
 ƒ }
 t | ƒ } | d k rƒt  j |	 |
 | | | | | ƒ } n t  j |	 |
 | | | | ƒ } | j | ƒ q§ Wt | ƒ S(   s»   Return socket connections.  If pid == -1 return system-wide
    connections (as opposed to connections opened by one process only).
    Only INET sockets are returned (UNIX are not).
    iÿÿÿÿt   unixi    s+   invalid %r kind argument; choose between %ss   , (   R   t	   conn_tmapt   copyt   popRa   t   joint   reprRA   t   net_connectionst   setR   R   t   addrt   TCP_STATUSESR
   R   t   sconnt   pconnt   addt   list(   t   kindt   _pidt   cmapR^   t   familiest   typest   rawlistR]   t   itemt   fdt   famt   type_t   laddrt   raddrR   t   pidt   nt(    (    s.   lib/python2.7/site-packages/psutil/_pssunos.pyR‚   õ   s8    5	
$c          C   s|   t  j ƒ  }  xi |  j ƒ  D][ \ } } | \ } } } } t t d ƒ rX t j | ƒ } n  t j | | | | ƒ |  | <q W|  S(   s)   Get NIC stats (isup, duplex, speed, mtu).t	   NicDuplex(   RA   t   net_if_statst   itemst   hasattrR   R˜   t	   snicstats(   R]   t   nameRš   t   isupt   duplext   speedt   mtu(    (    s.   lib/python2.7/site-packages/psutil/_pssunos.pyR™     s     c           C   s
   t  j ƒ  S(   s:   The system boot time expressed in seconds since the epoch.(   RA   t	   boot_time(    (    (    s.   lib/python2.7/site-packages/psutil/_pssunos.pyR¢   )  s    c          C   sŽ   g  }  t  j ƒ  } d } xo | D]g } | \ } } } } } }	 | sI q n  | | k r^ d } n  t j | | | | |	 ƒ }
 |  j |
 ƒ q W|  S(   s:   Return currently connected users as a list of namedtuples.s   :0.0s   :0t	   localhost(   s   :0.0s   :0(   RA   t   usersR   t   suserRr   (   Rt   R   R£   R   R"   t   ttyt   hostnamet   tstampt   user_processR–   R—   (    (    s.   lib/python2.7/site-packages/psutil/_pssunos.pyR¤   .  s    	c          C   s;   g  t  j t t ƒ  ƒ ƒ D] }  |  j ƒ  r t |  ƒ ^ q S(   s7   Returns a list of PIDs currently running on the system.(   R9   t   listdirR   R   t   isdigitRO   (   R^   (    (    s.   lib/python2.7/site-packages/psutil/_pssunos.pyt   pidsF  s    c         C   s   t  j |  ƒ S(   s&   Check for the existence of a unix pid.(   R   t
   pid_exists(   R–   (    (    s.   lib/python2.7/site-packages/psutil/_pssunos.pyR­   K  s    c            s"   t  j ˆ  ƒ ‡  f d †  ƒ } | S(   sƒ   Call callable into a try/except clause and translate ENOENT,
    EACCES and EPERM in NoSuchProcess or AccessDenied exceptions.
    c            s   y ˆ  |  | | Ž SWnå t  k
 rû } |  j d k rb d t ƒ  k r\ t |  j |  j ƒ ‚ qb ‚  n  | j t j t j f k rÂ t |  j ƒ s¤ t	 |  j |  j ƒ ‚ qÂ t
 |  j |  j |  j ƒ ‚ n  | j t j t j f k rõ t |  j |  j ƒ ‚ n  ‚  n Xd  S(   Ni    (   t   EnvironmentErrorR–   R¬   t   AccessDeniedt   _namet   errnot   ENOENTt   ESRCHR­   t   NoSuchProcesst   ZombieProcesst   _ppidt   EPERMt   EACCES(   t   selft   argst   kwargst   err(   t   fun(    s.   lib/python2.7/site-packages/psutil/_pssunos.pyt   wrapperT  s    (   t	   functoolst   wraps(   R½   R¾   (    (   R½   s.   lib/python2.7/site-packages/psutil/_pssunos.pyt   wrap_exceptionsP  s    t   Processc           B   s!  e  Z d  Z d d d d d g Z d „  Z d „  Z d „  Z d	 „  Z e e	 d
 „  ƒ ƒ Z
 e e	 d „  ƒ ƒ Z e e	 d „  ƒ ƒ Z e d „  ƒ Z e d „  ƒ Z e d „  ƒ Z e d „  ƒ Z e d „  ƒ Z e d „  ƒ Z e d „  ƒ Z e d „  ƒ Z e d „  ƒ Z e d „  ƒ Z e d „  ƒ Z e d „  ƒ Z e d „  ƒ Z e d „  ƒ Z e d „  ƒ Z e d „  ƒ Z e Z e d „  ƒ Z e d „  ƒ Z e d „  ƒ Z  d  „  Z! e d! d" „ ƒ Z" e# d# d$ ƒ Z$ e# d# d% ƒ Z% e d& „  ƒ Z& e d' „  ƒ Z' e d( „  ƒ Z( e d* d) „ ƒ Z* RS(+   s1   Wrapper class around underlying C implementation.R–   R°   R¶   t   _procfs_patht   _cachec         C   s+   | |  _  d  |  _ d  |  _ t ƒ  |  _ d  S(   N(   R–   Rb   R°   R¶   R   RÃ   (   R¹   R–   (    (    s.   lib/python2.7/site-packages/psutil/_pssunos.pyt   __init__q  s    			c         C   s!   t  j d |  j |  j f ƒ d S(   s+   Raise NSP if the process disappeared on us.s   %s/%sN(   R9   t   statRÃ   R–   (   R¹   (    (    s.   lib/python2.7/site-packages/psutil/_pssunos.pyt   _assert_alivew  s    c         C   s4   |  j  j |  ƒ |  j j |  ƒ |  j j |  ƒ d  S(   N(   t   _proc_name_and_argst   cache_activatet   _proc_basic_infot
   _proc_cred(   R¹   (    (    s.   lib/python2.7/site-packages/psutil/_pssunos.pyt   oneshot_enter}  s    c         C   s4   |  j  j |  ƒ |  j j |  ƒ |  j j |  ƒ d  S(   N(   RÈ   t   cache_deactivateRÊ   RË   (   R¹   (    (    s.   lib/python2.7/site-packages/psutil/_pssunos.pyt   oneshot_exit‚  s    c         C   s   t  j |  j |  j ƒ S(   N(   RA   t   proc_name_and_argsR–   RÃ   (   R¹   (    (    s.   lib/python2.7/site-packages/psutil/_pssunos.pyRÈ   ‡  s    c         C   s:   t  j |  j |  j ƒ } t | ƒ t t ƒ k s6 t ‚ | S(   N(   RA   t   proc_basic_infoR–   RÃ   t   lent   proc_info_mapt   AssertionError(   R¹   R]   (    (    s.   lib/python2.7/site-packages/psutil/_pssunos.pyRÊ   Œ  s    c         C   s   t  j |  j |  j ƒ S(   N(   RA   t	   proc_credR–   RÃ   (   R¹   (    (    s.   lib/python2.7/site-packages/psutil/_pssunos.pyRË   “  s    c         C   s   |  j  ƒ  d S(   Ni    (   RÈ   (   R¹   (    (    s.   lib/python2.7/site-packages/psutil/_pssunos.pyR   ˜  s    c         C   sC   y! t  j d |  j |  j f ƒ SWn t k
 r4 n X|  j ƒ  d S(   Ns   %s/%s/path/a.outRn   (   R9   t   readlinkRÃ   R–   t   OSErrort   cmdline(   R¹   (    (    s.   lib/python2.7/site-packages/psutil/_pssunos.pyt   exe  s    
c         C   s   |  j  ƒ  d j d ƒ S(   Ni   R5   (   RÈ   RN   (   R¹   (    (    s.   lib/python2.7/site-packages/psutil/_pssunos.pyR×   ª  s    c         C   s   t  j |  j |  j ƒ S(   N(   RA   t   proc_environR–   RÃ   (   R¹   (    (    s.   lib/python2.7/site-packages/psutil/_pssunos.pyRE   ®  s    c         C   s   |  j  ƒ  t d S(   NR   (   RÊ   RÒ   (   R¹   (    (    s.   lib/python2.7/site-packages/psutil/_pssunos.pyR   ²  s    c         C   s   |  j  ƒ  t d S(   NR   (   RÊ   RÒ   (   R¹   (    (    s.   lib/python2.7/site-packages/psutil/_pssunos.pyR   ¶  s    c         C   s   |  j  ƒ  t d S(   NR   (   RÊ   RÒ   (   R¹   (    (    s.   lib/python2.7/site-packages/psutil/_pssunos.pyt   nice_getº  s    c         C   s:   |  j  d k r' t |  j  |  j ƒ ‚ n  t j |  j  | ƒ S(   Ni   i   (   i   i   (   R–   R¯   R°   t
   cext_posixt   setpriority(   R¹   t   value(    (    s.   lib/python2.7/site-packages/psutil/_pssunos.pyt   nice_setÁ  s    c         C   s   |  j  ƒ  t d |  _ |  j S(   NR   (   RÊ   RÒ   R¶   (   R¹   (    (    s.   lib/python2.7/site-packages/psutil/_pssunos.pyR   Ë  s    c         C   sw   y" |  j  ƒ  \ } } } } } } Wn? t k
 rc |  j ƒ  t d } |  j ƒ  t d } d  } n Xt j | | | ƒ S(   NR   R   (   RË   R¯   RÊ   RÒ   Rb   R   t   puids(   R¹   t   realt	   effectivet   savedt   _(    (    s.   lib/python2.7/site-packages/psutil/_pssunos.pyt   uidsÐ  s    "
c         C   sw   y" |  j  ƒ  \ } } } } } } Wn? t k
 rc |  j ƒ  t d } |  j ƒ  t d } d  } n Xt j | | | ƒ S(   NR   R    (   RË   R¯   RÊ   RÒ   Rb   R   Rß   (   R¹   Rã   Rà   Rá   Râ   (    (    s.   lib/python2.7/site-packages/psutil/_pssunos.pyt   gidsÚ  s    "
c         C   sd   y t  j |  j |  j ƒ } Wn8 t k
 rV } | j t j k rP t rP d } qW ‚  n Xt j	 | Œ  S(   Ng        (   g        g        g        g        (
   RA   t   proc_cpu_timesR–   RÃ   RÖ   R±   t	   EOVERFLOWt	   IS_64_BITR   R&   (   R¹   t   timesR¼   (    (    s.   lib/python2.7/site-packages/psutil/_pssunos.pyR_   ä  s    	c         C   s   t  j |  j |  j ƒ S(   N(   RA   t   proc_cpu_numR–   RÃ   (   R¹   (    (    s.   lib/python2.7/site-packages/psutil/_pssunos.pyt   cpu_numö  s    c         C   s»   |  j  } t } t |  j ƒ  t d ƒ } | t j k r¤ xi d D]^ } y! t j d | |  j	 | f ƒ SWq? t
 k
 rœ } | j t j k r– t } q? n  ‚  q? Xq? Wn  | r· |  j ƒ  n  d  S(   NR   i    i   i   iÿ   s   %s/%d/path/%d(   i    i   i   iÿ   (   RÃ   t   FalseRÁ   RÊ   RÒ   RA   t   PRNODEVR9   RÕ   R–   RÖ   R±   R²   t   TrueRÇ   (   R¹   t   procfs_patht
   hit_enoentR¦   R^   R¼   (    (    s.   lib/python2.7/site-packages/psutil/_pssunos.pyt   terminalú  s     	c         C   st   |  j  } y t j d | |  j f ƒ SWnF t k
 ro } | j t j k ri t j d | |  j f ƒ d  S‚  n Xd  S(   Ns   %s/%s/path/cwds   %s/%s(	   RÃ   R9   RÕ   R–   RÖ   R±   R²   RÆ   Rb   (   R¹   Rï   R¼   (    (    s.   lib/python2.7/site-packages/psutil/_pssunos.pyt   cwd  s    	c         C   s=   |  j  ƒ  } | t d d } | t d d } t | | ƒ S(   NR   i   R   (   RÊ   RÒ   R/   (   R¹   R]   R   R   (    (    s.   lib/python2.7/site-packages/psutil/_pssunos.pyt   memory_info  s    c         C   s$   |  j  ƒ  t d } t j | d ƒ S(   NR   t   ?(   RÊ   RÒ   t   PROC_STATUSESt   get(   R¹   t   code(    (    s.   lib/python2.7/site-packages/psutil/_pssunos.pyR   %  s    c   
      C   sÿ   |  j  } g  } t j d | |  j f ƒ } t } x´ | D]¬ } t | ƒ } y" t j |  j | | ƒ \ } } WnS t k
 rÁ } | j	 t	 j
 k r t r q8 n  | j	 t	 j k r» t } q8 n  ‚  q8 Xt j | | | ƒ }	 | j |	 ƒ q8 W| rû |  j ƒ  n  | S(   Ns	   %s/%d/lwp(   RÃ   R9   Rª   R–   Rì   RO   RA   t   query_process_threadR®   R±   Rç   Rè   R²   Rî   R   t   pthreadRr   RÇ   (
   R¹   Rï   R]   t   tidsRð   t   tidt   utimet   stimeR¼   R—   (    (    s.   lib/python2.7/site-packages/psutil/_pssunos.pyt   threads+  s*    	c   	      C   s  g  } t  } |  j } d | |  j f } xÆ t j d | |  j f ƒ D]¨ } t j j | | ƒ } t j j | ƒ rE y t j | ƒ } Wn4 t	 k
 r» } | j
 t
 j k rµ t } qE n  ‚  qí Xt | ƒ rí | j t j | t | ƒ ƒ ƒ qí qE qE W| r|  j ƒ  n  | S(   Ns
   %s/%d/paths   %s/%d/fd(   Rì   RÃ   R–   R9   Rª   R1   R€   t   islinkRÕ   RÖ   R±   R²   Rî   R   Rr   R   t	   popenfileRO   RÇ   (	   R¹   Rt   Rð   Rï   t   pathdirR‘   R1   t   fileR¼   (    (    s.   lib/python2.7/site-packages/psutil/_pssunos.pyt
   open_filesL  s&    	#)c         c   sË  d | } t  j | d t d t  j d t  j ƒ} | j ƒ  \ } } t r€ g  | | f D] } | j t j j	 ƒ ^ qV \ } } n  | j
 d k rü d | j ƒ  k r¹ t |  j |  j ƒ ‚ n  d | j ƒ  k rã t |  j |  j ƒ ‚ n  t d | | f ƒ ‚ n  | j d	 ƒ d
 } xµ t | ƒ D]§ \ } }	 |	 j ƒ  }	 |	 j d ƒ r|	 j d d
 ƒ d
 }
 | | d
 j ƒ  } | d k r…t j } n | d k rt j } n d } d t j | |
 d t j f VqqWd S(   s<   Get UNIX sockets used by process by parsing 'pfiles' output.s	   pfiles %st   shellR@   RT   i    s   permission denieds   no such processs   %r command error
%ss   
i   s   sockname: AF_UNIXR5   t   SOCK_STREAMt
   SOCK_DGRAMiÿÿÿÿRn   N(   RC   RD   Rî   RF   RG   R   RH   RI   R@   RJ   RK   t   lowerR¯   R–   R°   R´   RL   RN   t	   enumeratet   lstript
   startswithRM   t   socketR  R  t   AF_UNIXR   t	   CONN_NONE(   R¹   R–   t   cmdRS   R@   RT   R^   RU   t   iRV   R1   t   type(    (    s.   lib/python2.7/site-packages/psutil/_pssunos.pyt   _get_unix_socketsd  s2    
4t   inetc         C   sƒ   t  | d |  j ƒ} | s; t j d |  j |  j f ƒ n  | d k r | j g  |  j |  j ƒ D] } t j | Œ  ^ q` ƒ n  | S(   NR‹   s   %s/%sRs   R|   (   Rs   R|   (	   R‚   R–   R9   RÆ   RÃ   t   extendR  R   R‡   (   R¹   RŠ   R]   t   conn(    (    s.   lib/python2.7/site-packages/psutil/_pssunos.pyt   connections„  s     	/t   mmaps   path rss anon lockeds   addr perms path rss anon lockedc         C   s]  d „  } |  j  } g  } y t j |  j | ƒ } Wn3 t k
 rf } | j t j k r` t r` g  S‚  n Xt } xÖ | D]Î } | \ } }	 }
 } } } } | | |	 ƒ } | j	 d ƒ s#y# t
 j d | |  j | f ƒ } Wq#t k
 r} | j t j k rd | |  j | f } t } q ‚  q#Xn  | j | |
 | | | | f ƒ qt W| rY|  j ƒ  n  | S(   Nc         S   s4   d t  |  ƒ d j d ƒ t  | ƒ d j d ƒ f S(   Ns   %s-%si   t   L(   t   hexRM   (   t   startt   end(    (    s.   lib/python2.7/site-packages/psutil/_pssunos.pyt   toaddr›  s    t   [s   %s/%s/path/%s(   RÃ   RA   t   proc_memory_mapsR–   RÖ   R±   Rç   Rè   Rì   R
  R9   RÕ   R²   Rî   Rr   RÇ   (   R¹   R  Rï   Rt   R   R¼   Rð   R   R„   t   addrsizet   permR   R   t   anonR3   (    (    s.   lib/python2.7/site-packages/psutil/_pssunos.pyt   memory_maps™  s4    			
#c         C   s#   t  t j d |  j |  j f ƒ ƒ S(   Ns   %s/%s/fd(   RÑ   R9   Rª   RÃ   R–   (   R¹   (    (    s.   lib/python2.7/site-packages/psutil/_pssunos.pyt   num_fdsÈ  s    c         C   s   t  j t j |  j |  j ƒ Œ  S(   N(   R   t   pctxswRA   t   proc_num_ctx_switchesR–   RÃ   (   R¹   (    (    s.   lib/python2.7/site-packages/psutil/_pssunos.pyt   num_ctx_switchesÌ  s    c         C   s   t  j |  j | |  j ƒ S(   N(   R   t   wait_pidR–   R°   (   R¹   t   timeout(    (    s.   lib/python2.7/site-packages/psutil/_pssunos.pyt   waitÑ  s    N(+   t   __name__t
   __module__t   __doc__t	   __slots__RÅ   RÇ   RÌ   RÎ   RÁ   R	   RÈ   RÊ   RË   R   RØ   R×   RE   R   R   RÚ   RÞ   R   Rä   Rå   R_   Rë   Rñ   Rò   Ró   t   memory_full_infoR   Rþ   R  R  R  R    t   nt_mmap_groupedt   nt_mmap_extR!  R"  R%  Rb   R(  (    (    (    s.   lib/python2.7/site-packages/psutil/_pssunos.pyRÂ   l  sT   				


!	 /I       (r   R+  R±   R¿   R9   R  RC   RI   t   collectionsR    R   Rn   R   R   R   RÛ   R   RA   R   R   R   R	   R
   R   R   t   _compatR   R   t   __extra__all__R:   R;   t   AF_LINKt   maxsizeRè   R   R   t   STATUS_SLEEPINGt   SSLEEPt   STATUS_RUNNINGt   SRUNt   STATUS_ZOMBIEt   SZOMBt   STATUS_STOPPEDt   SSTOPt   STATUS_IDLEt   SIDLt   SONPROCt   STATUS_WAITINGt   SWAITRõ   t   CONN_ESTABLISHEDt   TCPS_ESTABLISHEDt   CONN_SYN_SENTt   TCPS_SYN_SENTt   CONN_SYN_RECVt   TCPS_SYN_RCVDt   CONN_FIN_WAIT1t   TCPS_FIN_WAIT_1t   CONN_FIN_WAIT2t   TCPS_FIN_WAIT_2t   CONN_TIME_WAITt   TCPS_TIME_WAITt
   CONN_CLOSEt   TCPS_CLOSEDt   CONN_CLOSE_WAITt   TCPS_CLOSE_WAITt   CONN_LAST_ACKt   TCPS_LAST_ACKt   CONN_LISTENt   TCPS_LISTENt   CONN_CLOSINGt   TCPS_CLOSINGR  t   PSUTIL_CONN_NONEt	   TCPS_IDLEt
   TCPS_BOUNDR…   t   dictRÒ   Rb   R´   Rµ   R¯   t   TimeoutExpiredR!   R&   R)   R/   t   pfullmemR0   R€   t   _fieldsR4   R=   RY   R_   RZ   Rc   Re   Rf   t   disk_io_countersRp   Rì   Ro   t   net_io_counterst   net_if_addrsR‚   R™   R¢   R¤   R¬   R­   RÁ   t   objectRÂ   (    (    (    s.   lib/python2.7/site-packages/psutil/_pssunos.pyt   <module>   sÂ   	
				&										$						