From b8ebcde152d873c59bf3e8e4e7900ca1a71604ed Mon Sep 17 00:00:00 2001 From: nyan Date: Sat, 5 Jul 2008 16:31:58 +0000 Subject: Add i386_memio_compare() to compare two resources. It's used by uart(4) in the future. --- sys/pc98/include/bus.h | 9 +++++++++ sys/pc98/pc98/busiosubr.c | 25 +++++++++++++++++++++++++ 2 files changed, 34 insertions(+) (limited to 'sys/pc98') diff --git a/sys/pc98/include/bus.h b/sys/pc98/include/bus.h index bb10690..39111f5 100644 --- a/sys/pc98/include/bus.h +++ b/sys/pc98/include/bus.h @@ -252,6 +252,15 @@ void i386_memio_free(bus_space_tag_t t, bus_space_handle_t bsh, i386_memio_free((t), (h), (s)) /* + * int bus_space_compare (bus_space_tag_t t1, bus_space_handle_t bsh1, + * bus_space_tag_t t2, bus_space_handle_t bsh2); + * + * Compare two resources. + */ +int i386_memio_compare(bus_space_tag_t t1, bus_space_handle_t bsh1, + bus_space_tag_t t2, bus_space_handle_t bsh2); + +/* * Access methods for bus resources and address space. */ #define _BUS_ACCESS_METHODS_PROTO(TYPE,BWN) \ diff --git a/sys/pc98/pc98/busiosubr.c b/sys/pc98/pc98/busiosubr.c index 8776d3f..79b06ce 100644 --- a/sys/pc98/pc98/busiosubr.c +++ b/sys/pc98/pc98/busiosubr.c @@ -279,3 +279,28 @@ i386_memio_subregion(bus_space_tag_t t, bus_space_handle_t pbsh, *tbshp = bsh; return error; } + +int +i386_memio_compare(bus_space_tag_t t1, bus_space_handle_t bsh1, + bus_space_tag_t t2, bus_space_handle_t bsh2) +{ + int i; + + if (t1->bs_tag != t2->bs_tag) + return (1); + if (bsh1->bsh_base != bsh2->bsh_base) + return (1); + if (bsh1->bsh_sz != bsh2->bsh_sz) + return (1); + if (bsh1->bsh_bam.bs_read_1 != bsh2->bsh_bam.bs_read_1) /* XXX */ + return (1); + + if (bsh1->bsh_iatsz != bsh2->bsh_iatsz) + return (1); + for (i = 0; i < bsh1->bsh_iatsz; i++) { + if (bsh1->bsh_iat[i] != bsh2->bsh_iat[i]) + return (1); + } + + return (0); +} -- cgit v1.1