<?xml version="1.0"?>
<def format="1">
  <function name="usleep">
    <noreturn>false</noreturn>
    <arg nr="1">
      <not-bool/>
      <valid>0:999999</valid>
    </arg>
  </function>
  <function name="_exit">
    <noreturn>true</noreturn>
  </function>
  <function name="closedir">
    <noreturn>false</noreturn>
    <arg nr="1">
      <not-bool/>
      <not-uninit/>
      <not-null/>
    </arg>
  </function>
  <function name="strdup">
    <noreturn>false</noreturn>
    <arg nr="1">
      <not-null/>
      <not-uninit/>
    </arg>
  </function>
  <function name="strdupa">
    <use-retval/>
    <noreturn>false</noreturn>
    <arg nr="1">
      <not-null/>
      <not-uninit/>
    </arg>
  </function>
  <function name="strndup">
    <noreturn>false</noreturn>
    <arg nr="1">
      <not-null/>
      <not-uninit/>
    </arg>
    <arg nr="2">
      <not-uninit/>
    </arg>
  </function>
  <function name="strndupa">
    <use-retval/>
    <noreturn>false</noreturn>
    <arg nr="1">
      <not-null/>
      <not-uninit/>
    </arg>
    <arg nr="2">
      <not-uninit/>
    </arg>
  </function>
  <function name="wcsdup">
    <noreturn>false</noreturn>
    <arg nr="1">
      <not-null/>
      <not-uninit/>
    </arg>
  </function>
  <function name="mkstemp">
    <noreturn>false</noreturn>
    <arg nr="1">
      <not-uninit/>
      <not-null/>
    </arg>
    <leak-ignore/>
  </function>
  <function name="mkdtemp">
    <noreturn>false</noreturn>
    <arg nr="1">
      <not-uninit/>
      <not-null/>
    </arg>
    <leak-ignore/>
  </function>
  <function name="mktemp">
    <noreturn>false</noreturn>
    <arg nr="1">
      <not-uninit/>
      <not-null/>
    </arg>
    <leak-ignore/>
  </function>
  <function name="getcwd">
    <noreturn>false</noreturn>
    <arg nr="2">
      <not-uninit/>
    </arg>
    <leak-ignore/>
  </function>
  <function name="mkdir">
    <noreturn>false</noreturn>
    <arg nr="1">
      <not-uninit/>
      <not-null/>
    </arg>
    <arg nr="2">
      <not-uninit/>
    </arg>
    <leak-ignore/>
  </function>
  <function name="rmdir">
    <noreturn>false</noreturn>
    <arg nr="1">
      <not-uninit/>
      <not-null/>
    </arg>
    <leak-ignore/>
  </function>
  <function name="chdir">
    <noreturn>false</noreturn>
    <arg nr="1">
      <not-uninit/>
      <not-null/>
    </arg>
    <leak-ignore/>
  </function>
  <function name="link">
    <noreturn>false</noreturn>
    <arg nr="1">
      <not-uninit/>
      <not-null/>
    </arg>
    <arg nr="2">
      <not-uninit/>
      <not-null/>
    </arg>
    <leak-ignore/>
  </function>
  <function name="rename">
    <noreturn>false</noreturn>
    <arg nr="1">
      <not-uninit/>
      <not-null/>
    </arg>
    <leak-ignore/>
  </function>
  <function name="isatty">
    <noreturn>false</noreturn>
    <arg nr="1">
      <not-uninit/>
    </arg>
    <leak-ignore/>
  </function>
  <function name="popen">
    <noreturn>false</noreturn>
    <arg nr="1">
      <not-null/>
      <not-uninit/>
    </arg>
    <arg nr="2">
      <not-null/>
      <not-uninit/>
    </arg>
  </function>
  <function name="pclose">
    <noreturn>false</noreturn>
    <arg nr="1">
      <not-null/>
      <not-uninit/>
    </arg>
  </function>
  <function name="fdopen">
    <noreturn>false</noreturn>
    <arg nr="1">
      <not-null/>
      <not-uninit/>
    </arg>
  </function>
  <function name="readdir">
    <noreturn>false</noreturn>
    <arg nr="1">
      <not-null/>
      <not-uninit/>
    </arg>
    <leak-ignore/>
  </function>
  <function name="rewinddir">
    <noreturn>false</noreturn>
    <arg nr="1">
      <not-null/>
      <not-uninit/>
    </arg>
    <leak-ignore/>
  </function>
  <function name="rand_r">
    <noreturn>false</noreturn>
    <leak-ignore/>
    <arg nr="1">
      <not-null/>
    </arg>
  </function>
  <function name="memmem">
    <noreturn>false</noreturn>
    <leak-ignore/>
    <arg nr="1">
      <not-uninit/>
      <not-null/>
    </arg>
    <arg nr="2">
      <not-uninit/>
    </arg>
    <arg nr="3">
      <not-uninit/>
      <not-null/>
    </arg>
    <arg nr="4">
      <not-uninit/>
    </arg>
  </function>
  <function name="memrchr">
    <noreturn>false</noreturn>
    <leak-ignore/>
    <arg nr="1">
      <not-null/>
      <not-uninit/>
    </arg>
    <arg nr="2">
      <not-uninit/>
      <not-bool/>
      <valid>0:</valid>
    </arg>
    <arg nr="3">
      <not-bool/>
      <valid>0:</valid>
    </arg>
  </function>
  <function name="rawmemchr">
    <noreturn>false</noreturn>
    <leak-ignore/>
    <arg nr="1">
      <not-null/>
      <not-uninit/>
    </arg>
    <arg nr="2">
      <not-uninit/>
      <not-bool/>
      <valid>0:</valid>
    </arg>
  </function>
  <function name="strcasecmp">
    <noreturn>false</noreturn>
    <leak-ignore/>
    <arg nr="1">
      <not-uninit/>
      <not-null/>
    </arg>
    <arg nr="2">
      <not-uninit/>
      <not-null/>
    </arg>
  </function>
  <function name="strncasecmp">
    <noreturn>false</noreturn>
    <leak-ignore/>
    <arg nr="1">
      <not-uninit/>
      <not-null/>
    </arg>
    <arg nr="2">
      <not-uninit/>
      <not-null/>
    </arg>
    <arg nr="3">
      <not-bool/>
      <valid>0:</valid>
    </arg>
  </function>
  <function name="read">
    <arg nr="1">
      <not-uninit/>
    </arg>
    <arg nr="2">
      <minsize type="argvalue" arg="3"/>
    </arg>
    <arg nr="3">
      <not-uninit/>
    </arg>
  </function>
  <function name="write">
    <arg nr="1">
      <not-uninit/>
    </arg>
    <arg nr="2">
      <minsize type="argvalue" arg="3"/>
      <not-uninit/>
    </arg>
    <arg nr="3">
      <not-uninit/>
    </arg>
  </function>
  <function name="recv">
    <arg nr="1">
      <not-uninit/>
    </arg>
    <arg nr="2">
      <minsize type="argvalue" arg="3"/>
    </arg>
    <arg nr="3">
      <not-uninit/>
    </arg>
    <arg nr="4">
      <not-uninit/>
    </arg>
  </function>
  <function name="recvfrom">
    <arg nr="1">
      <not-uninit/>
    </arg>
    <arg nr="2">
      <minsize type="argvalue" arg="3"/>
    </arg>
    <arg nr="3">
      <not-uninit/>
    </arg>
    <arg nr="4">
      <not-uninit/>
    </arg>
  </function>
  <function name="send">
    <arg nr="1">
      <not-uninit/>
    </arg>
    <arg nr="2">
      <minsize type="argvalue" arg="3"/>
    </arg>
    <arg nr="3">
      <not-uninit/>
    </arg>
    <arg nr="4">
      <not-uninit/>
    </arg>
  </function>
  <function name="sendto">
    <arg nr="1">
      <not-uninit/>
    </arg>
    <arg nr="2">
      <minsize type="argvalue" arg="3"/>
    </arg>
    <arg nr="3">
      <not-uninit/>
    </arg>
    <arg nr="4">
      <not-uninit/>
    </arg>
  </function>
  <!-- void *mmap(void *addr, size_t length, int prot, int flags, int fd, off_t offset); -->
  <function name="mmap">
    <use-retval/>
    <noreturn>false</noreturn>
    <arg nr="1">
      <not-uninit/>
    </arg>
    <arg nr="2">
      <not-uninit/>
    </arg>
    <arg nr="3">
      <not-uninit/>
    </arg>
    <arg nr="4">
      <not-uninit/>
    </arg>
    <arg nr="5">
      <not-uninit/>
    </arg>
    <arg nr="6">
      <not-uninit/>
    </arg>
    <leak-ignore/>
  </function>
  <!-- void *mmap64(void *addr, size_t length, int prot, int flags, int fd, off64_t offset); -->
  <function name="mmap64">
    <use-retval/>
    <noreturn>false</noreturn>
    <arg nr="1">
      <not-uninit/>
    </arg>
    <arg nr="2">
      <not-uninit/>
    </arg>
    <arg nr="3">
      <not-uninit/>
    </arg>
    <arg nr="4">
      <not-uninit/>
    </arg>
    <arg nr="5">
      <not-uninit/>
    </arg>
    <arg nr="6">
      <not-uninit/>
    </arg>
    <leak-ignore/>
  </function>
  <!-- int munmap(void *addr, size_t length); -->
  <function name="munmap">
    <noreturn>false</noreturn>
    <arg nr="1">
      <not-uninit/>
      <not-null/>
    </arg>
    <arg nr="2">
      <not-uninit/>
    </arg>
  </function>
  <memory>
    <dealloc>free</dealloc>
    <alloc init="true">strdup</alloc>
    <alloc init="true">strndup</alloc>
    <alloc init="true">wcsdup</alloc>
  </memory>
  <memory>
    <dealloc>munmap</dealloc>
    <alloc init="true">mmap</alloc>
    <alloc init="true">mmap64</alloc>
  </memory>
  <resource>
    <dealloc>close</dealloc>
    <alloc init="true">open</alloc>
    <alloc init="true">socket</alloc>
  </resource>
  <resource>
    <dealloc>closedir</dealloc>
    <alloc init="true">opendir</alloc>
    <alloc init="true">fdopendir</alloc>
  </resource>
  <resource>
    <dealloc>fclose</dealloc>
    <alloc init="true">fdopen</alloc>
  </resource>
  <resource>
    <dealloc>pclose</dealloc>
    <alloc init="true">popen</alloc>
  </resource>
  <podtype name="in_port_t" sign="u" size="2"/>
  <podtype name="in_addr_t" sign="u" size="4"/>
  <podtype name="socklen_t" sign="u" size="4"/>
  <podtype name="sa_family_t" sign="u" size="2"/>
</def>