summaryrefslogtreecommitdiff
path: root/sysdeps/unix/sysv/linux/alpha/ioperm.c
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/ioperm.c
parent267ca16a67be70e0361c212e805d43884aee4506 (diff)
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/ioperm.c')
-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);