__fptr_count = _dl_pagesize / sizeof (struct hppa_fptr);
__fptr_count = GL(dl_pagesize) / sizeof (struct hppa_fptr);
__hppa_make_fptr (const struct link_map *sym_map, Elf32_Addr value,		  struct hppa_fptr **root, struct hppa_fptr *mem){  struct hppa_fptr **loc;  struct hppa_fptr *f;#ifdef _LIBC_REENTRANT  /* Make sure we are alone. We don't need a lock during bootstrap. */  if (mem == NULL)    while (testandset (&__hppa_fptr_lock));#endif  /* Search the sorted linked list for an existing entry for this     symbol.  */  loc = root;  f = *loc;  while (f != NULL && f->func <= value)    {      if (f->func == value)	goto found;      loc = &f->next;      f = *loc;    }  /* Not found.  Create a new one.  */  if (mem != NULL)    f = mem;  else if (__fptr_free != NULL)    {      f = __fptr_free;      __fptr_free = f->next;    }  else    {      if (__fptr_count == 0)	{#ifndef MAP_ANON# define MAP_ANON 0	  if (_dl_zerofd == -1)	    {	      _dl_zerofd = _dl_sysdep_open_zero_fill ();	      if (_dl_zerofd == -1)		{		  __close (fd);		  _dl_signal_error (errno, NULL, NULL,				    "cannot open zero fill device");		}	    }#endif	  __fptr_next = __mmap (0, _dl_pagesize, PROT_READ | PROT_WRITE,				MAP_ANON | MAP_PRIVATE, ANONFD, 0);	  if (__fptr_next == MAP_FAILED)	    _dl_signal_error(errno, NULL, NULL, "cannot map page for fptr");	  __fptr_count = _dl_pagesize / sizeof (struct hppa_fptr);	}      f = __fptr_next++;      __fptr_count--;    }  f->func = value;  /* GOT has already been relocated in elf_get_dynamic_info - don't     try to relocate it again.  */  f->gp = sym_map->l_info[DT_PLTGOT]->d_un.d_ptr;  f->next = *loc;  *loc = f;found:#ifdef _LIBC_REENTRANT  /* Release the lock.  Again, remember, zero means the lock is taken!  */  if (mem == NULL)    __hppa_fptr_lock = 1;#endif  /* Set bit 30 to indicate to $$dyncall that this is a PLABEL. */  return (Elf32_Addr) f | 2;}