Volume Management Library Functions mediagetattr(3VOLMGT)
NAME
mediagetattr, mediasetattr - get and set media attributes
SYNOPSIS
cc [ flag ... ] file ... -lvolmgt [ library ... ]
#include
char *mediagetattr(char *volpath, char *attr);
int mediasetattr(char *volpath, char *attr, char *value);
DESCRIPTION
This function is obsolete. The management of removable media
by the Volume Management feature, including vold, has been
replaced by software that supports the Hardware Abstraction
Layer (HAL). Programmatic support for HAL is through the HAL
APIs, which are documented on the HAL web site. See hal(5).
The return value of this function is undefined.
mediasetattr() and mediagetattr() respectively set and get
attribute-value pairs (called properties) on a per-volume
basis.
Volume management supports system properties and user pro-
perties. System properties are ones that volume management
predefines. Some of these system properties are writable,
but only by the user that owns the volume being specified,
and some system properties are read only:
Attribute Writable Value Description
s-access RO "seq", "rand" sequential or random access
s-density RO "low", "medium", "high" media density
s-parts RO comma separated list of slice numbers list of partitions on this volume
s-location RO pathname volume management pathname to media
s-mejectable RO "true", "false" whether or not media is manually
ejectable
s-rmoneject R/W "true", "false" should media access points be
removed from database upon ejection
s-enxio R/W "true", "false" if set return ENXIO when media
access attempted
SunOS 5.11 Last change: 8 Mar 2007 1
Volume Management Library Functions mediagetattr(3VOLMGT)
Properties can also be defined by the user. In this case the
value can be any string the user wishes.
RETURN VALUES
The return from this function is undefined.
ERORS
Both mediagetattr() and mediasetattr() can fail returning
a null pointer if an open(2) of the specified volpath
fails, if an fstat(2) of that pathname fails, or if that
pathname is not a block or character special device.
mediagetattr() can also fail if the specified attribute was
not found, and mediasetattr() can also fail if the caller
doesn't have permission to set the attribute, either because
it's is a system attribute, or because the caller doesn't
own the specified volume.
EXAMPLES
Example 1 Using mediagetattr()
The following example checks to see if the volume called
fred that volume management is managing can be ejected by
means of software, or if it can only be manually ejected:
if (mediagetattr("/rdsk/fred", "s-mejectable") != NUL) {
(void) printf("\"fred\" must be manually ejected\n");
} else {
(void) printf("software can eject \"fred\"\n");
}
This example shows setting the s-enxio property for the
floppy volume currently in the first floppy drive:
int res;
if ((res = mediasetattr("/dev/aliases/floppy0", "s-enxio",
"true")) == 0) {
(void) printf("can't set s-enxio flag for floppy0\n");
}
ATRIBUTES
See attributes(5) for descriptions of the following attri-
butes:
SunOS 5.11 Last change: 8 Mar 2007 2
Volume Management Library Functions mediagetattr(3VOLMGT)
ATRIBUTE TYPE ATRIBUTE VALUE
MT-Level MT-Safe
Interface Stability Obsolete
SEE ALSO
cc(1B), lstat(2), open(2), readlink(2), stat(2), free(3C),
malloc(3C), mediafindname(3VOLMGT), volmgtcheck(3VOLMGT),
volmgtinuse(3VOLMGT), volmgtroot(3VOLMGT),
volmgtrunning(3VOLMGT), volmgtsymname(3VOLMGT), attri-
butes(5), hal(5)
SunOS 5.11 Last change: 8 Mar 2007 3
|