From owner-svn-src-projects@FreeBSD.ORG Sat Jan 5 02:10:28 2013 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id 9F3D9FF8; Sat, 5 Jan 2013 02:10:28 +0000 (UTC) (envelope-from neel@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 77101314; Sat, 5 Jan 2013 02:10:28 +0000 (UTC) Received: from svn.freebsd.org (svn.FreeBSD.org [8.8.178.70]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id r052ASGB023846; Sat, 5 Jan 2013 02:10:28 GMT (envelope-from neel@svn.freebsd.org) Received: (from neel@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id r052ASTN023845; Sat, 5 Jan 2013 02:10:28 GMT (envelope-from neel@svn.freebsd.org) Message-Id: <201301050210.r052ASTN023845@svn.freebsd.org> From: Neel Natu Date: Sat, 5 Jan 2013 02:10:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r245053 - projects/bhyve/sys/x86/include X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 05 Jan 2013 02:10:28 -0000 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\