summaryrefslogtreecommitdiff
path: root/static/openbsd/man4/openprom.4
diff options
context:
space:
mode:
authorJacob McDonnell <jacob@jacobmcdonnell.com>2026-04-25 14:02:27 -0400
committerJacob McDonnell <jacob@jacobmcdonnell.com>2026-04-25 14:02:27 -0400
commit6d8bdc65446a704d0750217efd05532fc641ea7d (patch)
tree8ae6d698b3c9801750a8b117b3842fb369872a3a /static/openbsd/man4/openprom.4
parent2f467bd7ff8f8db0dafa40426166491d7f57f368 (diff)
docs: OpenBSD Man Pages Added
Diffstat (limited to 'static/openbsd/man4/openprom.4')
-rw-r--r--static/openbsd/man4/openprom.4169
1 files changed, 169 insertions, 0 deletions
diff --git a/static/openbsd/man4/openprom.4 b/static/openbsd/man4/openprom.4
new file mode 100644
index 00000000..e7b52eae
--- /dev/null
+++ b/static/openbsd/man4/openprom.4
@@ -0,0 +1,169 @@
+.\" $OpenBSD: openprom.4,v 1.3 2026/04/21 20:00:55 jca Exp $
+.\" Copyright (c) 1992, 1993
+.\" The Regents of the University of California. All rights reserved.
+.\"
+.\" This software was developed by the Computer Systems Engineering group
+.\" at Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and
+.\" contributed to Berkeley.
+.\"
+.\" 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. Neither the name of the University 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 REGENTS 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 REGENTS 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.
+.\"
+.\" from: @(#)openprom.4 8.1 (Berkeley) 6/5/93
+.\"
+.Dd $Mdocdate: April 21 2026 $
+.Dt OPENPROM 4
+.Os
+.Sh NAME
+.Nm openprom
+.Nd OPENPROM interface
+.Sh SYNOPSIS
+.In machine/openpromio.h
+.Sh DESCRIPTION
+The file
+.Pa /dev/openprom
+is an interface to the OPENPROM.
+This interface is highly stylized,
+ioctls are used for all operations.
+These ioctls refer to
+.Dq nodes ,
+which are simply
+.Dq magic
+integer values describing data areas.
+Occasionally the number 0 may be used or returned instead,
+as described below.
+.Pp
+The calls that take and/or return a node
+use a pointer to an
+.Vt int
+variable for this purpose;
+others use a pointer to a
+.Vt struct opiocdesc
+descriptor,
+which contains a node and two counted strings.
+The first string is comprised of the fields
+.Li op_namelen
+(an
+.Vt int )
+and
+.Li op_name
+(a
+.Vt char * ) ,
+giving the name of a field.
+The second string is comprised of the fields
+.Li op_buflen
+and
+.Li op_buf ,
+used analogously.
+These two counted strings work in a
+.Dq value-result
+fashion.
+At entry to the ioctl,
+the counts are expected to reflect the buffer size;
+on return,
+the counts are updated to reflect the buffer contents.
+.Pp
+The following ioctls are supported:
+.Bl -tag -width OPIOCGETOPTNODE
+.It Dv OPIOCGETOPTNODE
+Takes nothing, and fills in the options node number.
+.It Dv OPIOCGETNEXT
+Takes a node number and returns the number of the following node.
+The node following the last node is number 0;
+the node following number 0 is the first node.
+.It Dv OPIOCGETCHILD
+Takes a node number and returns the number of the first
+.Dq child
+of that node.
+This child may have siblings; these can be discovered by using
+.Dv OPIOCGETNEXT .
+.It Dv OPIOCGET
+Fills in the value of the named property for the given node.
+If no such property is associated with that node,
+the value length is set to -1.
+If the named property exists but has no value,
+the value length is set to 0.
+.It Dv OPIOCSET
+Writes the given value under the given name.
+The OPENPROM may refuse this operation,
+in this case
+.Dv EINVAL
+is returned.
+.It Dv OPIOCNEXTPROP
+Finds the property whose name follows the given name
+in OPENPROM internal order.
+The resulting name is returned in the value field.
+If the named property is the last, the
+.Dq next
+name is the empty string.
+As with
+.Dv OPIOCGETNEXT ,
+the next name after the empty string is the first name.
+.El
+.Sh FILES
+.Pa /dev/openprom
+.Sh ERRORS
+The following may result in rejection of an operation:
+.Bl -tag -width "[ENAMETOOLONG]"
+.It Bq Er EINVAL
+The given node number
+is not zero
+and does not correspond to any valid node,
+or is zero where zero is not allowed.
+.It Bq Er EBADF
+The requested operation requires permissions not specified at the call to
+.Fn open .
+.It Bq Er ENAMETOOLONG
+The given name or value field
+exceeds the maximum allowed length (8191 bytes).
+.It Bq Er ENOMEM
+Memory could not be allocated.
+.It Bq Er ENOTTY
+The ioctl is not supported on this architecture.
+.El
+.Sh SEE ALSO
+.Xr ioctl 2 ,
+.Xr eeprom 8
+.Sh HISTORY
+The
+.Nm
+interface first appeared in
+.Ox 3.0
+for sparc64.
+It has been available on macppc since
+.Ox 4.3 ,
+on octeon since
+.Ox 6.0 ,
+on armv7 since
+.Ox 6.0 ,
+on arm64 since
+.Ox 6.1 ,
+on powerpc64 since
+.Ox 6.8 ,
+and on riscv64 since
+.Ox 7.0 .
+.Sh BUGS
+Due to limitations within the OPENPROM itself,
+these functions run at elevated priority
+and may adversely affect system performance.