summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/libutil/Makefile6
-rw-r--r--lib/libutil/login.32
-rw-r--r--lib/libutil/login_fbtab.c2
-rw-r--r--lib/libutil/opendisk.3174
-rw-r--r--lib/libutil/opendisk.c96
-rw-r--r--lib/libutil/pw_getconf.32
-rw-r--r--lib/libutil/pw_init.32
-rw-r--r--lib/libutil/pw_lock.32
-rw-r--r--lib/libutil/uucplock.32
-rw-r--r--lib/libutil/uucplock.c2
10 files changed, 285 insertions, 5 deletions
diff --git a/lib/libutil/Makefile b/lib/libutil/Makefile
index 2c6cf13d1b9..c921c284ed8 100644
--- a/lib/libutil/Makefile
+++ b/lib/libutil/Makefile
@@ -1,4 +1,4 @@
-# $OpenBSD: Makefile,v 1.17 1999/07/20 16:38:56 jakob Exp $
+# $OpenBSD: Makefile,v 1.18 1999/09/21 04:52:45 csapuntz Exp $
# $NetBSD: Makefile,v 1.8 1996/05/16 07:03:28 thorpej Exp $
LIB= util
@@ -7,12 +7,12 @@ CFLAGS+=-DLIBC_SCCS
HDRS= util.h scsi.h
SRCS= getmaxpartitions.c getrawpartition.c login.c login_tty.c logout.c \
logwtmp.c opendev.c passwd.c pty.c readlabel.c scsi.c login_fbtab.c \
- uucplock.c fparseln.c
+ uucplock.c fparseln.c opendisk.c
# XXX need login_fbtab.3
MAN= getmaxpartitions.3 getrawpartition.3 login.3 opendev.3 openpty.3 \
pw_init.3 pw_lock.3 readlabelfs.3 scsi.3 pw_getconf.3 uucplock.3 \
- fparseln.3
+ fparseln.3 opendisk.3
MLINKS+=login.3 logout.3
MLINKS+=login.3 logwtmp.3
diff --git a/lib/libutil/login.3 b/lib/libutil/login.3
index eae46302e21..38f7e2585af 100644
--- a/lib/libutil/login.3
+++ b/lib/libutil/login.3
@@ -1,3 +1,5 @@
+.\" $OpenBSD: login.3,v 1.2 1999/09/21 04:52:45 csapuntz Exp $
+.\"
.\" Copyright (c) 1995
.\" The Regents of the University of California. All rights reserved.
.\"
diff --git a/lib/libutil/login_fbtab.c b/lib/libutil/login_fbtab.c
index 25b0e82c2a4..724df60eab9 100644
--- a/lib/libutil/login_fbtab.c
+++ b/lib/libutil/login_fbtab.c
@@ -1,3 +1,5 @@
+/* $OpenBSD: login_fbtab.c,v 1.6 1999/09/21 04:52:45 csapuntz Exp $ */
+
/************************************************************************
* Copyright 1995 by Wietse Venema. All rights reserved.
*
diff --git a/lib/libutil/opendisk.3 b/lib/libutil/opendisk.3
new file mode 100644
index 00000000000..84f3dc21b8c
--- /dev/null
+++ b/lib/libutil/opendisk.3
@@ -0,0 +1,174 @@
+.\" $OpenBSD: opendisk.3,v 1.1 1999/09/21 04:52:45 csapuntz Exp $
+.\" $NetBSD: opendisk.3,v 1.4 1999/07/02 15:49:12 simonb Exp $
+.\"
+.\" Copyright (c) 1997 The NetBSD Foundation, Inc.
+.\" All rights reserved.
+.\"
+.\" This code is derived from software contributed to The NetBSD Foundation
+.\" by Luke Mewburn.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\" 3. All advertising materials mentioning features or use of this software
+.\" must display the following acknowledgement:
+.\" This product includes software developed by the NetBSD
+.\" Foundation, Inc. and its contributors.
+.\" 4. Neither the name of The NetBSD Foundation nor the names of its
+.\" contributors may be used to endorse or promote products derived
+.\" from this software without specific prior written permission.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+.\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+.\" PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+.\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+.\" POSSIBILITY OF SUCH DAMAGE.
+.\"
+.Dd September 22, 1997
+.Dt OPENDISK 3
+.Os
+.Sh NAME
+.Nm opendisk
+.Nd open a disk's
+.Dq raw
+partition
+.Sh LIBRARY
+.Lb libutil
+.Sh SYNOPSIS
+.Fd #include <util.h>
+.Ft int
+.Fo opendisk
+.Fa "const char *path"
+.Fa "int flags"
+.Fa "char *buf"
+.Fa "size_t buflen"
+.Fa "int iscooked"
+.Fc
+.Sh DESCRIPTION
+.Fn opendisk
+opens
+.Fa path ,
+for reading and/or writing as specified by the argument
+.Fa flags
+using
+.Xr open 2 ,
+and the file descriptor is returned to the caller.
+.Fa buf
+is used to store the resultant filename.
+.Fa buflen
+is the size, in bytes, of the array referenced by
+.Fa buf
+(usually
+.Dv MAXPATHLEN
+bytes).
+If
+.Fa iscooked
+is non zero, the
+.Dq cooked
+partition (block device) is opened, rather than the
+.Dq raw
+partition (character device).
+.Pp
+.Fn opendisk
+attempts to open the following variations of
+.Fa path ,
+in order:
+.Bl -tag -width "/dev/rpathX"
+.It Pa path
+The pathname as given.
+.It Pa path Ns Em X
+.Fa path
+with a suffix of
+.Sq Em X ,
+where
+.Sq Em X
+represents the raw partition of the device, as determined by
+.Xr getrawpartition 3 ,
+usually
+.Dq c .
+.El
+.Pp
+If
+.Fa iscooked
+is zero, then the following two variations are attempted:
+.Bl -tag -width "/dev/rpathX"
+.It Pa /dev/rpath
+.Fa path
+with a prefix of
+.Dq Pa /dev/r .
+.It Pa /dev/rpath Ns Em X
+.Fa path
+with a prefix of
+.Dq Pa /dev/r
+and a suffix of
+.Sq Em X
+(q.v.).
+.El
+.Pp
+Otherwise (i.e.,
+.Fa iscooked
+is non-zero), the following variations are attempted:
+.Bl -tag -width "/dev/rpathX"
+.It Pa /dev/path
+.Fa path
+with a prefix of
+.Dq Pa /dev/ .
+.It Pa /dev/path Ns Em X
+.Fa path
+with a prefix of
+.Dq Pa /dev/
+and a suffix of
+.Sq Em X
+(q.v.).
+.El
+.Sh RETURN VALUES
+An open file descriptor, or -1 if the
+.Xr open 2
+failed.
+.Sh ERRORS
+.Fn opendisk
+may set
+.Va errno
+to one of the following values:
+.Bl -tag -width Er
+.It Bq Er EINVAL
+.Dv O_CREAT
+was set in
+.Fa flags ,
+or
+.Xr getrawpartition 3
+didn't return a valid partition.
+.It Bq Er EFAULT
+.Fa buf
+was the
+.Dv NULL
+pointer.
+.El
+.Pp
+The
+.Fn opendisk
+function
+may also set
+.Va errno
+to any value specified by the
+.Xr open 2
+function.
+.Sh SEE ALSO
+.Xr open 2 ,
+.Xr getrawpartition 3
+.Sh HISTORY
+The
+.Fn opendisk
+function first appeared in
+.Nx 1.3 .
diff --git a/lib/libutil/opendisk.c b/lib/libutil/opendisk.c
new file mode 100644
index 00000000000..7afe2422427
--- /dev/null
+++ b/lib/libutil/opendisk.c
@@ -0,0 +1,96 @@
+/* $OpenBSD: opendisk.c,v 1.1 1999/09/21 04:52:45 csapuntz Exp $ */
+/* $NetBSD: opendisk.c,v 1.4 1997/09/30 17:13:50 phil Exp $ */
+
+/*-
+ * Copyright (c) 1997 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software contributed to The NetBSD Foundation
+ * by Luke Mewburn.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by the NetBSD
+ * Foundation, Inc. and its contributors.
+ * 4. Neither the name of The NetBSD Foundation nor the names of its
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <sys/cdefs.h>
+#include <sys/param.h>
+
+#include <errno.h>
+#include <fcntl.h>
+#include <util.h>
+#include <paths.h>
+#include <stdio.h>
+#include <string.h>
+
+int
+opendisk(path, flags, buf, buflen, iscooked)
+ const char *path;
+ int flags;
+ char *buf;
+ size_t buflen;
+ int iscooked;
+{
+ int f, rawpart;
+
+ if (buf == NULL) {
+ errno = EFAULT;
+ return (-1);
+ }
+ snprintf(buf, buflen, "%s", path);
+
+ if ((flags & O_CREAT) != 0) {
+ errno = EINVAL;
+ return (-1);
+ }
+
+ rawpart = getrawpartition();
+ if (rawpart < 0)
+ return (-1); /* sysctl(3) in getrawpartition sets errno */
+
+ f = open(buf, flags);
+ if (f != -1 || errno != ENOENT)
+ return (f);
+
+ snprintf(buf, buflen, "%s%c", path, 'a' + rawpart);
+ f = open(buf, flags);
+ if (f != -1 || errno != ENOENT)
+ return (f);
+
+ if (strchr(path, '/') != NULL)
+ return (-1);
+
+ snprintf(buf, buflen, "%s%s%s", _PATH_DEV, iscooked ? "" : "r", path);
+ f = open(buf, flags);
+ if (f != -1 || errno != ENOENT)
+ return (f);
+
+ snprintf(buf, buflen, "%s%s%s%c", _PATH_DEV, iscooked ? "" : "r", path,
+ 'a' + rawpart);
+ f = open(buf, flags);
+ return (f);
+}
diff --git a/lib/libutil/pw_getconf.3 b/lib/libutil/pw_getconf.3
index 65bcee7b6ca..b1a6dad98b8 100644
--- a/lib/libutil/pw_getconf.3
+++ b/lib/libutil/pw_getconf.3
@@ -1,3 +1,5 @@
+.\" $OpenBSD: pw_getconf.3,v 1.5 1999/09/21 04:52:46 csapuntz Exp $
+.\"
.\" Copyright 1997 Niels Provos <provos@physnet.uni-hamburg.de>
.\" All rights reserved.
.\"
diff --git a/lib/libutil/pw_init.3 b/lib/libutil/pw_init.3
index 6d0ac205ea3..d5f05f7b437 100644
--- a/lib/libutil/pw_init.3
+++ b/lib/libutil/pw_init.3
@@ -1,3 +1,5 @@
+.\" $OpenBSD: pw_init.3,v 1.3 1999/09/21 04:52:46 csapuntz Exp $
+.\"
.\" Copyright (c) 1995
.\" The Regents of the University of California. All rights reserved.
.\"
diff --git a/lib/libutil/pw_lock.3 b/lib/libutil/pw_lock.3
index f84ccae3ab8..b444709bd3d 100644
--- a/lib/libutil/pw_lock.3
+++ b/lib/libutil/pw_lock.3
@@ -1,3 +1,5 @@
+.\" $OpenBSD: pw_lock.3,v 1.5 1999/09/21 04:52:46 csapuntz Exp $
+.\"
.\" Copyright (c) 1995
.\" The Regents of the University of California. All rights reserved.
.\"
diff --git a/lib/libutil/uucplock.3 b/lib/libutil/uucplock.3
index adca519e39e..2e4408f327d 100644
--- a/lib/libutil/uucplock.3
+++ b/lib/libutil/uucplock.3
@@ -1,3 +1,4 @@
+.\" $OpenBSD: uucplock.3,v 1.7 1999/09/21 04:52:46 csapuntz Exp $
.\"
.\" All rights reserved.
.\"
@@ -21,7 +22,6 @@
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
-.\" $Id: uucplock.3,v 1.6 1999/07/09 13:35:28 aaron Exp $
.\" "
.Dd March 30, 1997
.Dt uucplock 3
diff --git a/lib/libutil/uucplock.c b/lib/libutil/uucplock.c
index 1517895bd28..9c81177e217 100644
--- a/lib/libutil/uucplock.c
+++ b/lib/libutil/uucplock.c
@@ -1,3 +1,4 @@
+/* * $OpenBSD: uucplock.c,v 1.7 1999/09/21 04:52:46 csapuntz Exp $*/
/*
* Copyright (c) 1988, 1993
* The Regents of the University of California. All rights reserved.
@@ -30,7 +31,6 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $Id: uucplock.c,v 1.6 1999/08/17 09:13:13 millert Exp $
*
*/