+ int ret;
+
+ if (!(ret = (*devsw[io->i_ino.i_dev].dv_open)(io)))
+ return (0);
+ printf("%s(%d,%d,%d,%d): ", devsw[io->i_ino.i_dev].dv_name,
+ io->i_adapt, io->i_ctlr, io->i_unit, io->i_part);
+ switch(ret) {
+ case EIO:
+ break; /* already reported */
+ case EADAPT:
+ printf("bad adaptor number\n");
+ break;
+ case ECTLR:
+ printf("bad controller number\n");
+ break;
+ case EUNIT:
+ printf("bad drive number\n");
+ break;
+ case EPART:
+ printf("bad partition\n");
+ break;
+ case ERDLAB:
+ printf("can't read disk label\n");
+ break;
+ case EUNLAB:
+ printf("unlabeled\n");
+ break;
+ case ENXIO:
+ printf("bad device specification\n");
+ break;
+ default:
+ printf("unknown open error\n");
+ break;
+ }
+ return (ret);