===== include/asm-ia64/io.h 1.21 vs edited ===== --- 1.21/include/asm-ia64/io.h 2004-10-05 12:30:39 -06:00 +++ edited/include/asm-ia64/io.h 2004-10-25 10:06:00 -06:00 @@ -32,7 +32,8 @@ */ #define IO_SPACE_LIMIT 0xffffffffffffffffUL -#define MAX_IO_SPACES 16 +#define MAX_IO_SPACES_BITS 4 +#define MAX_IO_SPACES (1UL << MAX_IO_SPACES_BITS) #define IO_SPACE_BITS 24 #define IO_SPACE_SIZE (1UL << IO_SPACE_BITS) @@ -52,10 +53,16 @@ # ifdef __KERNEL__ +#define PIO_OFFSET (1UL << (MAX_IO_SPACES_BITS + IO_SPACE_BITS)) +#define PIO_MASK (PIO_OFFSET - 1) +#define PIO_RESERVED __IA64_UNCACHED_OFFSET +#define HAVE_ARCH_PIO_SIZE + #include #include #include #include +#include /* * Change virtual addresses to physical addresses and vv. ===== lib/iomap.c 1.5 vs edited ===== --- 1.5/lib/iomap.c 2004-10-18 23:27:35 -06:00 +++ edited/lib/iomap.c 2004-10-25 10:09:26 -06:00 @@ -19,7 +19,10 @@ * * Architectures for which this is not true can't use this generic * implementation and should do their own copy. - * + */ + +#ifndef HAVE_ARCH_PIO_SIZE +/* * We encode the physical PIO addresses (0-0xffff) into the * pointer by offsetting them with a constant (0x10000) and * assuming that all the low addresses are always PIO. That means @@ -29,6 +32,7 @@ #define PIO_OFFSET 0x10000UL #define PIO_MASK 0x0ffffUL #define PIO_RESERVED 0x40000UL +#endif /* * Ugly macros are a way of life.