Use opendisk(3).

This commit is contained in:
enami 1997-09-29 05:24:24 +00:00
parent 7b4b674241
commit 7dcf4bfe8e
2 changed files with 6 additions and 29 deletions

View File

@ -1,6 +1,7 @@
# $NetBSD: Makefile,v 1.4 1995/12/30 18:14:01 thorpej Exp $
# $NetBSD: Makefile,v 1.5 1997/09/29 05:24:24 enami Exp $
PROG= vnconfig
MAN= vnconfig.8
LDADD+= -lutil
.include <bsd.prog.mk>

View File

@ -1,4 +1,4 @@
/* $NetBSD: vnconfig.c,v 1.11 1997/07/30 22:54:48 jtc Exp $ */
/* $NetBSD: vnconfig.c,v 1.12 1997/09/29 05:24:25 enami Exp $ */
/*-
* Copyright (c) 1997 The NetBSD Foundation, Inc.
@ -95,6 +95,7 @@
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <util.h>
#define VND_CONFIG 1
#define VND_UNCONFIG 2
@ -158,17 +159,14 @@ config(dev, file, geom, action)
{
struct vnd_ioctl vndio;
struct disklabel *lp;
char *rdev;
char rdev[MAXPATHLEN + 1];
int fd, rv;
rdev = rawdevice(dev);
fd = open(rdev, O_RDWR, 0666);
fd = opendisk(dev, O_RDWR, rdev, sizeof(rdev), 0);
if (fd < 0) {
warn(rdev);
(void) free(rdev);
return (1);
}
(void) free(rdev);
memset(&vndio, 0, sizeof(vndio));
#ifdef __GNUC__
@ -272,28 +270,6 @@ getgeom(vng, cp)
return (0);
}
char *
rawdevice(dev)
char *dev;
{
register char *rawbuf, *dp, *ep;
struct stat sb;
size_t len;
len = strlen(dev);
rawbuf = malloc(len + 2);
strcpy(rawbuf, dev);
if (stat(rawbuf, &sb) != 0 || !S_ISCHR(sb.st_mode)) {
dp = strrchr(rawbuf, '/');
if (dp) {
for (ep = &rawbuf[len]; ep > dp; --ep)
*(ep+1) = *ep;
*++ep = 'r';
}
}
return (rawbuf);
}
void
usage()
{