Blame libopeniscsiusr/docs/libopeniscsiusr.h.3

Packit eace71
.TH "libopeniscsiusr.h" 3 "November 2017" "iSCSI userspace API - libopeniscsiusr Manual"
Packit eace71
Packit eace71
.SH NAME
Packit eace71
libopeniscsiusr.h \- iSCSI userspace API.
Packit eace71
Packit eace71
.SH SYNOPSIS
Packit eace71
#include <libopeniscsiusr/libopeniscsiusr.h>
Packit eace71
Packit eace71
.SH "DESCRIPTION"
Packit eace71
Packit eace71
All the libopeniscsiusr public functions ship their own man pages.
Packit eace71
You may use 'man -k iscsi' to find out and use 'man 3 <function_name>' to check
Packit eace71
the detail usage.
Packit eace71
Packit eace71
.SH "USAGE"
Packit eace71
Packit eace71
To use libopeniscsiusr in your project, we suggest to use the 'pkg-config' way:
Packit eace71
Packit eace71
 * Add this line into your configure.ac:
Packit eace71
Packit eace71
    PKG_CHECK_MODULES([LIBISCSIUSR], [libopeniscsiusr])
Packit eace71
Packit eace71
 * Add these lines into your Makefile.am:
Packit eace71
Packit eace71
    foo_LDFLAGS += $(LIBISCSIUSR_LIBS)
Packit eace71
    foo_CFLAGS += $(LIBISCSIUSR_CFLAGS)
Packit eace71
Packit eace71
.SH LOG HANDLING
Packit eace71
Packit eace71
The log handler function could be set via 'iscsi_context_log_func_set()'.
Packit eace71
The log priority could be set via 'iscsi_context_log_priority_set()'.
Packit eace71
Packit eace71
By default, the log priorities is 'LIBISCSI_LOG_PRIORITY_WARNING'.
Packit eace71
By default, the log handler is print log to STDERR, and its code is listed
Packit eace71
below in case you want to take it as an example to create your own log handler.
Packit eace71
Packit eace71
        #define _ISCSI_LOG_STRERR_ALIGN_WIDTH   80
Packit eace71
Packit eace71
        void _iscsi_log_stderr(struct iscsi_context *ctx, int priority,
Packit eace71
                               const char *file, int line,
Packit eace71
                               const char *func_name,
Packit eace71
                               const char *format, va_list args)
Packit eace71
        {
Packit eace71
                int printed_bytes = 0;
Packit eace71
Packit eace71
                printed_bytes += fprintf(stderr, "iSCSI %s: ",
Packit eace71
                                         iscsi_log_priority_str(priority));
Packit eace71
                printed_bytes += vfprintf(stderr, format, args);
Packit eace71
Packit eace71
                if (printed_bytes < _ISCSI_LOG_STRERR_ALIGN_WIDTH) {
Packit eace71
                        fprintf(stderr, "%*s # %s:%s():%d\n",
Packit eace71
                                _ISCSI_LOG_STRERR_ALIGN_WIDTH - printed_bytes,
Packit eace71
                                "", file, func_name, line);
Packit eace71
                } else {
Packit eace71
                        fprintf(stderr, " # %s:%s():%d\n", file, func_name,
Packit eace71
                                line);
Packit eace71
                }
Packit eace71
        }
Packit eace71
Packit eace71
Packit eace71
.SH "SAMPLE CODE"
Packit eace71
Packit eace71
        struct iscsi_context *ctx = NULL;
Packit eace71
        struct iscsi_session **ses = NULL;
Packit eace71
        uint32_t se_count = 0;
Packit eace71
        uint32_t i = 0;
Packit eace71
        int rc = EXIT_SUCCESS;
Packit eace71
Packit eace71
        ctx = iscsi_context_new();
Packit eace71
        iscsi_context_log_priority_set(ctx, LIBISCSI_LOG_PRIORITY_DEBUG);
Packit eace71
Packit eace71
        if (iscsi_sessions_get(ctx, &ses, &se_count) != LIBISCSI_OK) {
Packit eace71
                printf("FAILED\n");
Packit eace71
                rc = EXIT_FAILURE;
Packit eace71
        } else {
Packit eace71
                printf("\nGot %" PRIu32 " iSCSI sessions\n", se_count);
Packit eace71
                for (i = 0; i < se_count; ++i)
Packit eace71
                        printf("SID is %" PRIu32 "\n",
Packit eace71
                               iscsi_session_sid_get(ses[i]));
Packit eace71
                iscsi_sessions_free(ses, se_count);
Packit eace71
        }
Packit eace71
        iscsi_context_free(ctx);
Packit eace71
        exit(rc);
Packit eace71
Packit eace71
.SH "LICENSE"
Packit eace71
GPLv3+
Packit eace71
Packit eace71
.SH "BUG"
Packit eace71
Please report bug to https://github.com/open-iscsi/open-iscsi/issues