summaryrefslogtreecommitdiff
path: root/sys/arch/amd64/stand/libsa
diff options
context:
space:
mode:
authorTheo de Raadt <deraadt@cvs.openbsd.org>2010-08-11 13:12:00 +0000
committerTheo de Raadt <deraadt@cvs.openbsd.org>2010-08-11 13:12:00 +0000
commit00393e841d0a9c3d0b44697d017702afdd82a095 (patch)
treeb11c5cee1e5ff02a1dabb7e2476fe52aff3900d0 /sys/arch/amd64/stand/libsa
parentfe7d2e88535d298db38bb322f3d19d2459335553 (diff)
De-inline CHS_rw. Somehow the merger of two monster __asm __inline statements
into one function is generating broken code; it might be because of missing register clobbers. This is a workaround... it'd be nice to know the real problem work done with mlarkin and pirofti
Diffstat (limited to 'sys/arch/amd64/stand/libsa')
-rw-r--r--sys/arch/amd64/stand/libsa/biosdev.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/sys/arch/amd64/stand/libsa/biosdev.c b/sys/arch/amd64/stand/libsa/biosdev.c
index ef679b5193f..e4185114881 100644
--- a/sys/arch/amd64/stand/libsa/biosdev.c
+++ b/sys/arch/amd64/stand/libsa/biosdev.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: biosdev.c,v 1.8 2008/08/12 22:48:32 deraadt Exp $ */
+/* $OpenBSD: biosdev.c,v 1.9 2010/08/11 13:11:59 deraadt Exp $ */
/*
* Copyright (c) 1996 Michael Shalayeff
@@ -42,7 +42,7 @@
static const char *biosdisk_err(u_int);
static int biosdisk_errno(u_int);
-static int CHS_rw (int, int, int, int, int, int, void *);
+int CHS_rw (int, int, int, int, int, int, void *);
static int EDD_rw (int, int, u_int64_t, u_int32_t, void *);
static daddr_t findopenbsd(bios_diskinfo_t *, daddr_t, const char **, int *);
@@ -182,7 +182,7 @@ bios_getdiskinfo(int dev, bios_diskinfo_t *pdi)
/*
* Read/Write a block from given place using the BIOS.
*/
-static __inline int
+int
CHS_rw(int rw, int dev, int cyl, int head, int sect, int nsect, void *buf)
{
int rv;