Skip Headers
Oracle Hierarchical Storage Manager and QFS Software Command Reference
Section 3: Introduction to Library Functions
Release 6.1.1
E70305-03

NAME

qfs_lio_read, qfs_lio_write, qfs_lio_poll, qfs_lio_wait - Issues list I∕O or waits for listio.

SYNOPSIS

cc [flag …] file-L∕opt∕SUNWsamfs∕lib -R∕opt∕SUNWsamfs∕lib -lsam [library …]

#include "∕opt∕SUNWsamfs∕include∕listio.h"

int qfs_lio_init(qfs_lio_handle_t *hdl);

int qfs_lio_read(int fd, int mem_list_count, void *mem_addr, size_t *mem_count, int file_list_count, offset_t *file_off, offset_t *file_len, qfs_lio_handle_t *hdl);

int qfs_lio_write(int fd, int mem_list_count, void *mem_addr, size_t *mem_count, int file_list_count, offset_t *file_off, offset_t *file_len, qfs_lio_handle_t *hdl);

int qfs_lio_wait(qfs_lio_handle_t *hdl);

AVAILABILITY

SUNWqfs
SUNWsamfs

DESCRIPTION

The qfs_lio_read() function issues a listio read for an open file descriptor.

The qfs_lio_write() function issues a listio write for an open file descriptor.

The qfs_lio_init() must be used to initialize a handle object before passing it to one of the other interfaces.

The qfs_lio_wait() can be issued to wait until all I∕O in the listio call has completed.

ARGUMENTS

These functions accept the following arguments:

fd

issues I∕O for a file using a StorageTek QFS or Oracle HSM ioctl call.

mem_list_count

is the number of elements in the mem_addr and mem_count arrays.

mem_addr, mem_count

are arrays describing a list of memory regions.

file_list_count

is the number of elements in the file_off and file_len arrays.

file_off, file_len

are arrays describing a list of file regions.

hdl

points to an opaque value that is used to indicate the status of an asynchronous list I∕O request. If hdl is non-null, the function returns when all I∕O has issued. If hdl is NULL, the function returns when all I∕O has been completed.

RETURN VALUES

Upon successful completion a value of 0 is returned. Otherwise, a value of -1 is returned and errno is set to indicate the error.

ERRORS

The qfs_lio_read(), qfs_lio_write(), and qfs_lio_wait() fails if one or more of the following are true:

EINVAL

An invalid option was specified, or the file is not a regular file.

EPERM

Not the owner or super-user.

EFAULT

mem_addr, mem_count, file_off, or file_len points to an illegal address.

EINTR

A signal was caught during the qfs_lio() function.

SEE ALSO

setfa (1), sam_setfa (3x), directio(3C),