1 1.1 fredette /* $NetBSD: devopen.c,v 1.1 2001/06/14 12:57:14 fredette Exp $ */ 2 1.1 fredette 3 1.1 fredette 4 1.1 fredette #include <sys/types.h> 5 1.1 fredette #include <machine/mon.h> 6 1.1 fredette 7 1.1 fredette #include <stand.h> 8 1.1 fredette #include "libsa.h" 9 1.1 fredette 10 1.1 fredette /* 11 1.1 fredette * Open the device named by the combined device/file name 12 1.1 fredette * given as the "fname" arg, something like: "sd()netbsd" 13 1.1 fredette * 14 1.1 fredette * However, Sun PROMs don't really let you choose which 15 1.1 fredette * device you will talk to. You can only open the device 16 1.1 fredette * that was used to load the boot program. Therefore, we 17 1.1 fredette * do not accept a "device" part in the "fname" string. 18 1.1 fredette * Pass the PROM device name to open in case it needs it. 19 1.1 fredette */ 20 1.1 fredette int 21 1.1 fredette devopen(f, fname, file) 22 1.1 fredette struct open_file *f; 23 1.1 fredette const char *fname; 24 1.1 fredette char **file; 25 1.1 fredette { 26 1.1 fredette struct devsw *dp; 27 1.1 fredette int error; 28 1.1 fredette 29 1.1 fredette *file = (char*)fname; 30 1.1 fredette dp = &devsw[0]; 31 1.1 fredette f->f_dev = dp; 32 1.1 fredette error = (*dp->dv_open)(f, prom_bootdev); 33 1.1 fredette 34 1.1 fredette return (error); 35 1.1 fredette } 36