break;  case RTLD_DI_LMID: *(Lmid_t *) args->arg = l->l_ns;
dlinfo_doit (void *argsblock){  struct dlinfo_args *const args = argsblock;  struct link_map *l = args->handle;#if 0  if (args->handle == RTLD_SELF)    {      /* Find the highest-addressed object that CALLER is not below.  */      for (l = GL(dl_loaded); l != NULL; l = l->l_next)	if (caller >= l->l_map_start && caller < l->l_map_end)	  /* There must be exactly one DSO for the range of the virtual	     memory.  Otherwise something is really broken.  */	  break;      if (l == NULL)	GLRO(dl_signal_error) (0, NULL, NULL, N_("\RTLD_SELF used in code not dynamically loaded"));    }#endif  switch (args->request)    {    case RTLD_DI_LMID:    case RTLD_DI_CONFIGADDR:    default:      GLRO(dl_signal_error) (0, NULL, NULL, N_("unsupported dlinfo request"));      break;    case RTLD_DI_LINKMAP:      *(struct link_map **) args->arg = l;      break;    case RTLD_DI_SERINFO:      _dl_rtld_di_serinfo (l, args->arg, false);      break;    case RTLD_DI_SERINFOSIZE:      _dl_rtld_di_serinfo (l, args->arg, true);      break;    case RTLD_DI_ORIGIN:      strcpy (args->arg, l->l_origin);      break;    }}