sam_restore_copy(3)

NAME
sam_restore_copy - Creates an archive copy for a Sun StorageTek SAM-FS or a Sun SAM-QFS file

SYNOPSIS
cc [ flag ... ] file ... -L/opt/SUNWsamfs/lib -lsamut [ library ... ]

#include "/opt/SUNWsamfs/include/stat.h"

int sam_restore_copy(const char *path, int copy, struct sam_stat *buf, size_t bufsize, struct sam_section *vbuf, size_t vbufsize);

DESCRIPTION
The sam_restore_copy() library routine creates an archive copy for an existing Sun StorageTek SAM-FS or Sun SAM-QFS file. The file must already exist and the archive copy must not exist. The sam_restore_copy() library routine creates an archive copy using information supplied by the user and obtained from a source such as the archiver.log. This library routine accepts the following arguments:

path
    The path name to the file where the archive copy is being created. It may be an absolute or relative path name, but it must be no longer than PATH_MAX (see the /usr/include/limits.h file).

copy
    The copy number (0, 1, 2, or 3) of the archive copy that is being created.

buf A sam_stat structure. See sam_stat(3).

bufsize
    The size of the sam_stat structure. See sam_stat(3).

vbuf
    A sam_section structure for the array of VSNs if the archive copy overflowed volumes, that is, n_vsns > 1. If n_vsns = 1, vbuf should be set to NULL. See sam_stat(3).

vbufsize
    The size of the sam_section structure. If n_vsns = 1, vbufsize should be set to 0. See sam_stat(3).

The following members in the sam_stat structure must exist. All other fields are ignored.

ulong_t      st_mode      /* File mode (see mknod(2)) */
ulong_t      st_uid       /* User ID of the file's owner */
ulong_t      st_gid       /* Group ID of the file's owner */
u_longlong_t st_size      /* File size in bytes */
ulong_t      st_atime     /* Time of last access      */
ulong_t      st_ctime     /* Time of last file status change */
ulong_t      st_mtime     /* Time of last data modification  */

The following members in the sam_copy_s structure must exist for the copy. All other fields are ignored.

u_longlong_t position;    /* Position of the file on the media. */
time_t       creation_time; /* Time the archive copy was created */
uint_t       offset;      /* Location of the copy in the archive file */
short        n_vsns;      /* Number of volumes used by the archive */
char         media[4];    /* Two character media type. */
char         vsn[32];     /* Volume serial name of the media volume */

The preceding fields have the following meaning:

position
    The position of the file recorded on the media.

creation_time
    This is the time that the archive was made. If creation_time is zero, it is set to the value of time().

offset
    The location of the copy in the archive file in units of 512 bytes.

n_vsns
    The number of volumes that this copy spans.

vsn The volume serial name of the cartridge where the file resides.

media
    The two-character media type. For example, the media type for DLT tape is lt. See mcf(4).

RETURN VALUES
Upon succesful creation of a file, a value of 0 is returned. Otherwise, a negative value is returned and errno is set to indicate the error. The possible return values are:
-1 | user is not root
-2 | invalid copy number
-3 | invalid VSN
-4 | file does not exist
-5 | file open failed
-6 | uid and gid do not match those for the existing file
-7 | invalid VSN for this copy
-8 | multiple copies but vbufsize incorrect
-9 | media type invalid
-10 | copy restore failed for some other reason

FILES

/etc/opt/SUNWsamfs/mcf
    The configuration file for Sun StorageTek SAM-FS or Sun SAM-QFS file systems.

SEE ALSO
sam_restore_file(3), sam_stat(3).

mcf(4).