Blame libopeniscsiusr/docs/libopeniscsiusr.h.3

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