fp->_IO_read_ptr = fp->_IO_read_end; if (fp->_IO_read_end < fp->_IO_buf_end && _IO_file_underflow_mmap (fp) != EOF) have = fp->_IO_read_end - read_ptr;
if (__builtin_expect (mmap_remap_check (fp), 0))  return s - (char *) data + _IO_XSGETN (fp, data, n);  read_ptr = fp->_IO_read_ptr; have = fp->_IO_read_end - read_ptr;
_IO_file_xsgetn_mmap (fp, data, n)     _IO_FILE *fp;     void *data;     _IO_size_t n;{  register _IO_size_t have;  char *read_ptr = fp->_IO_read_ptr;  register char *s = (char *) data;  have = fp->_IO_read_end - fp->_IO_read_ptr;  if (have < n)    {      if (__builtin_expect (_IO_in_backup (fp), 0))	{#ifdef _LIBC	  s = __mempcpy (s, read_ptr, have);#else	  memcpy (s, read_ptr, have);	  s += have;#endif	  n -= have;	  _IO_switch_to_main_get_area (fp);	  read_ptr = fp->_IO_read_ptr;	  have = fp->_IO_read_end - fp->_IO_read_ptr;	}      if (have < n)	{	  /* Maybe the read buffer is not yet fully set up.  */	  fp->_IO_read_ptr = fp->_IO_read_end;	  if (fp->_IO_read_end < fp->_IO_buf_end	      && _IO_file_underflow_mmap (fp) != EOF)	    have = fp->_IO_read_end - read_ptr;	}    }  if (have < n)    fp->_flags |= _IO_EOF_SEEN;  if (have != 0)    {      have = MIN (have, n);#ifdef _LIBC      s = __mempcpy (s, read_ptr, have);#else      memcpy (s, read_ptr, have);      s += have;#endif      fp->_IO_read_ptr = read_ptr + have;    }  return s - (char *) data;}