sam_devstat, sam_ndevstat, sam_devstatl - Gets device status
cc [
flag
… ]
file
… -L∕opt∕SUNWsamfs∕lib -lsam [
library … ]
#include "∕opt∕SUNWsamfs∕include∕devstat.h"
int sam_devstat(ushort_t
eq ,
struct sam_devstat *
buf ,
size_t
bufsize );
int sam_ndevstat(ushort_t
eq ,
struct sam_ndevstat *
buf ,
size_t
bufsize );
int sam_devstatl(ushort_t
eq ,
struct sam_devstatl *
buf ,
size_t
bufsize );
sam_devstat() and sam_ndevstat()
are obsolete, use
sam_devstatl().
sam_devstatl()
obtains information about the device identified by the equipment number,
eq.
buf
is a pointer to a
sam_devstatl
structure into which information
is placed concerning the device.
bufsize
is the length of the user's buffer to which
buf
points. This should be equal to or greater
than sizeof(struct sam_devstatl)
.
The contents of the structure pointed to by buf include the following members for sam_devstatl:
type; | u_short | Media type |
name[128]; | char | Device name |
vsn[32]; | char | VSN of mounted volume, 31 characters |
state; | dstate_t | State - on∕ro∕idle∕off∕down |
status; | uint_t | Device status |
uint64_t | space; | Space left on device |
uint64_t | capacity; | Capacity in blocks |
type
The type of the media. Masks for interpreting media type are defined in devstat.h.
name
The name of the device, such as ∕dev∕rmt∕3cbn
.
vsn
The VSN of the mounted volume, if any. This is a null-terminated string with a maximum of 31 characters.
state
The state of the device. This field is an enumerated type defined in devstat.h.
status
The status of the device. Status bits are defined in the file devstat.h. Also,
the library routine
sam_devstr
(3)
is available to translate the numeric status field into a character string as
displayed in the StorageTek QFS or Oracle HSM graphical user interfaces
and in the StorageTek QFS or Oracle HSM administrative tool
samu
(1m).
space
The space left on the device, in the number of 1024 blocks.
capacity
The capacity of the device, in the number of 1024 blocks.
Upon successful completion a value of 0 is returned.
Otherwise, a value of -1 is returned and
errno
is set to indicate the error.
sam_devstatl()
fails if one or more of the following are true:
ENODEV
The equipment number supplied is not a valid number, or no device is configured with that equipment number.
EACCES
The program does not have permission to access the StorageTek QFS or Oracle HSM shared memory segment.
EINVAL
The size of the StorageTek QFS or Oracle HSM shared memory segment is incorrect. You may need to recompile your program with the current version of the StorageTek QFS or Oracle HSM software.
ENOENT
Access to the StorageTek QFS or Oracle HSM shared memory segment has failed; possibly StorageTek QFS or Oracle HSM is not running.
EMFILE
The StorageTek QFS or Oracle HSM shared memory segment could not be accessed because the number of shared memory segments attached to the calling process would exceed the system-imposed limit.
ENOMEM
The available data space is not large enough to accommodate access to the StorageTek QFS or Oracle HSM shared memory segment.
E2BIG
For
sam_devstat() and sam_ndevstat()
only.
The capacity or space is larger than UINT_MAX or the name field
of the device was too long to fit in the name field.
Use
sam_devstatl().