1998-01-31 21:18  Ulrich Drepper  <drepper@cygnus.com>

	* sysdeps/generic/dl-sysdep.c (_dl_show_aux): Print newline after
	AT_PLATFORM string.  Pretty print AT_BASE info.

	* sysdeps/generic/dl-sysdep.c: Include <dl-procinfo.h>.
	(_dl_show_aux): Call _dl_procinfo to print AT_HWCAP info.
	* sysdeps/generic/dl-procinfo.h: New file.
	* sysdeps/unix/sysv/linux/dl-procinfo.h: New file.
This commit is contained in:
Ulrich Drepper 1998-01-31 13:28:12 +00:00
parent 4d06461a76
commit f54de3b555
4 changed files with 119 additions and 7 deletions

View File

@ -1,3 +1,13 @@
1998-01-31 21:18 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/generic/dl-sysdep.c (_dl_show_aux): Print newline after
AT_PLATFORM string. Pretty print AT_BASE info.
* sysdeps/generic/dl-sysdep.c: Include <dl-procinfo.h>.
(_dl_show_aux): Call _dl_procinfo to print AT_HWCAP info.
* sysdeps/generic/dl-procinfo.h: New file.
* sysdeps/unix/sysv/linux/dl-procinfo.h: New file.
1998-01-31 20:52 Ulrich Drepper <drepper@cygnus.com>
* nscd/grpcache.c (cache_grpinit): Let calloc do the multiplication.

View File

@ -0,0 +1,27 @@
/* Stub version of processor capability information handling macros.
Copyright (C) 1998 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#ifndef _DL_PROCINFO_H
#define _DL_PROCINFO_H 1
/* We cannot provide a general printing function. */
#define _dl_procinfo(word) -1
#endif /* dl-procinfo.h */

View File

@ -1,5 +1,5 @@
/* Operating system support for run-time dynamic linker. Generic Unix version.
Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -28,6 +28,7 @@
#include <stdio-common/_itoa.h>
#include <dl-machine.h>
#include <dl-procinfo.h>
extern int _dl_argc;
extern char **_dl_argv;
@ -201,7 +202,7 @@ _dl_show_auxv (void)
"\n", NULL);
break;
case AT_BASE:
_dl_sysdep_message ("AT_BASE: 0x",
_dl_sysdep_message ("AT_BASE: 0x",
_itoa_word (av->a_un.a_val, buf + sizeof buf - 1,
16, 0),
"\n", NULL);
@ -231,13 +232,14 @@ _dl_show_auxv (void)
"\n", NULL);
break;
case AT_PLATFORM:
_dl_sysdep_message ("AT_PLATFORM: ", av->a_un.a_ptr, NULL);
_dl_sysdep_message ("AT_PLATFORM: ", av->a_un.a_ptr, "\n", NULL);
break;
case AT_HWCAP:
_dl_sysdep_message ("AT_HWCAP: ",
_itoa_word (av->a_un.a_val, buf + sizeof buf - 1,
16, 0),
"\n", NULL);
if (_dl_procinfo (av->a_un.a_val) < 0)
_dl_sysdep_message ("AT_HWCAP: ",
_itoa_word (av->a_un.a_val, buf + sizeof buf - 1,
16, 0),
"\n", NULL);
break;
}
}

View File

@ -0,0 +1,73 @@
/* Linux/i386 version of processor capability information handling macros.
Copyright (C) 1998 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#ifndef _DL_PROCINFO_H
#define _DL_PROCINFO_H 1
static inline int
__attribute__ ((unused))
_dl_procinfo (int word)
{
/* This table should match the information from arch/i386/kernel/setup.c
in the kernel sources. */
static const char *x86_cap_flags[] =
{
"fpu", "vme", "de", "pse", "tsc", "msr", "pae", "mce",
"cx8", "apic", "10", "sep", "mtrr", "pge", "mca", "cmov",
"fcmov", "17", "18", "19", "20", "21", "22", "mmx",
"cxmmx", "25", "26", "27", "28", "29", "30", "amd3d"
};
int i;
_dl_sysdep_message ("AT_HWCAP: ", NULL);
for (i = 0; i < 32; ++i)
if (word & (1 << i))
_dl_sysdep_message (" ", x86_cap_flags[i], NULL);
_dl_sysdep_message ("\n", NULL);
return 0;
}
enum
{
HWCAP_I386_FPU = 1 << 0,
HWCAP_I386_VME = 1 << 1,
HWCAP_I386_DE = 1 << 2,
HWCAP_I386_PSE = 1 << 3,
HWCAP_I386_TSC = 1 << 4,
HWCAP_I386_MSR = 1 << 5,
HWCAP_I386_PAE = 1 << 6,
HWCAP_I386_MCE = 1 << 7,
HWCAP_I386_CX8 = 1 << 8,
HWCAP_I386_APIC = 1 << 9,
HWCAP_I386_SEP = 1 << 11,
HWCAP_I386_MTRR = 1 << 12,
HWCAP_I386_PGE = 1 << 13,
HWCAP_I386_MCA = 1 << 14,
HWCAP_I386_CMOV = 1 << 15,
HWCAP_I386_FCMOV = 1 << 16,
HWCAP_I386_MMX = 1 << 23,
HWCAP_I386_CXMMX = 1 << 24,
HWCAP_I386_AMD3D = 1 << 31
};
#endif /* dl-procinfo.h */