summaryrefslogtreecommitdiffstats
path: root/sys/boot/i386
diff options
context:
space:
mode:
authoravg <avg@FreeBSD.org>2012-09-18 08:53:11 +0000
committeravg <avg@FreeBSD.org>2012-09-18 08:53:11 +0000
commiteec15de0e3cf2476b774efce1b1ae36e4681009e (patch)
tree2cc0b990f5d77680d8945578c03ffbe125245d01 /sys/boot/i386
parent28643e5478e5d85a2d08f5e8d995fa80d414931d (diff)
downloadFreeBSD-src-eec15de0e3cf2476b774efce1b1ae36e4681009e.zip
FreeBSD-src-eec15de0e3cf2476b774efce1b1ae36e4681009e.tar.gz
loader/i386: replace ugly inb/outb re-implementations with cpufunc.h
Use of __builtin_constant_p in a function that is only called via a pointer is a good example of how out-of-date it was. Suggested by: bde MFC after: 1 week
Diffstat (limited to 'sys/boot/i386')
-rw-r--r--sys/boot/i386/loader/main.c22
1 files changed, 4 insertions, 18 deletions
diff --git a/sys/boot/i386/loader/main.c b/sys/boot/i386/loader/main.c
index c3927cb..91f4e32 100644
--- a/sys/boot/i386/loader/main.c
+++ b/sys/boot/i386/loader/main.c
@@ -36,6 +36,7 @@ __FBSDID("$FreeBSD$");
#include <stddef.h>
#include <string.h>
#include <machine/bootinfo.h>
+#include <machine/cpufunc.h>
#include <machine/psl.h>
#include <sys/reboot.h>
@@ -321,34 +322,19 @@ command_heap(int argc, char *argv[])
return(CMD_OK);
}
-/* ISA bus access functions for PnP, derived from <machine/cpufunc.h> */
+/* ISA bus access functions for PnP. */
static int
isa_inb(int port)
{
- u_char data;
- if (__builtin_constant_p(port) &&
- (((port) & 0xffff) < 0x100) &&
- ((port) < 0x10000)) {
- __asm __volatile("inb %1,%0" : "=a" (data) : "id" ((u_short)(port)));
- } else {
- __asm __volatile("inb %%dx,%0" : "=a" (data) : "d" (port));
- }
- return(data);
+ return (inb(port));
}
static void
isa_outb(int port, int value)
{
- u_char al = value;
- if (__builtin_constant_p(port) &&
- (((port) & 0xffff) < 0x100) &&
- ((port) < 0x10000)) {
- __asm __volatile("outb %0,%1" : : "a" (al), "id" ((u_short)(port)));
- } else {
- __asm __volatile("outb %0,%%dx" : : "a" (al), "d" (port));
- }
+ outb(port, value);
}
#ifdef LOADER_ZFS_SUPPORT
OpenPOWER on IntegriCloud