READ_VTOC(3EXT) Extended Library Functions READ_VTOC(3EXT)

read_vtoc, write_vtoc - read and write a disk's VTOC

cc [ flag ... ] file ... -ladm [ library ... ]
#include <sys/vtoc.h>
int read_vtoc(int fd, struct vtoc *vtoc);

int write_vtoc(int fd, struct vtoc *vtoc);

int read_extvtoc(int fd, struct extvtoc *extvtoc);

int write_extvtoc(int fd, struct extvtoc *extvtoc);

The read_vtoc() and read_extvtoc() functions return the VTOC (volume table of contents) structure that is stored on the disk associated with the open file descriptor fd. On disks larger than 1 TB read_extvtoc() must be used.

The write_vtoc() and write_extvtoc() function stores the VTOC structure on the disk associated with the open file descriptor fd. On disks larger then 1TB write_extvtoc() function must be used.

The fd argument refers to any slice on a raw disk.

Upon successful completion, read_vtoc() and read_extvtoc() return a positive integer indicating the slice index associated with the open file descriptor. Otherwise, they return a negative integer indicating one of the following errors:

VT_EIO

An I/O error occurred.

VT_ENOTSUP

This operation is not supported on this disk.

VT_ERROR

An unknown error occurred.

VT_OVERFLOW

The caller attempted an operation that is illegal on the disk and may overflow the fields in the data structure.

Upon successful completion, write_vtoc() and write_extvtoc() return 0. Otherwise, they return a negative integer indicating one of the following errors:

VT_EINVAL

The VTOC contains an incorrect field.

VT_EIO

An I/O error occurred.

VT_ENOTSUP

This operation is not supported on this disk.

VT_ERROR

An unknown error occurred.

VT_OVERFLOW

The caller attempted an operation that is illegal on the disk and may overflow the fields in the data structure.

See attributes(7) for descriptions of the following attributes:

ATTRIBUTE TYPE ATTRIBUTE VALUE
MT-Level Unsafe

ioctl(2), efi_alloc_and_init(3EXT), dkio(4I), attributes(7), fmthard(8), format(8), prtvtoc(8)

The write_vtoc() function cannot write a VTOC on an unlabeled disk. Use format(8) for this purpose.

October 7, 2008 OmniOS