diff options
author | Theo de Raadt <deraadt@cvs.openbsd.org> | 2010-08-11 13:12:00 +0000 |
---|---|---|
committer | Theo de Raadt <deraadt@cvs.openbsd.org> | 2010-08-11 13:12:00 +0000 |
commit | 00393e841d0a9c3d0b44697d017702afdd82a095 (patch) | |
tree | b11c5cee1e5ff02a1dabb7e2476fe52aff3900d0 /sys/arch/amd64/stand | |
parent | fe7d2e88535d298db38bb322f3d19d2459335553 (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')
-rw-r--r-- | sys/arch/amd64/stand/libsa/biosdev.c | 6 |
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; |