about summary refs log tree commit diff
path: root/sysdeps/unix/sysv/linux/alpha
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>1996-08-12 01:42:37 +0000
committerUlrich Drepper <drepper@redhat.com>1996-08-12 01:42:37 +0000
commita3e59be8d1e0dbb1d2ab25c3dc4b0ad04e159ad2 (patch)
tree4e507bb1c5005fdd7180feff4fa4729ca3790a8a /sysdeps/unix/sysv/linux/alpha
parent267ca16a67be70e0361c212e805d43884aee4506 (diff)
downloadglibc-a3e59be8d1e0dbb1d2ab25c3dc4b0ad04e159ad2.tar.gz
glibc-a3e59be8d1e0dbb1d2ab25c3dc4b0ad04e159ad2.tar.xz
glibc-a3e59be8d1e0dbb1d2ab25c3dc4b0ad04e159ad2.zip
Mon Aug 12 03:31:58 1996  Ulrich Drepper  <drepper@cygnus.com>

	* nss/nsswitch.c (__nss_configure_lookup):  New function.
	Allows to specify services.
	* nss/XXX-lookup.h: Rename database variable and make global.
	* nss/databases.def: New file.  Real names of all databases.

	* nss/nss.h: New file.  Contains declaration useful for users
	and service developers.
	* nss/nsswitch.h: Move some declarations to nss/nss.h.
	* nss.h: New file.  Wrapper around nss/nss.h.

	* nss/Makefile (headers): Add nss.h.
	(distributes): Add databases.h.

Sun Aug 11 16:19:42 1996  Ulrich Drepper  <drepper@cygnus.com>

	Help the poor people with fast machines by making sure only
	one `ar' commands works on the library.
	* autolock.sh: New file.  Written by Tom Tromey.
	* Makerules (do-ar): Call autolock.sh shell script instead of
	directly using `ar'.
	* config.make.in: Make configuration variable AUTOLOCK which
	gets initialized by configure.
	* configure.in: Define variable AUTOLOCK to point to autolock.sh
	script and mark it to substitute.

	* string/Makefile: Add -fno-builtin for tst-strlen.c, too.

	* elf/dl-lookup.c (_dl_lookup_symbol): Allow self-referencing.
	Patch by David Mosberger-Tang.

Sun Aug 11 01:12:38 1996  Richard Henderson  <rth@tamu.edu>

	* sysdeps/alpha/dl-machine.h (elf_alpha_fix_plt): Optimize LD_BIND_NOW
	startup by moving Icache flush from here ...
	(ELF_MACHINE_RUNTIME_TRAMPOLINE): ... to here.
	(ELF_MACHINE_USER_ADDRESS_MASK): Delete; it is unused.

	* sysdeps/alpha/divrem.h: Update comment to reflect the actual
	calling conventions.  The code is already correct.

Sun Aug 11 01:06:42 1996  Richard Henderson  <rth@tamu.edu>

	* string/Makefile: Compile tester with -fno-builtin as we want to
	test our implementations, not gcc's.
Diffstat (limited to 'sysdeps/unix/sysv/linux/alpha')
-rw-r--r--sysdeps/unix/sysv/linux/alpha/ioperm.c46
1 files changed, 30 insertions, 16 deletions
diff --git a/sysdeps/unix/sysv/linux/alpha/ioperm.c b/sysdeps/unix/sysv/linux/alpha/ioperm.c
index 56331cb596..d24eabe473 100644
--- a/sysdeps/unix/sysv/linux/alpha/ioperm.c
+++ b/sysdeps/unix/sysv/linux/alpha/ioperm.c
@@ -59,14 +59,16 @@ I/O address space that's 512MB large!).  */
  * so the following defines apply to LCA as well.
  */
 #define APECS_IO_BASE		(0xfffffc01c0000000UL)
+#define APECS_SPARSE_MEM	(0xfffffc0200000000UL)
 #define APECS_DENSE_MEM		(0xfffffc0300000000UL)
 
-#define ALCOR_IO_BASE		(0xfffffc8580000000UL)
-#define ALCOR_DENSE_MEM		(0xfffffc8600000000UL)
+#define CIA_IO_BASE		(0xfffffc8580000000UL)
+#define CIA_SPARSE_MEM		(0xfffffc8000000000UL)
+#define CIA_DENSE_MEM		(0xfffffc8600000000UL)
 
 
 enum {
-  IOSYS_JENSEN = 0, IOSYS_APECS = 1, IOSYS_ALCOR = 2
+  IOSYS_JENSEN = 0, IOSYS_APECS = 1, IOSYS_CIA = 2
 } iosys_t;
 
 struct ioswtch {
@@ -83,18 +85,19 @@ static struct platform {
   const char	*name;
   int		io_sys;
   unsigned long	bus_memory_base;
+  unsigned long	sparse_bus_memory_base;
 } platform[] = {
-  {"Alcor",	IOSYS_ALCOR,	ALCOR_DENSE_MEM},
-  {"Avanti",	IOSYS_APECS,	APECS_DENSE_MEM},
-  {"Cabriolet",	IOSYS_APECS,	APECS_DENSE_MEM},
-  {"EB164",	IOSYS_ALCOR,	ALCOR_DENSE_MEM},
-  {"EB64+",	IOSYS_APECS,	APECS_DENSE_MEM},
-  {"EB66",	IOSYS_APECS,	APECS_DENSE_MEM},	/* LCA same as APECS */
-  {"EB66P",	IOSYS_APECS,	APECS_DENSE_MEM},	/* LCA same as APECS */
-  {"Jensen",	IOSYS_JENSEN,	JENSEN_MEM},
-  {"Mikasa",	IOSYS_APECS,	APECS_DENSE_MEM},
-  {"Mustang",	IOSYS_APECS,	APECS_DENSE_MEM},
-  {"Noname",	IOSYS_APECS,	APECS_DENSE_MEM},	/* LCA same as APECS */
+  {"Alcor",	IOSYS_CIA,	CIA_DENSE_MEM,		CIA_SPARSE_MEM},
+  {"Avanti",	IOSYS_APECS,	APECS_DENSE_MEM,	APECS_SPARSE_MEM},
+  {"Cabriolet",	IOSYS_APECS,	APECS_DENSE_MEM,	APECS_SPARSE_MEM},
+  {"EB164",	IOSYS_CIA,	CIA_DENSE_MEM,		CIA_SPARSE_MEM},
+  {"EB64+",	IOSYS_APECS,	APECS_DENSE_MEM,	APECS_SPARSE_MEM},
+  {"EB66",	IOSYS_APECS,	APECS_DENSE_MEM,	APECS_SPARSE_MEM},
+  {"EB66P",	IOSYS_APECS,	APECS_DENSE_MEM,	APECS_SPARSE_MEM},
+  {"Jensen",	IOSYS_JENSEN,	JENSEN_MEM,		JENSEN_MEM},
+  {"Mikasa",	IOSYS_APECS,	APECS_DENSE_MEM,	APECS_SPARSE_MEM},
+  {"Mustang",	IOSYS_APECS,	APECS_DENSE_MEM,	APECS_SPARSE_MEM},
+  {"Noname",	IOSYS_APECS,	APECS_DENSE_MEM,	APECS_SPARSE_MEM},
 };
 
 
@@ -109,6 +112,7 @@ static struct {
 } io;
 
 static unsigned long bus_memory_base = -1;
+static unsigned long sparse_bus_memory_base = -1;
 
 extern void __sethae (unsigned long);	/* we can't use asm/io.h */
 
@@ -256,7 +260,7 @@ DCL_IN(jensen, inb, JENSEN)
 DCL_IN(jensen, inw, JENSEN)
 DCL_IN(jensen, inl, JENSEN)
 
-/* The APECS functions are also used for ALCOR since they are
+/* The APECS functions are also used for CIA since they are
    identical.  */
 
 DCL_SETHAE(apecs, APECS)
@@ -332,6 +336,7 @@ init_iosys (void)
       if (strcmp (platform[i].name, systype) == 0)
 	{
 	  bus_memory_base = platform[i].bus_memory_base;
+	  sparse_bus_memory_base = platform[i].sparse_bus_memory_base;
 	  io.sys = platform[i].io_sys;
 	  if (io.sys == IOSYS_JENSEN)
 	    io.swp = &ioswtch[0];
@@ -382,7 +387,7 @@ _ioperm (unsigned long from, unsigned long num, int turn_on)
 	    {
 	    case IOSYS_JENSEN:	base = JENSEN_IO_BASE; break;
 	    case IOSYS_APECS:	base = APECS_IO_BASE; break;
-	    case IOSYS_ALCOR:	base = ALCOR_IO_BASE; break;
+	    case IOSYS_CIA:	base = CIA_IO_BASE; break;
 	    default:
 	      errno = ENODEV;
 	      return -1;
@@ -498,6 +503,14 @@ _bus_base(void)
   return bus_memory_base;
 }
 
+unsigned long
+_bus_base_sparse(void)
+{
+  if (!io.swp && init_iosys () < 0)
+    return -1;
+  return sparse_bus_memory_base;
+}
+
 weak_alias (_sethae, sethae);
 weak_alias (_ioperm, ioperm);
 weak_alias (_iopl, iopl);
@@ -508,3 +521,4 @@ weak_alias (_outb, outb);
 weak_alias (_outw, outw);
 weak_alias (_outl, outl);
 weak_alias (_bus_base, bus_base);
+weak_alias (_bus_base_sparse, bus_base_sparse);