summaryrefslogtreecommitdiff
path: root/sys/arch/mvme68k/stand/libbug/m68k/diskrd.c
blob: 60436fbee60afd68461d5b3b5ec4d2e9c0a59760 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
/*	$OpenBSD: diskrd.c,v 1.2 1996/04/28 10:48:37 deraadt Exp $ */

/*
 * bug routines -- assumes that the necessary sections of memory
 * are preserved.
 */
#include <sys/types.h>
#include <machine/prom.h>

/* returns 0: success, nonzero: error */
int
mvmeprom_diskrd(arg)
	struct mvmeprom_dskio *arg;
{
	int ret;

	asm volatile ("movel %0, sp@-"::"d" (arg));
	MVMEPROM_CALL(MVMEPROM_DSKRD);
	asm volatile ("movew ccr,%0": "=d" (ret));
	return (!(ret & 0x4));
}