summaryrefslogtreecommitdiffstats
path: root/sys/x86/include/bus.h
diff options
context:
space:
mode:
Diffstat (limited to 'sys/x86/include/bus.h')
-rw-r--r--sys/x86/include/bus.h60
1 files changed, 18 insertions, 42 deletions
diff --git a/sys/x86/include/bus.h b/sys/x86/include/bus.h
index 4efc172..52c4251 100644
--- a/sys/x86/include/bus.h
+++ b/sys/x86/include/bus.h
@@ -294,13 +294,9 @@ bus_space_read_multi_1(bus_space_tag_t tag, bus_space_handle_t bsh,
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 tag, bus_space_handle_t bsh,
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 tag, bus_space_handle_t bsh,
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 tag, bus_space_handle_t bsh,
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 tag, bus_space_handle_t bsh,
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 tag, bus_space_handle_t bsh,
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\
OpenPOWER on IntegriCloud