1 1.3 christos /* $NetBSD: devopen.c,v 1.3 2005/12/11 12:19:29 christos 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.2 chs int 21 1.2 chs devopen(struct open_file *f, const char *fname, char **file) 22 1.1 fredette { 23 1.1 fredette struct devsw *dp; 24 1.1 fredette int error; 25 1.1 fredette 26 1.1 fredette *file = (char*)fname; 27 1.1 fredette dp = &devsw[0]; 28 1.1 fredette f->f_dev = dp; 29 1.1 fredette error = (*dp->dv_open)(f, prom_bootdev); 30 1.1 fredette 31 1.1 fredette return (error); 32 1.1 fredette } 33