Date: Sat, 5 Jan 2013 02:10:28 +0000 (UTC) From: Neel Natu <neel@FreeBSD.org> To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r245053 - projects/bhyve/sys/x86/include Message-ID: <201301050210.r052ASTN023845@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: neel Date: Sat Jan 5 02:10:27 2013 New Revision: 245053 URL: http://svnweb.freebsd.org/changeset/base/245053 Log: Get rid of workarounds to avoid ins/outs instructions emitted by the guest. They can be emulated if needed in the future. Obtained from: NetApp Modified: projects/bhyve/sys/x86/include/bus.h Modified: projects/bhyve/sys/x86/include/bus.h ============================================================================== --- projects/bhyve/sys/x86/include/bus.h Sat Jan 5 02:08:47 2013 (r245052) +++ projects/bhyve/sys/x86/include/bus.h Sat Jan 5 02:10:27 2013 (r245053) @@ -294,13 +294,9 @@ bus_space_read_multi_1(bus_space_tag_t t bus_size_t offset, u_int8_t *addr, size_t count) { - if (tag == X86_BUS_SPACE_IO) { - while (count > 0) { - *addr = inb(bsh + offset); - count--; - addr++; - } - } else { + if (tag == X86_BUS_SPACE_IO) + insb(bsh + offset, addr, count); + else { #ifdef __GNUCLIKE_ASM __asm __volatile(" \n\ cld \n\ @@ -319,13 +315,9 @@ bus_space_read_multi_2(bus_space_tag_t t bus_size_t offset, u_int16_t *addr, size_t count) { - if (tag == X86_BUS_SPACE_IO) { - while (count > 0) { - *addr = inw(bsh + offset); - count--; - addr++; - } - } else { + if (tag == X86_BUS_SPACE_IO) + insw(bsh + offset, addr, count); + else { #ifdef __GNUCLIKE_ASM __asm __volatile(" \n\ cld \n\ @@ -344,13 +336,9 @@ bus_space_read_multi_4(bus_space_tag_t t bus_size_t offset, u_int32_t *addr, size_t count) { - if (tag == X86_BUS_SPACE_IO) { - while (count > 0) { - *addr = inl(bsh + offset); - count--; - addr++; - } - } else { + if (tag == X86_BUS_SPACE_IO) + insl(bsh + offset, addr, count); + else { #ifdef __GNUCLIKE_ASM __asm __volatile(" \n\ cld \n\ @@ -585,13 +573,9 @@ bus_space_write_multi_1(bus_space_tag_t bus_size_t offset, const u_int8_t *addr, size_t count) { - if (tag == X86_BUS_SPACE_IO) { - while (count > 0) { - outb(bsh + offset, *addr); - addr++; - count--; - } - } else { + if (tag == X86_BUS_SPACE_IO) + outsb(bsh + offset, addr, count); + else { #ifdef __GNUCLIKE_ASM __asm __volatile(" \n\ cld \n\ @@ -610,13 +594,9 @@ bus_space_write_multi_2(bus_space_tag_t bus_size_t offset, const u_int16_t *addr, size_t count) { - if (tag == X86_BUS_SPACE_IO) { - while (count > 0) { - outw(bsh + offset, *addr); - addr++; - count--; - } - } else { + if (tag == X86_BUS_SPACE_IO) + outsw(bsh + offset, addr, count); + else { #ifdef __GNUCLIKE_ASM __asm __volatile(" \n\ cld \n\ @@ -635,13 +615,9 @@ bus_space_write_multi_4(bus_space_tag_t bus_size_t offset, const u_int32_t *addr, size_t count) { - if (tag == X86_BUS_SPACE_IO) { - while (count > 0) { - outl(bsh + offset, *addr); - addr++; - count--; - } - } else { + if (tag == X86_BUS_SPACE_IO) + outsl(bsh + offset, addr, count); + else { #ifdef __GNUCLIKE_ASM __asm __volatile(" \n\ cld \n\
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201301050210.r052ASTN023845>