/FileExtraction/Java_unseen/OE-FET_JISA/src/jisa/visa/VISANativeInterface.java
package jisa.visa;

import com.sun.jna.Library;
import com.sun.jna.NativeLong;
import com.sun.jna.Pointer;
import com.sun.jna.PointerType;
import com.sun.jna.ptr.NativeLongByReference;
import com.sun.jna.ptr.PointerByReference;
//import com.sun.jna.ptr.ShortByReference;
import java.nio.ByteBuffer;
import java.nio.ShortBuffer;

// Generated by JNAerator
public interface VISANativeInterface extends Library {

    int  VI_SPEC_VERSION                     = 0x00500100;
    int  VI_ATTR_RSRC_CLASS                  = 0xBFFF0001;
    int  VI_ATTR_RSRC_NAME                   = 0xBFFF0002;
    int  VI_ATTR_RSRC_IMPL_VERSION           = 0x3FFF0003;
    int  VI_ATTR_RSRC_LOCK_STATE             = 0x3FFF0004;
    int  VI_ATTR_MAX_QUEUE_LENGTH            = 0x3FFF0005;
    int  VI_ATTR_USER_DATA_32                = 0x3FFF0007;
    int  VI_ATTR_FDC_CHNL                    = 0x3FFF000D;
    int  VI_ATTR_FDC_MODE                    = 0x3FFF000F;
    int  VI_ATTR_FDC_GEN_SIGNAL_EN           = 0x3FFF0011;
    int  VI_ATTR_FDC_USE_PAIR                = 0x3FFF0013;
    int  VI_ATTR_SEND_END_EN                 = 0x3FFF0016;
    int  VI_ATTR_TERMCHAR                    = 0x3FFF0018;
    int  VI_ATTR_TMO_VALUE                   = 0x3FFF001A;
    int  VI_ATTR_GPIB_READDR_EN              = 0x3FFF001B;
    int  VI_ATTR_IO_PROT                     = 0x3FFF001C;
    int  VI_ATTR_DMA_ALLOW_EN                = 0x3FFF001E;
    int  VI_ATTR_ASRL_BAUD                   = 0x3FFF0021;
    int  VI_ATTR_ASRL_DATA_BITS              = 0x3FFF0022;
    int  VI_ATTR_ASRL_PARITY                 = 0x3FFF0023;
    int  VI_ATTR_ASRL_STOP_BITS              = 0x3FFF0024;
    int  VI_ATTR_ASRL_FLOW_CNTRL             = 0x3FFF0025;
    int  VI_ATTR_RD_BUF_OPER_MODE            = 0x3FFF002A;
    int  VI_ATTR_RD_BUF_SIZE                 = 0x3FFF002B;
    int  VI_ATTR_WR_BUF_OPER_MODE            = 0x3FFF002D;
    int  VI_ATTR_WR_BUF_SIZE                 = 0x3FFF002E;
    int  VI_ATTR_SUPPRESS_END_EN             = 0x3FFF0036;
    int  VI_ATTR_TERMCHAR_EN                 = 0x3FFF0038;
    int  VI_ATTR_DEST_ACCESS_PRIV            = 0x3FFF0039;
    int  VI_ATTR_DEST_BYTE_ORDER             = 0x3FFF003A;
    int  VI_ATTR_SRC_ACCESS_PRIV             = 0x3FFF003C;
    int  VI_ATTR_SRC_BYTE_ORDER              = 0x3FFF003D;
    int  VI_ATTR_SRC_INCREMENT               = 0x3FFF0040;
    int  VI_ATTR_DEST_INCREMENT              = 0x3FFF0041;
    int  VI_ATTR_WIN_ACCESS_PRIV             = 0x3FFF0045;
    int  VI_ATTR_WIN_BYTE_ORDER              = 0x3FFF0047;
    int  VI_ATTR_GPIB_ATN_STATE              = 0x3FFF0057;
    int  VI_ATTR_GPIB_ADDR_STATE             = 0x3FFF005C;
    int  VI_ATTR_GPIB_CIC_STATE              = 0x3FFF005E;
    int  VI_ATTR_GPIB_NDAC_STATE             = 0x3FFF0062;
    int  VI_ATTR_GPIB_SRQ_STATE              = 0x3FFF0067;
    int  VI_ATTR_GPIB_SYS_CNTRL_STATE        = 0x3FFF0068;
    int  VI_ATTR_GPIB_HS488_CBL_LEN          = 0x3FFF0069;
    int  VI_ATTR_CMDR_LA                     = 0x3FFF006B;
    int  VI_ATTR_VXI_DEV_CLASS               = 0x3FFF006C;
    int  VI_ATTR_MAINFRAME_LA                = 0x3FFF0070;
    int  VI_ATTR_MANF_NAME                   = 0xBFFF0072;
    int  VI_ATTR_MODEL_NAME                  = 0xBFFF0077;
    int  VI_ATTR_VXI_VME_INTR_STATUS         = 0x3FFF008B;
    int  VI_ATTR_VXI_TRIG_STATUS             = 0x3FFF008D;
    int  VI_ATTR_VXI_VME_SYSFAIL_STATE       = 0x3FFF0094;
    int  VI_ATTR_WIN_BASE_ADDR_32            = 0x3FFF0098;
    int  VI_ATTR_WIN_SIZE_32                 = 0x3FFF009A;
    int  VI_ATTR_ASRL_AVAIL_NUM              = 0x3FFF00AC;
    int  VI_ATTR_MEM_BASE_32                 = 0x3FFF00AD;
    int  VI_ATTR_ASRL_CTS_STATE              = 0x3FFF00AE;
    int  VI_ATTR_ASRL_DCD_STATE              = 0x3FFF00AF;
    int  VI_ATTR_ASRL_DSR_STATE              = 0x3FFF00B1;
    int  VI_ATTR_ASRL_DTR_STATE              = 0x3FFF00B2;
    int  VI_ATTR_ASRL_END_IN                 = 0x3FFF00B3;
    int  VI_ATTR_ASRL_END_OUT                = 0x3FFF00B4;
    int  VI_ATTR_ASRL_REPLACE_CHAR           = 0x3FFF00BE;
    int  VI_ATTR_ASRL_RI_STATE               = 0x3FFF00BF;
    int  VI_ATTR_ASRL_RTS_STATE              = 0x3FFF00C0;
    int  VI_ATTR_ASRL_XON_CHAR               = 0x3FFF00C1;
    int  VI_ATTR_ASRL_XOFF_CHAR              = 0x3FFF00C2;
    int  VI_ATTR_WIN_ACCESS                  = 0x3FFF00C3;
    int  VI_ATTR_RM_SESSION                  = 0x3FFF00C4;
    int  VI_ATTR_VXI_LA                      = 0x3FFF00D5;
    int  VI_ATTR_MANF_ID                     = 0x3FFF00D9;
    int  VI_ATTR_MEM_SIZE_32                 = 0x3FFF00DD;
    int  VI_ATTR_MEM_SPACE                   = 0x3FFF00DE;
    int  VI_ATTR_MODEL_CODE                  = 0x3FFF00DF;
    int  VI_ATTR_SLOT                        = 0x3FFF00E8;
    int  VI_ATTR_INTF_INST_NAME              = 0xBFFF00E9;
    int  VI_ATTR_IMMEDIATE_SERV              = 0x3FFF0100;
    int  VI_ATTR_INTF_PARENT_NUM             = 0x3FFF0101;
    int  VI_ATTR_RSRC_SPEC_VERSION           = 0x3FFF0170;
    int  VI_ATTR_INTF_TYPE                   = 0x3FFF0171;
    int  VI_ATTR_GPIB_PRIMARY_ADDR           = 0x3FFF0172;
    int  VI_ATTR_GPIB_SECONDARY_ADDR         = 0x3FFF0173;
    int  VI_ATTR_RSRC_MANF_NAME              = 0xBFFF0174;
    int  VI_ATTR_RSRC_MANF_ID                = 0x3FFF0175;
    int  VI_ATTR_INTF_NUM                    = 0x3FFF0176;
    int  VI_ATTR_TRIG_ID                     = 0x3FFF0177;
    int  VI_ATTR_GPIB_REN_STATE              = 0x3FFF0181;
    int  VI_ATTR_GPIB_UNADDR_EN              = 0x3FFF0184;
    int  VI_ATTR_DEV_STATUS_BYTE             = 0x3FFF0189;
    int  VI_ATTR_FILE_APPEND_EN              = 0x3FFF0192;
    int  VI_ATTR_VXI_TRIG_SUPPORT            = 0x3FFF0194;
    int  VI_ATTR_TCPIP_ADDR                  = 0xBFFF0195;
    int  VI_ATTR_TCPIP_HOSTNAME              = 0xBFFF0196;
    int  VI_ATTR_TCPIP_PORT                  = 0x3FFF0197;
    int  VI_ATTR_TCPIP_DEVICE_NAME           = 0xBFFF0199;
    int  VI_ATTR_TCPIP_NODELAY               = 0x3FFF019A;
    int  VI_ATTR_TCPIP_KEEPALIVE             = 0x3FFF019B;
    int  VI_ATTR_4882_COMPLIANT              = 0x3FFF019F;
    int  VI_ATTR_USB_SERIAL_NUM              = 0xBFFF01A0;
    int  VI_ATTR_USB_INTFC_NUM               = 0x3FFF01A1;
    int  VI_ATTR_USB_PROTOCOL                = 0x3FFF01A7;
    int  VI_ATTR_USB_MAX_INTR_SIZE           = 0x3FFF01AF;
    int  VI_ATTR_PXI_DEV_NUM                 = 0x3FFF0201;
    int  VI_ATTR_PXI_FUNC_NUM                = 0x3FFF0202;
    int  VI_ATTR_PXI_BUS_NUM                 = 0x3FFF0205;
    int  VI_ATTR_PXI_CHASSIS                 = 0x3FFF0206;
    int  VI_ATTR_PXI_SLOTPATH                = 0xBFFF0207;
    int  VI_ATTR_PXI_SLOT_LBUS_LEFT          = 0x3FFF0208;
    int  VI_ATTR_PXI_SLOT_LBUS_RIGHT         = 0x3FFF0209;
    int  VI_ATTR_PXI_TRIG_BUS                = 0x3FFF020A;
    int  VI_ATTR_PXI_STAR_TRIG_BUS           = 0x3FFF020B;
    int  VI_ATTR_PXI_STAR_TRIG_LINE          = 0x3FFF020C;
    int  VI_ATTR_PXI_SRC_TRIG_BUS            = 0x3FFF020D;
    int  VI_ATTR_PXI_DEST_TRIG_BUS           = 0x3FFF020E;
    int  VI_ATTR_PXI_MEM_TYPE_BAR0           = 0x3FFF0211;
    int  VI_ATTR_PXI_MEM_TYPE_BAR1           = 0x3FFF0212;
    int  VI_ATTR_PXI_MEM_TYPE_BAR2           = 0x3FFF0213;
    int  VI_ATTR_PXI_MEM_TYPE_BAR3           = 0x3FFF0214;
    int  VI_ATTR_PXI_MEM_TYPE_BAR4           = 0x3FFF0215;
    int  VI_ATTR_PXI_MEM_TYPE_BAR5           = 0x3FFF0216;
    int  VI_ATTR_PXI_MEM_BASE_BAR0_32        = 0x3FFF0221;
    int  VI_ATTR_PXI_MEM_BASE_BAR1_32        = 0x3FFF0222;
    int  VI_ATTR_PXI_MEM_BASE_BAR2_32        = 0x3FFF0223;
    int  VI_ATTR_PXI_MEM_BASE_BAR3_32        = 0x3FFF0224;
    int  VI_ATTR_PXI_MEM_BASE_BAR4_32        = 0x3FFF0225;
    int  VI_ATTR_PXI_MEM_BASE_BAR5_32        = 0x3FFF0226;
    int  VI_ATTR_PXI_MEM_BASE_BAR0_64        = 0x3FFF0228;
    int  VI_ATTR_PXI_MEM_BASE_BAR1_64        = 0x3FFF0229;
    int  VI_ATTR_PXI_MEM_BASE_BAR2_64        = 0x3FFF022A;
    int  VI_ATTR_PXI_MEM_BASE_BAR3_64        = 0x3FFF022B;
    int  VI_ATTR_PXI_MEM_BASE_BAR4_64        = 0x3FFF022C;
    int  VI_ATTR_PXI_MEM_BASE_BAR5_64        = 0x3FFF022D;
    int  VI_ATTR_PXI_MEM_SIZE_BAR0_32        = 0x3FFF0231;
    int  VI_ATTR_PXI_MEM_SIZE_BAR1_32        = 0x3FFF0232;
    int  VI_ATTR_PXI_MEM_SIZE_BAR2_32        = 0x3FFF0233;
    int  VI_ATTR_PXI_MEM_SIZE_BAR3_32        = 0x3FFF0234;
    int  VI_ATTR_PXI_MEM_SIZE_BAR4_32        = 0x3FFF0235;
    int  VI_ATTR_PXI_MEM_SIZE_BAR5_32        = 0x3FFF0236;
    int  VI_ATTR_PXI_MEM_SIZE_BAR0_64        = 0x3FFF0238;
    int  VI_ATTR_PXI_MEM_SIZE_BAR1_64        = 0x3FFF0239;
    int  VI_ATTR_PXI_MEM_SIZE_BAR2_64        = 0x3FFF023A;
    int  VI_ATTR_PXI_MEM_SIZE_BAR3_64        = 0x3FFF023B;
    int  VI_ATTR_PXI_MEM_SIZE_BAR4_64        = 0x3FFF023C;
    int  VI_ATTR_PXI_MEM_SIZE_BAR5_64        = 0x3FFF023D;
    int  VI_ATTR_PXI_IS_EXPRESS              = 0x3FFF0240;
    int  VI_ATTR_PXI_SLOT_LWIDTH             = 0x3FFF0241;
    int  VI_ATTR_PXI_MAX_LWIDTH              = 0x3FFF0242;
    int  VI_ATTR_PXI_ACTUAL_LWIDTH           = 0x3FFF0243;
    int  VI_ATTR_PXI_DSTAR_BUS               = 0x3FFF0244;
    int  VI_ATTR_PXI_DSTAR_SET               = 0x3FFF0245;
    int  VI_ATTR_PXI_ALLOW_WRITE_COMBINE     = 0x3FFF0246;
    int  VI_ATTR_TCPIP_HISLIP_OVERLAP_EN     = 0x3FFF0300;
    int  VI_ATTR_TCPIP_HISLIP_VERSION        = 0x3FFF0301;
    int  VI_ATTR_TCPIP_HISLIP_MAX_MESSAGE_KB = 0x3FFF0302;
    int  VI_ATTR_TCPIP_IS_HISLIP             = 0x3FFF0303;
    int  VI_ATTR_JOB_ID                      = 0x3FFF4006;
    int  VI_ATTR_EVENT_TYPE                  = 0x3FFF4010;
    int  VI_ATTR_SIGP_STATUS_ID              = 0x3FFF4011;
    int  VI_ATTR_RECV_TRIG_ID                = 0x3FFF4012;
    int  VI_ATTR_INTR_STATUS_ID              = 0x3FFF4023;
    int  VI_ATTR_STATUS                      = 0x3FFF4025;
    int  VI_ATTR_RET_COUNT_32                = 0x3FFF4026;
    int  VI_ATTR_BUFFER                      = 0x3FFF4027;
    int  VI_ATTR_RECV_INTR_LEVEL             = 0x3FFF4041;
    int  VI_ATTR_OPER_NAME                   = 0xBFFF4042;
    int  VI_ATTR_GPIB_RECV_CIC_STATE         = 0x3FFF4193;
    int  VI_ATTR_RECV_TCPIP_ADDR             = 0xBFFF4198;
    int  VI_ATTR_USB_RECV_INTR_SIZE          = 0x3FFF41B0;
    int  VI_ATTR_USB_RECV_INTR_DATA          = 0xBFFF41B1;
    int  VI_ATTR_PXI_RECV_INTR_SEQ           = 0x3FFF4240;
    int  VI_ATTR_PXI_RECV_INTR_DATA          = 0x3FFF4241;
    int  VI_ATTR_USER_DATA                   = 0x3FFF0007;
    int  VI_ATTR_RET_COUNT                   = 0x3FFF4026;
    int  VI_ATTR_WIN_BASE_ADDR_64            = 0x3FFF009B;
    int  VI_ATTR_WIN_SIZE_64                 = 0x3FFF009C;
    int  VI_ATTR_MEM_BASE_64                 = 0x3FFF00D0;
    int  VI_ATTR_MEM_SIZE_64                 = 0x3FFF00D1;
    int  VI_ATTR_WIN_BASE_ADDR               = 0x3FFF0098;
    int  VI_ATTR_WIN_SIZE                    = 0x3FFF009A;
    int  VI_ATTR_MEM_BASE                    = 0x3FFF00AD;
    int  VI_ATTR_MEM_SIZE                    = 0x3FFF00DD;
    int  VI_ATTR_PXI_MEM_BASE_BAR0           = 0x3FFF0221;
    int  VI_ATTR_PXI_MEM_BASE_BAR1           = 0x3FFF0222;
    int  VI_ATTR_PXI_MEM_BASE_BAR2           = 0x3FFF0223;
    int  VI_ATTR_PXI_MEM_BASE_BAR3           = 0x3FFF0224;
    int  VI_ATTR_PXI_MEM_BASE_BAR4           = 0x3FFF0225;
    int  VI_ATTR_PXI_MEM_BASE_BAR5           = 0x3FFF0226;
    int  VI_ATTR_PXI_MEM_SIZE_BAR0           = 0x3FFF0231;
    int  VI_ATTR_PXI_MEM_SIZE_BAR1           = 0x3FFF0232;
    int  VI_ATTR_PXI_MEM_SIZE_BAR2           = 0x3FFF0233;
    int  VI_ATTR_PXI_MEM_SIZE_BAR3           = 0x3FFF0234;
    int  VI_ATTR_PXI_MEM_SIZE_BAR4           = 0x3FFF0235;
    int  VI_ATTR_PXI_MEM_SIZE_BAR5           = 0x3FFF0236;
    int  VI_EVENT_IO_COMPLETION              = 0x3FFF2009;
    int  VI_EVENT_TRIG                       = 0xBFFF200A;
    int  VI_EVENT_SERVICE_REQ                = 0x3FFF200B;
    int  VI_EVENT_CLEAR                      = 0x3FFF200D;
    int  VI_EVENT_EXCEPTION                  = 0xBFFF200E;
    int  VI_EVENT_GPIB_CIC                   = 0x3FFF2012;
    int  VI_EVENT_GPIB_TALK                  = 0x3FFF2013;
    int  VI_EVENT_GPIB_LISTEN                = 0x3FFF2014;
    int  VI_EVENT_VXI_VME_SYSFAIL            = 0x3FFF201D;
    int  VI_EVENT_VXI_VME_SYSRESET           = 0x3FFF201E;
    int  VI_EVENT_VXI_SIGP                   = 0x3FFF2020;
    int  VI_EVENT_VXI_VME_INTR               = 0xBFFF2021;
    int  VI_EVENT_PXI_INTR                   = 0x3FFF2022;
    int  VI_EVENT_TCPIP_CONNECT              = 0x3FFF2036;
    int  VI_EVENT_USB_INTR                   = 0x3FFF2037;
    int  VI_ALL_ENABLED_EVENTS               = 0x3FFF7FFF;
    int  VI_SUCCESS_EVENT_EN                 = 0x3FFF0002;
    int  VI_SUCCESS_EVENT_DIS                = 0x3FFF0003;
    int  VI_SUCCESS_QUEUE_EMPTY              = 0x3FFF0004;
    int  VI_SUCCESS_TERM_CHAR                = 0x3FFF0005;
    int  VI_SUCCESS_MAX_CNT                  = 0x3FFF0006;
    int  VI_SUCCESS_DEV_NPRESENT             = 0x3FFF007D;
    int  VI_SUCCESS_TRIG_MAPPED              = 0x3FFF007E;
    int  VI_SUCCESS_QUEUE_NEMPTY             = 0x3FFF0080;
    int  VI_SUCCESS_NCHAIN                   = 0x3FFF0098;
    int  VI_SUCCESS_NESTED_SHARED            = 0x3FFF0099;
    int  VI_SUCCESS_NESTED_EXCLUSIVE         = 0x3FFF009A;
    int  VI_SUCCESS_SYNC                     = 0x3FFF009B;
    int  VI_WARN_QUEUE_OVERFLOW              = 0x3FFF000C;
    int  VI_WARN_CONFIG_NLOADED              = 0x3FFF0077;
    int  VI_WARN_NULL_OBJECT                 = 0x3FFF0082;
    int  VI_WARN_NSUP_ATTR_STATE             = 0x3FFF0084;
    int  VI_WARN_UNKNOWN_STATUS              = 0x3FFF0085;
    int  VI_WARN_NSUP_BUF                    = 0x3FFF0088;
    int  VI_WARN_EXT_FUNC_NIMPL              = 0x3FFF00A9;
    int  VI_ERROR_SYSTEM_ERROR               = (-2147483647 - 1) + 0x3FFF0000;
    int  VI_ERROR_INV_OBJECT                 = (-2147483647 - 1) + 0x3FFF000E;
    int  VI_ERROR_RSRC_LOCKED                = (-2147483647 - 1) + 0x3FFF000F;
    int  VI_ERROR_INV_EXPR                   = (-2147483647 - 1) + 0x3FFF0010;
    int  VI_ERROR_RSRC_NFOUND                = (-2147483647 - 1) + 0x3FFF0011;
    int  VI_ERROR_INV_RSRC_NAME              = (-2147483647 - 1) + 0x3FFF0012;
    int  VI_ERROR_INV_ACC_MODE               = (-2147483647 - 1) + 0x3FFF0013;
    int  VI_ERROR_TMO                        = (-2147483647 - 1) + 0x3FFF0015;
    int  VI_ERROR_CLOSING_FAILED             = (-2147483647 - 1) + 0x3FFF0016;
    int  VI_ERROR_INV_DEGREE                 = (-2147483647 - 1) + 0x3FFF001B;
    int  VI_ERROR_INV_JOB_ID                 = (-2147483647 - 1) + 0x3FFF001C;
    int  VI_ERROR_NSUP_ATTR                  = (-2147483647 - 1) + 0x3FFF001D;
    int  VI_ERROR_NSUP_ATTR_STATE            = (-2147483647 - 1) + 0x3FFF001E;
    int  VI_ERROR_ATTR_READONLY              = (-2147483647 - 1) + 0x3FFF001F;
    int  VI_ERROR_INV_LOCK_TYPE              = (-2147483647 - 1) + 0x3FFF0020;
    int  VI_ERROR_INV_ACCESS_KEY             = (-2147483647 - 1) + 0x3FFF0021;
    int  VI_ERROR_INV_EVENT                  = (-2147483647 - 1) + 0x3FFF0026;
    int  VI_ERROR_INV_MECH                   = (-2147483647 - 1) + 0x3FFF0027;
    int  VI_ERROR_HNDLR_NINSTALLED           = (-2147483647 - 1) + 0x3FFF0028;
    int  VI_ERROR_INV_HNDLR_REF              = (-2147483647 - 1) + 0x3FFF0029;
    int  VI_ERROR_INV_CONTEXT                = (-2147483647 - 1) + 0x3FFF002A;
    int  VI_ERROR_NENABLED                   = (-2147483647 - 1) + 0x3FFF002F;
    int  VI_ERROR_ABORT                      = (-2147483647 - 1) + 0x3FFF0030;
    int  VI_ERROR_RAW_WR_PROT_VIOL           = (-2147483647 - 1) + 0x3FFF0034;
    int  VI_ERROR_RAW_RD_PROT_VIOL           = (-2147483647 - 1) + 0x3FFF0035;
    int  VI_ERROR_OUTP_PROT_VIOL             = (-2147483647 - 1) + 0x3FFF0036;
    int  VI_ERROR_INP_PROT_VIOL              = (-2147483647 - 1) + 0x3FFF0037;
    int  VI_ERROR_BERR                       = (-2147483647 - 1) + 0x3FFF0038;
    int  VI_ERROR_IN_PROGRESS                = (-2147483647 - 1) + 0x3FFF0039;
    int  VI_ERROR_INV_SETUP                  = (-2147483647 - 1) + 0x3FFF003A;
    int  VI_ERROR_QUEUE_ERROR                = (-2147483647 - 1) + 0x3FFF003B;
    int  VI_ERROR_ALLOC                      = (-2147483647 - 1) + 0x3FFF003C;
    int  VI_ERROR_INV_MASK                   = (-2147483647 - 1) + 0x3FFF003D;
    int  VI_ERROR_IO                         = (-2147483647 - 1) + 0x3FFF003E;
    int  VI_ERROR_INV_FMT                    = (-2147483647 - 1) + 0x3FFF003F;
    int  VI_ERROR_NSUP_FMT                   = (-2147483647 - 1) + 0x3FFF0041;
    int  VI_ERROR_LINE_IN_USE                = (-2147483647 - 1) + 0x3FFF0042;
    int  VI_ERROR_NSUP_MODE                  = (-2147483647 - 1) + 0x3FFF0046;
    int  VI_ERROR_SRQ_NOCCURRED              = (-2147483647 - 1) + 0x3FFF004A;
    int  VI_ERROR_INV_SPACE                  = (-2147483647 - 1) + 0x3FFF004E;
    int  VI_ERROR_INV_OFFSET                 = (-2147483647 - 1) + 0x3FFF0051;
    int  VI_ERROR_INV_WIDTH                  = (-2147483647 - 1) + 0x3FFF0052;
    int  VI_ERROR_NSUP_OFFSET                = (-2147483647 - 1) + 0x3FFF0054;
    int  VI_ERROR_NSUP_VAR_WIDTH             = (-2147483647 - 1) + 0x3FFF0055;
    int  VI_ERROR_WINDOW_NMAPPED             = (-2147483647 - 1) + 0x3FFF0057;
    int  VI_ERROR_RESP_PENDING               = (-2147483647 - 1) + 0x3FFF0059;
    int  VI_ERROR_NLISTENERS                 = (-2147483647 - 1) + 0x3FFF005F;
    int  VI_ERROR_NCIC                       = (-2147483647 - 1) + 0x3FFF0060;
    int  VI_ERROR_NSYS_CNTLR                 = (-2147483647 - 1) + 0x3FFF0061;
    int  VI_ERROR_NSUP_OPER                  = (-2147483647 - 1) + 0x3FFF0067;
    int  VI_ERROR_INTR_PENDING               = (-2147483647 - 1) + 0x3FFF0068;
    int  VI_ERROR_ASRL_PARITY                = (-2147483647 - 1) + 0x3FFF006A;
    int  VI_ERROR_ASRL_FRAMING               = (-2147483647 - 1) + 0x3FFF006B;
    int  VI_ERROR_ASRL_OVERRUN               = (-2147483647 - 1) + 0x3FFF006C;
    int  VI_ERROR_TRIG_NMAPPED               = (-2147483647 - 1) + 0x3FFF006E;
    int  VI_ERROR_NSUP_ALIGN_OFFSET          = (-2147483647 - 1) + 0x3FFF0070;
    int  VI_ERROR_USER_BUF                   = (-2147483647 - 1) + 0x3FFF0071;
    int  VI_ERROR_RSRC_BUSY                  = (-2147483647 - 1) + 0x3FFF0072;
    int  VI_ERROR_NSUP_WIDTH                 = (-2147483647 - 1) + 0x3FFF0076;
    int  VI_ERROR_INV_PARAMETER              = (-2147483647 - 1) + 0x3FFF0078;
    int  VI_ERROR_INV_PROT                   = (-2147483647 - 1) + 0x3FFF0079;
    int  VI_ERROR_INV_SIZE                   = (-2147483647 - 1) + 0x3FFF007B;
    int  VI_ERROR_WINDOW_MAPPED              = (-2147483647 - 1) + 0x3FFF0080;
    int  VI_ERROR_NIMPL_OPER                 = (-2147483647 - 1) + 0x3FFF0081;
    int  VI_ERROR_INV_LENGTH                 = (-2147483647 - 1) + 0x3FFF0083;
    int  VI_ERROR_INV_MODE                   = (-2147483647 - 1) + 0x3FFF0091;
    int  VI_ERROR_SESN_NLOCKED               = (-2147483647 - 1) + 0x3FFF009C;
    int  VI_ERROR_MEM_NSHARED                = (-2147483647 - 1) + 0x3FFF009D;
    int  VI_ERROR_LIBRARY_NFOUND             = (-2147483647 - 1) + 0x3FFF009E;
    int  VI_ERROR_NSUP_INTR                  = (-2147483647 - 1) + 0x3FFF009F;
    int  VI_ERROR_INV_LINE                   = (-2147483647 - 1) + 0x3FFF00A0;
    int  VI_ERROR_FILE_ACCESS                = (-2147483647 - 1) + 0x3FFF00A1;
    int  VI_ERROR_FILE_IO                    = (-2147483647 - 1) + 0x3FFF00A2;
    int  VI_ERROR_NSUP_LINE                  = (-2147483647 - 1) + 0x3FFF00A3;
    int  VI_ERROR_NSUP_MECH                  = (-2147483647 - 1) + 0x3FFF00A4;
    int  VI_ERROR_INTF_NUM_NCONFIG           = (-2147483647 - 1) + 0x3FFF00A5;
    int  VI_ERROR_CONN_LOST                  = (-2147483647 - 1) + 0x3FFF00A6;
    int  VI_ERROR_NPERMISSION                = (-2147483647 - 1) + 0x3FFF00A8;
    int  VI_FIND_BUFLEN                      = 256;
    int  VI_INTF_GPIB                        = 1;
    int  VI_INTF_VXI                         = 2;
    int  VI_INTF_GPIB_VXI                    = 3;
    int  VI_INTF_ASRL                        = 4;
    int  VI_INTF_PXI                         = 5;
    int  VI_INTF_TCPIP                       = 6;
    int  VI_INTF_USB                         = 7;
    int  VI_PROT_NORMAL                      = 1;
    int  VI_PROT_FDC                         = 2;
    int  VI_PROT_HS488                       = 3;
    int  VI_PROT_4882_STRS                   = 4;
    int  VI_PROT_USBTMC_VENDOR               = 5;
    int  VI_FDC_NORMAL                       = 1;
    int  VI_FDC_STREAM                       = 2;
    int  VI_LOCAL_SPACE                      = 0;
    int  VI_A16_SPACE                        = 1;
    int  VI_A24_SPACE                        = 2;
    int  VI_A32_SPACE                        = 3;
    int  VI_A64_SPACE                        = 4;
    int  VI_PXI_ALLOC_SPACE                  = 9;
    int  VI_PXI_CFG_SPACE                    = 10;
    int  VI_PXI_BAR0_SPACE                   = 11;
    int  VI_PXI_BAR1_SPACE                   = 12;
    int  VI_PXI_BAR2_SPACE                   = 13;
    int  VI_PXI_BAR3_SPACE                   = 14;
    int  VI_PXI_BAR4_SPACE                   = 15;
    int  VI_PXI_BAR5_SPACE                   = 16;
    int  VI_OPAQUE_SPACE                     = 0xFFFF;
    int  VI_UNKNOWN_LA                       = -1;
    int  VI_UNKNOWN_SLOT                     = -1;
    int  VI_UNKNOWN_LEVEL                    = -1;
    int  VI_UNKNOWN_CHASSIS                  = -1;
    int  VI_QUEUE                            = 1;
    int  VI_HNDLR                            = 2;
    int  VI_SUSPEND_HNDLR                    = 4;
    int  VI_ALL_MECH                         = 0xFFFF;
    int  VI_ANY_HNDLR                        = 0;
    int  VI_TRIG_ALL                         = -2;
    int  VI_TRIG_SW                          = -1;
    int  VI_TRIG_TTL0                        = 0;
    int  VI_TRIG_TTL1                        = 1;
    int  VI_TRIG_TTL2                        = 2;
    int  VI_TRIG_TTL3                        = 3;
    int  VI_TRIG_TTL4                        = 4;
    int  VI_TRIG_TTL5                        = 5;
    int  VI_TRIG_TTL6                        = 6;
    int  VI_TRIG_TTL7                        = 7;
    int  VI_TRIG_ECL0                        = 8;
    int  VI_TRIG_ECL1                        = 9;
    int  VI_TRIG_ECL2                        = 10;
    int  VI_TRIG_ECL3                        = 11;
    int  VI_TRIG_ECL4                        = 12;
    int  VI_TRIG_ECL5                        = 13;
    int  VI_TRIG_STAR_SLOT1                  = 14;
    int  VI_TRIG_STAR_SLOT2                  = 15;
    int  VI_TRIG_STAR_SLOT3                  = 16;
    int  VI_TRIG_STAR_SLOT4                  = 17;
    int  VI_TRIG_STAR_SLOT5                  = 18;
    int  VI_TRIG_STAR_SLOT6                  = 19;
    int  VI_TRIG_STAR_SLOT7                  = 20;
    int  VI_TRIG_STAR_SLOT8                  = 21;
    int  VI_TRIG_STAR_SLOT9                  = 22;
    int  VI_TRIG_STAR_SLOT10                 = 23;
    int  VI_TRIG_STAR_SLOT11                 = 24;
    int  VI_TRIG_STAR_SLOT12                 = 25;
    int  VI_TRIG_STAR_INSTR                  = 26;
    int  VI_TRIG_PANEL_IN                    = 27;
    int  VI_TRIG_PANEL_OUT                   = 28;
    int  VI_TRIG_STAR_VXI0                   = 29;
    int  VI_TRIG_STAR_VXI1                   = 30;
    int  VI_TRIG_STAR_VXI2                   = 31;
    int  VI_TRIG_PROT_DEFAULT                = 0;
    int  VI_TRIG_PROT_ON                     = 1;
    int  VI_TRIG_PROT_OFF                    = 2;
    int  VI_TRIG_PROT_SYNC                   = 5;
    int  VI_TRIG_PROT_RESERVE                = 6;
    int  VI_TRIG_PROT_UNRESERVE              = 7;
    int  VI_READ_BUF                         = 1;
    int  VI_WRITE_BUF                        = 2;
    int  VI_READ_BUF_DISCARD                 = 4;
    int  VI_WRITE_BUF_DISCARD                = 8;
    int  VI_IO_IN_BUF                        = 16;
    int  VI_IO_OUT_BUF                       = 32;
    int  VI_IO_IN_BUF_DISCARD                = 64;
    int  VI_IO_OUT_BUF_DISCARD               = 128;
    int  VI_FLUSH_ON_ACCESS                  = 1;
    int  VI_FLUSH_WHEN_FULL                  = 2;
    int  VI_FLUSH_DISABLE                    = 3;
    int  VI_NMAPPED                          = 1;
    int  VI_USE_OPERS                        = 2;
    int  VI_DEREF_ADDR                       = 3;
    int  VI_TMO_IMMEDIATE                    = 0;
    long VI_TMO_INFINITE                     = 0xFFFFFFFFL;
    int  VI_NO_LOCK                          = 0;
    int  VI_EXCLUSIVE_LOCK                   = 1;
    int  VI_SHARED_LOCK                      = 2;
    int  VI_LOAD_CONFIG                      = 4;
    int  VI_NO_SEC_ADDR                      = 0xFFFF;
    int  VI_ASRL_PAR_NONE                    = 0;
    int  VI_ASRL_PAR_ODD                     = 1;
    int  VI_ASRL_PAR_EVEN                    = 2;
    int  VI_ASRL_PAR_MARK                    = 3;
    int  VI_ASRL_PAR_SPACE                   = 4;
    int  VI_ASRL_STOP_ONE                    = 10;
    int  VI_ASRL_STOP_ONE5                   = 15;
    int  VI_ASRL_STOP_TWO                    = 20;
    int  VI_ASRL_FLOW_NONE                   = 0;
    int  VI_ASRL_FLOW_XON_XOFF               = 1;
    int  VI_ASRL_FLOW_RTS_CTS                = 2;
    int  VI_ASRL_FLOW_DTR_DSR                = 4;
    int  VI_ASRL_END_NONE                    = 0;
    int  VI_ASRL_END_LAST_BIT                = 1;
    int  VI_ASRL_END_TERMCHAR                = 2;
    int  VI_ASRL_END_BREAK                   = 3;
    int  VI_STATE_ASSERTED                   = 1;
    int  VI_STATE_UNASSERTED                 = 0;
    int  VI_STATE_UNKNOWN                    = -1;
    int  VI_BIG_ENDIAN                       = 0;
    int  VI_LITTLE_ENDIAN                    = 1;
    int  VI_DATA_PRIV                        = 0;
    int  VI_DATA_NPRIV                       = 1;
    int  VI_PROG_PRIV                        = 2;
    int  VI_PROG_NPRIV                       = 3;
    int  VI_BLCK_PRIV                        = 4;
    int  VI_BLCK_NPRIV                       = 5;
    int  VI_D64_PRIV                         = 6;
    int  VI_D64_NPRIV                        = 7;
    int  VI_D64_2EVME                        = 8;
    int  VI_D64_SST160                       = 9;
    int  VI_D64_SST267                       = 10;
    int  VI_D64_SST320                       = 11;
    int  VI_WIDTH_8                          = 1;
    int  VI_WIDTH_16                         = 2;
    int  VI_WIDTH_32                         = 4;
    int  VI_WIDTH_64                         = 8;
    int  VI_GPIB_REN_DEASSERT                = 0;
    int  VI_GPIB_REN_ASSERT                  = 1;
    int  VI_GPIB_REN_DEASSERT_GTL            = 2;
    int  VI_GPIB_REN_ASSERT_ADDRESS          = 3;
    int  VI_GPIB_REN_ASSERT_LLO              = 4;
    int  VI_GPIB_REN_ASSERT_ADDRESS_LLO      = 5;
    int  VI_GPIB_REN_ADDRESS_GTL             = 6;
    int  VI_GPIB_ATN_DEASSERT                = 0;
    int  VI_GPIB_ATN_ASSERT                  = 1;
    int  VI_GPIB_ATN_DEASSERT_HANDSHAKE      = 2;
    int  VI_GPIB_ATN_ASSERT_IMMEDIATE        = 3;
    int  VI_GPIB_HS488_DISABLED              = 0;
    int  VI_GPIB_HS488_NIMPL                 = -1;
    int  VI_GPIB_UNADDRESSED                 = 0;
    int  VI_GPIB_TALKER                      = 1;
    int  VI_GPIB_LISTENER                    = 2;
    int  VI_VXI_CMD16                        = 0x0200;
    int  VI_VXI_CMD16_RESP16                 = 0x0202;
    int  VI_VXI_RESP16                       = 0x0002;
    int  VI_VXI_CMD32                        = 0x0400;
    int  VI_VXI_CMD32_RESP16                 = 0x0402;
    int  VI_VXI_CMD32_RESP32                 = 0x0404;
    int  VI_VXI_RESP32                       = 0x0004;
    int  VI_ASSERT_SIGNAL                    = -1;
    int  VI_ASSERT_USE_ASSIGNED              = 0;
    int  VI_ASSERT_IRQ1                      = 1;
    int  VI_ASSERT_IRQ2                      = 2;
    int  VI_ASSERT_IRQ3                      = 3;
    int  VI_ASSERT_IRQ4                      = 4;
    int  VI_ASSERT_IRQ5                      = 5;
    int  VI_ASSERT_IRQ6                      = 6;
    int  VI_ASSERT_IRQ7                      = 7;
    int  VI_UTIL_ASSERT_SYSRESET             = 1;
    int  VI_UTIL_ASSERT_SYSFAIL              = 2;
    int  VI_UTIL_DEASSERT_SYSFAIL            = 3;
    int  VI_VXI_CLASS_MEMORY                 = 0;
    int  VI_VXI_CLASS_EXTENDED               = 1;
    int  VI_VXI_CLASS_MESSAGE                = 2;
    int  VI_VXI_CLASS_REGISTER               = 3;
    int  VI_VXI_CLASS_OTHER                  = 4;
    int  VI_PXI_ADDR_NONE                    = 0;
    int  VI_PXI_ADDR_MEM                     = 1;
    int  VI_PXI_ADDR_IO                      = 2;
    int  VI_PXI_ADDR_CFG                     = 3;
    int  VI_TRIG_UNKNOWN                     = -1;
    int  VI_PXI_LBUS_STAR_TRIG_BUS_0         = 1000;
    int  VI_PXI_LBUS_STAR_TRIG_BUS_1         = 1001;
    int  VI_PXI_LBUS_STAR_TRIG_BUS_2         = 1002;
    int  VI_PXI_LBUS_STAR_TRIG_BUS_3         = 1003;
    int  VI_PXI_LBUS_STAR_TRIG_BUS_4         = 1004;
    int  VI_PXI_LBUS_STAR_TRIG_BUS_5         = 1005;
    int  VI_PXI_LBUS_STAR_TRIG_BUS_6         = 1006;
    int  VI_PXI_LBUS_STAR_TRIG_BUS_7         = 1007;
    int  VI_PXI_LBUS_STAR_TRIG_BUS_8         = 1008;
    int  VI_PXI_LBUS_STAR_TRIG_BUS_9         = 1009;
    int  VI_PXI_STAR_TRIG_CONTROLLER         = 1413;
    int  VI_ERROR_INV_SESSION                = (-2147483647 - 1) + 0x3FFF000E;
    long VI_INFINITE                         = 0xFFFFFFFFL;
    int  VI_NORMAL                           = 1;
    int  VI_FDC                              = 2;
    int  VI_HS488                            = 3;
    int  VI_ASRL488                          = 4;
    int  VI_ASRL_IN_BUF                      = 16;
    int  VI_ASRL_OUT_BUF                     = 32;
    int  VI_ASRL_IN_BUF_DISCARD              = 64;
    int  VI_ASRL_OUT_BUF_DISCARD             = 128;
    /** <i>native declaration : visa.h:69</i> */
//    public interface ViStatus extends Callback {
//            VISANativeInterface.ViStatus_callback apply(IntByReference ViHndlr);
//    };
//    /** <i>native declaration : visa.h</i> */
//    public interface ViStatus_callback extends Callback {
//            int apply(NativeLong vi, NativeLong eventType, NativeLong event, Pointer userHandle);
//    };
//    public NativeLong viStatus = new NativeLong();
//    public interface ViStatus extends NativeLong {
//    };

    /**
     * - Resource Manager Functions and Operations -------------------------------<br>
     * Original signature : <code>ViStatus viOpenDefaultRM(ViPSession)</code><br>
     * <i>native declaration : visa.h:74</i>
     *
     * @param vi session handle
     *
     * @return status of the operation
     */
    NativeLong viOpenDefaultRM(NativeLongByReference vi);

    /**
     * Original signature : <code>ViStatus viFindRsrc(ViSession, ViString, ViPFindList, ViPUInt32, ViChar[])</code><br>
     * <i>native declaration : visa.h:76</i>
     *
     * @param rmSession session handle of resource manager
     * @param expr      regular search expression, for example "TCPIP::*::INSTR"
     * @param vi        find handle, to be used in viFindNext function
     * @param retCnt    number of instruments found
     * @param desc      first found instrument with address matching regular expression
     *
     * @return status of the operation
     */
    NativeLong viFindRsrc(NativeLong rmSession, ByteBuffer expr, NativeLongByReference vi, NativeLongByReference retCnt, ByteBuffer desc);

    /**
     * Original signature : <code>ViStatus viFindNext(ViFindList, ViChar[])</code><br>
     * <i>native declaration : visa.h:78</i>
     *
     * @param vi   find handle, obtained from viFindRsrc function
     * @param desc next found instrument with address matching regular expression
     *
     * @return status of the operation
     */
    NativeLong viFindNext(NativeLong vi, ByteBuffer desc);

    /**
     * Original signature : <code>ViStatus viParseRsrc(ViSession, ViRsrc, ViPUInt16, ViPUInt16)</code><br>
     * <i>native declaration : visa.h:80</i>
     *
     * @param rmSession session handle of resource manager
     * @param rsrcName  name of instrument resource
     * @param intfType  type of communication interface
     * @param intfNum   number of board the interface uses
     *
     * @return status of the operation
     */
    NativeLong viParseRsrc(NativeLong rmSession, ByteBuffer rsrcName, ShortBuffer intfType, ShortBuffer intfNum);

    /**
     * Original signature : <code>ViStatus viParseRsrcEx(ViSession, ViRsrc, ViPUInt16, ViPUInt16, ViChar[], ViChar[], ViChar[])</code><br>
     * <i>native declaration : visa.h:82</i>
     *
     * @param rmSession             session handle of resource manager
     * @param rsrcName              name of instrument resource
     * @param intfType              type of communication interface
     * @param intfNum               number of board the interface uses
     * @param rsrcClass             resource class, for example "INSTR"
     * @param expandedUnaliasedName complete address string of instrument
     * @param aliasIfExists         name alias
     *
     * @return status of the operation
     */
    NativeLong viParseRsrcEx(NativeLong rmSession, ByteBuffer rsrcName, ShortBuffer intfType, ShortBuffer intfNum, ByteBuffer rsrcClass, ByteBuffer expandedUnaliasedName, ByteBuffer aliasIfExists);

    /**
     * Original signature : <code>ViStatus viOpen(ViSession, ViRsrc, ViAccessMode, ViUInt32, ViPSession)</code><br>
     * <i>native declaration : visa.h:86</i>
     *
     * @param rmSession session handle of resource manager
     * @param name      resource name / address string of instrument
     * @param mode      access mode
     * @param timeout   timeout of function in ms
     * @param vi        handle for instrument session
     *
     * @return status of the operation
     */
    NativeLong viOpen(NativeLong rmSession, ByteBuffer name, NativeLong mode, NativeLong timeout, NativeLongByReference vi);

    /**
     * - Resource Template Operations --------------------------------------------<br>
     * Original signature : <code>ViStatus viClose(ViObject)</code><br>
     * <i>native declaration : visa.h:91</i>
     *
     * @param vi handle for instrument session
     *
     * @return status of the operation
     */
    NativeLong viClose(NativeLong vi);

    /**
     * Original signature : <code>ViStatus viSetAttribute(ViObject, ViAttr, ViAttrState)</code><br>
     * <i>native declaration : visa.h:92</i>
     *
     * @param vi        handle for instrument session
     * @param attrName  type / key of attribute
     * @param attrValue value of attribute
     *
     * @return status of the operation
     */
    NativeLong viSetAttribute(NativeLong vi, NativeLong attrName, NativeLong attrValue);

    /**
     * Original signature : <code>ViStatus viGetAttribute(ViObject, ViAttr, void*)</code><br>
     * <i>native declaration : visa.h:93</i>
     *
     * @param vi        handle for instrument session
     * @param attrName  type / key of attribute
     * @param attrValue value of attribute
     *
     * @return status of the operation
     */
    NativeLong viGetAttribute(NativeLong vi, NativeLong attrName, Pointer attrValue);

    /**
     * Original signature : <code>ViStatus viStatusDesc(ViObject, ViStatus, ViChar[])</code><br>
     * <i>native declaration : visa.h:94</i>
     *
     * @param vi     handle for instrument session
     * @param status status the description is requested for
     * @param desc   status description
     *
     * @return status of the operation
     */
    NativeLong viStatusDesc(NativeLong vi, NativeLong status, ByteBuffer desc);

    /**
     * Original signature : <code>ViStatus viTerminate(ViObject, ViUInt16, ViJobId)</code><br>
     * <i>native declaration : visa.h:95</i>
     *
     * @param vi     handle for instrument session
     * @param degree always 0
     * @param jobId  job identifier
     *
     * @return status of the operation
     */
    NativeLong viTerminate(NativeLong vi, short degree, NativeLong jobId);

    /**
     * Original signature : <code>ViStatus viLock(ViSession, ViAccessMode, ViUInt32, ViKeyId, ViChar[])</code><br>
     * <i>native declaration : visa.h:97</i>
     *
     * @param vi           handle for instrument session
     * @param lockType     type of lock, exclusive (0) or shared (1)
     * @param timeout      maximum time in ms to wait for the lock
     * @param requestedKey lock key - can be given to other sessions
     * @param accessKey    access key to lock is returned if requestedKey is null
     *
     * @return status of the operation
     */
    NativeLong viLock(NativeLong vi, NativeLong lockType, NativeLong timeout, ByteBuffer requestedKey, ByteBuffer accessKey);

    /**
     * Original signature : <code>ViStatus viUnlock(ViSession)</code><br>
     * <i>native declaration : visa.h:99</i>
     *
     * @param vi handle for instrument session
     *
     * @return status of the operation
     */
    NativeLong viUnlock(NativeLong vi);

    /**
     * Original signature : <code>ViStatus viEnableEvent(ViSession, ViEventType, ViUInt16, ViEventFilter)</code><br>
     * <i>native declaration : visa.h:100</i>
     *
     * @param vi        handle for instrument session
     * @param eventType event type
     * @param mechanism event mechanism
     * @param context   event context
     *
     * @return status of the operation
     */
    NativeLong viEnableEvent(NativeLong vi, NativeLong eventType, short mechanism, NativeLong context);

    /**
     * Original signature : <code>ViStatus viDisableEvent(ViSession, ViEventType, ViUInt16)</code><br>
     * <i>native declaration : visa.h:102</i>
     *
     * @param vi        handle for instrument session
     * @param eventType event type
     * @param mechanism event mechanism
     *
     * @return status of the operation
     */
    NativeLong viDisableEvent(NativeLong vi, NativeLong eventType, short mechanism);

    /**
     * Original signature : <code>ViStatus viDiscardEvents(ViSession, ViEventType, ViUInt16)</code><br>
     * <i>native declaration : visa.h:103</i>
     *
     * @param vi        handle for instrument session
     * @param eventType event type
     * @param mechanism event mechanism
     *
     * @return status of the operation
     */
    NativeLong viDiscardEvents(NativeLong vi, NativeLong eventType, short mechanism);

    /**
     * Original signature : <code>ViStatus viWaitOnEvent(ViSession, ViEventType, ViUInt32, ViPEventType, ViPEvent)</code><br>
     * <i>native declaration : visa.h:104</i>
     *
     * @param vi           handle for instrument session
     * @param inEventType  event type to wait for
     * @param timeout      wait time in ms before timing out
     * @param outEventType signaled event type
     * @param outContext   signaled event context
     *
     * @return status of the operation
     */
    NativeLong viWaitOnEvent(NativeLong vi, NativeLong inEventType, NativeLong timeout, NativeLongByReference outEventType, NativeLongByReference outContext);

    /**
     * Original signature : <code>ViStatus viInstallHandler(ViSession, ViEventType, ViHndlr, ViAddr)</code><br>
     * <i>native declaration : visa.h:106</i>
     *
     * @param vi         handle for instrument session
     * @param eventType  event type to handle
     * @param handler    event handler
     * @param userHandle handler id given by the application
     *
     * @return status of the operation
     */
    NativeLong viInstallHandler(NativeLong vi, NativeLong eventType, VISANativeInterface.ViHndlr handler, Pointer userHandle);

    /**
     * Original signature : <code>ViStatus viUninstallHandler(ViSession, ViEventType, ViHndlr, ViAddr)</code><br>
     * <i>native declaration : visa.h:108</i>
     *
     * @param vi         handle for instrument session
     * @param eventType  event type to handle
     * @param handler    event handler
     * @param userHandle handler id given by the application
     *
     * @return status of the operation
     */
    NativeLong viUninstallHandler(NativeLong vi, NativeLong eventType, VISANativeInterface.ViHndlr handler, Pointer userHandle);

    /**
     * - Basic I/O Operations ----------------------------------------------------<br>
     * Original signature : <code>ViStatus viRead(ViSession, ViPBuf, ViUInt32, ViPUInt32)</code><br>
     * <i>native declaration : visa.h:113</i>
     *
     * @param vi     handle for instrument session
     * @param buf    read buffer
     * @param cnt    number of bytes to read
     * @param retCnt number of bytes read
     *
     * @return status of the operation
     */
    NativeLong viRead(NativeLong vi, ByteBuffer buf, NativeLong cnt, NativeLongByReference retCnt);

    /**
     * Original signature : <code>ViStatus viReadAsync(ViSession, ViPBuf, ViUInt32, ViPJobId)</code><br>
     * <i>native declaration : visa.h:114</i>
     *
     * @param vi    handle for instrument session
     * @param buf   read buffer
     * @param cnt   number of bytes to read
     * @param jobId job identifier
     *
     * @return status of the operation
     */
    NativeLong viReadAsync(NativeLong vi, ByteBuffer buf, NativeLong cnt, NativeLongByReference jobId);

    /**
     * Original signature : <code>ViStatus viReadToFile(ViSession, ViConstString, ViUInt32, ViPUInt32)</code><br>
     * <i>native declaration : visa.h:115</i>
     *
     * @param vi       handle for instrument session
     * @param filename output filename
     * @param cnt      number of bytes to read
     * @param retCnt   number of bytes read
     *
     * @return status of the operation
     */
    NativeLong viReadToFile(NativeLong vi, ByteBuffer filename, NativeLong cnt, NativeLongByReference retCnt);

    /**
     * Original signature : <code>ViStatus viWrite(ViSession, ViBuf, ViUInt32, ViPUInt32)</code><br>
     * <i>native declaration : visa.h:117</i>
     *
     * @param vi     handle for instrument session
     * @param buf    write buffer
     * @param cnt    number of bytes to write
     * @param retCnt number of bytes written
     *
     * @return status of the operation
     */
    NativeLong viWrite(NativeLong vi, ByteBuffer buf, NativeLong cnt, NativeLongByReference retCnt);

    /**
     * Original signature : <code>ViStatus viWriteAsync(ViSession, ViBuf, ViUInt32, ViPJobId)</code><br>
     * <i>native declaration : visa.h:118</i>
     *
     * @param vi    handle for instrument session
     * @param buf   write buffer
     * @param cnt   number of bytes to read
     * @param jobId job identifier
     *
     * @return status of the operation
     */
    NativeLong viWriteAsync(NativeLong vi, ByteBuffer buf, NativeLong cnt, NativeLongByReference jobId);

    /**
     * Original signature : <code>ViStatus viWriteFromFile(ViSession, ViConstString, ViUInt32, ViPUInt32)</code><br>
     * <i>native declaration : visa.h:119</i>
     *
     * @param vi       handle for instrument session
     * @param filename input filename
     * @param cnt      number of bytes to write
     * @param retCnt   number of bytes written
     *
     * @return status of the operation
     */
    NativeLong viWriteFromFile(NativeLong vi, ByteBuffer filename, NativeLong cnt, NativeLongByReference retCnt);

    /**
     * Original signature : <code>ViStatus viAssertTrigger(ViSession, ViUInt16)</code><br>
     * <i>native declaration : visa.h:121</i>
     *
     * @param vi       handle for instrument session
     * @param protocol type of protocol
     *
     * @return status of the operation
     */
    NativeLong viAssertTrigger(NativeLong vi, short protocol);

    /**
     * Original signature : <code>ViStatus viReadSTB(ViSession, ViPUInt16)</code><br>
     * <i>native declaration : visa.h:122</i>
     *
     * @param vi     handle for instrument session
     * @param status STB status mask
     *
     * @return status of the operation
     */
    NativeLong viReadSTB(NativeLong vi, ShortBuffer status);

    /**
     * Original signature : <code>ViStatus viClear(ViSession)</code><br>
     * <i>native declaration : visa.h:123</i>
     *
     * @param vi handle for instrument session
     *
     * @return status of the operation
     */
    NativeLong viClear(NativeLong vi);

    /**
     * - Formatted and Buffered I/O Operations -----------------------------------<br>
     * Original signature : <code>ViStatus viSetBuf(ViSession, ViUInt16, ViUInt32)</code><br>
     * <i>native declaration : visa.h:127</i>
     *
     * @param vi   handle for instrument session
     * @param mask bit mask indicating the buffers to be set
     * @param size buffer size
     *
     * @return status of the operation
     */
    NativeLong viSetBuf(NativeLong vi, short mask, NativeLong size);

    /**
     * Original signature : <code>ViStatus viFlush(ViSession, ViUInt16)</code><br>
     * <i>native declaration : visa.h:128</i>
     *
     * @param vi   handle for instrument session
     * @param mask bit mask indicating the buffers to be flushed
     *
     * @return status of the operation
     */
    NativeLong viFlush(NativeLong vi, short mask);

    /**
     * Original signature : <code>ViStatus viBufWrite(ViSession, ViBuf, ViUInt32, ViPUInt32)</code><br>
     * <i>native declaration : visa.h:130</i>
     *
     * @param vi     handle for instrument session
     * @param buf    buffer to write
     * @param cnt    number of bytes to write
     * @param retCnt number of bytes written
     *
     * @return status of the operation
     */
    NativeLong viBufWrite(NativeLong vi, ByteBuffer buf, NativeLong cnt, NativeLongByReference retCnt);

    /**
     * Original signature : <code>ViStatus viBufRead(ViSession, ViPBuf, ViUInt32, ViPUInt32)</code><br>
     * <i>native declaration : visa.h:131</i>
     *
     * @param vi     handle for instrument session
     * @param buf    buffer to read into
     * @param cnt    number of bytes to read
     * @param retCnt number of bytes read
     *
     * @return status of the operation
     */
    NativeLong viBufRead(NativeLong vi, ByteBuffer buf, NativeLong cnt, NativeLongByReference retCnt);

    /**
     * Original signature : <code>ViStatus viPrintf(ViSession, ViString, null)</code><br>
     * <i>native declaration : visa.h:133</i>
     *
     * @param vi       handle for instrument session
     * @param writeFmt format string
     * @param varArgs1 comma separated arguments
     *
     * @return status of the operation
     */
    NativeLong viPrintf(NativeLong vi, ByteBuffer writeFmt, Object... varArgs1);

    /**
     * Original signature : <code>ViStatus viVPrintf(ViSession, ViString, ViVAList)</code><br>
     * <i>native declaration : visa.h:134</i>
     *
     * @param vi       handle for instrument session
     * @param writeFmt format string
     * @param params   parameter list / array
     *
     * @return status of the operation
     */
    NativeLong viVPrintf(NativeLong vi, ByteBuffer writeFmt, VISANativeInterface.ViVAList params);

    /**
     * Original signature : <code>ViStatus viSPrintf(ViSession, ViPBuf, ViString, null)</code><br>
     * <i>native declaration : visa.h:135</i>
     *
     * @param vi       handle for instrument session
     * @param buf      destination buffer for formatted string
     * @param writeFmt format string
     * @param varArgs1 comma separated arguments
     *
     * @return status of the operation
     */
    NativeLong viSPrintf(NativeLong vi, ByteBuffer buf, ByteBuffer writeFmt, Object... varArgs1);

    /**
     * Original signature : <code>ViStatus viVSPrintf(ViSession, ViPBuf, ViString, ViVAList)</code><br>
     * <i>native declaration : visa.h:136</i>
     *
     * @param vi       handle for instrument session
     * @param buf      destination buffer for formatted string
     * @param writeFmt format string
     * @param params   parameter list / array
     *
     * @return status of the operation
     */
    NativeLong viVSPrintf(NativeLong vi, ByteBuffer buf, ByteBuffer writeFmt, VISANativeInterface.ViVAList params);

    /**
     * Original signature : <code>ViStatus viScanf(ViSession, ViString, null)</code><br>
     * <i>native declaration : visa.h:138</i>
     *
     * @param vi       handle for instrument session
     * @param readFmt  format string
     * @param varArgs1 comma separated arguments
     *
     * @return status of the operation
     */
    NativeLong viScanf(NativeLong vi, ByteBuffer readFmt, Object... varArgs1);

    /**
     * Original signature : <code>ViStatus viVScanf(ViSession, ViString, ViVAList)</code><br>
     * <i>native declaration : visa.h:139</i>
     *
     * @param vi      handle for instrument session
     * @param readFmt format string
     * @param params  parameter list / array
     *
     * @return status of the operation
     */
    NativeLong viVScanf(NativeLong vi, ByteBuffer readFmt, VISANativeInterface.ViVAList params);

    /**
     * Original signature : <code>ViStatus viSScanf(ViSession, ViBuf, ViString, null)</code><br>
     * <i>native declaration : visa.h:140</i>
     *
     * @param vi       handle for instrument session
     * @param buf      source buffer to scan
     * @param readFmt  format string
     * @param varArgs1 comma separated arguments
     *
     * @return status of the operation
     */
    NativeLong viSScanf(NativeLong vi, ByteBuffer buf, ByteBuffer readFmt, Object... varArgs1);

    /**
     * Original signature : <code>ViStatus viVSScanf(ViSession, ViBuf, ViString, ViVAList)</code><br>
     * <i>native declaration : visa.h:141</i>
     *
     * @param vi      handle for instrument session
     * @param buf     source buffer to scan
     * @param readFmt format string
     * @param params  parameter list / array
     *
     * @return status of the operation
     */
    NativeLong viVSScanf(NativeLong vi, ByteBuffer buf, ByteBuffer readFmt, VISANativeInterface.ViVAList params);

    /**
     * Original signature : <code>ViStatus viQueryf(ViSession, ViString, ViString, null)</code><br>
     * <i>native declaration : visa.h:143</i>
     *
     * @param vi       handle for instrument session
     * @param writeFmt write format string
     * @param readFmt  read format string
     * @param varArgs1 comma separated arguments
     *
     * @return status of the operation
     */
    NativeLong viQueryf(NativeLong vi, ByteBuffer writeFmt, ByteBuffer readFmt, Object... varArgs1);

    /**
     * Original signature : <code>ViStatus viVQueryf(ViSession, ViString, ViString, ViVAList)</code><br>
     * <i>native declaration : visa.h:144</i>
     *
     * @param vi       handle for instrument session
     * @param writeFmt write format string
     * @param readFmt  read format string
     * @param params   parameter list / array
     *
     * @return status of the operation
     */
    NativeLong viVQueryf(NativeLong vi, ByteBuffer writeFmt, ByteBuffer readFmt, VISANativeInterface.ViVAList params);

    /**
     * - Memory I/O Operations ---------------------------------------------------<br>
     * Original signature : <code>ViStatus viIn8(ViSession, ViUInt16, ViBusAddress, ViPUInt8)</code><br>
     * <i>native declaration : visa.h:149</i>
     *
     * @param vi     handle for instrument session
     * @param space  type of address space
     * @param offset offset from base address
     * @param val8   8-bit value
     *
     * @return status of the operation
     */
    NativeLong viIn8(NativeLong vi, short space, NativeLong offset, ByteBuffer val8);

    /**
     * Original signature : <code>ViStatus viOut8(ViSession, ViUInt16, ViBusAddress, ViUInt8)</code><br>
     * <i>native declaration : visa.h:151</i>
     *
     * @param vi     handle for instrument session
     * @param space  type of address space
     * @param offset offset from base address
     * @param val8   8-bit value
     *
     * @return status of the operation
     */
    NativeLong viOut8(NativeLong vi, short space, NativeLong offset, byte val8);

    /**
     * Original signature : <code>ViStatus viIn16(ViSession, ViUInt16, ViBusAddress, ViPUInt16)</code><br>
     * <i>native declaration : visa.h:153</i>
     *
     * @param vi     handle for instrument session
     * @param space  type of address space
     * @param offset offset from base address
     * @param val16  16-bit value
     *
     * @return status of the operation
     */
    NativeLong viIn16(NativeLong vi, short space, NativeLong offset, ShortBuffer val16);

    /**
     * Original signature : <code>ViStatus viOut16(ViSession, ViUInt16, ViBusAddress, ViUInt16)</code><br>
     * <i>native declaration : visa.h:155</i>
     *
     * @param vi     handle for instrument session
     * @param space  type of address space
     * @param offset offset from base address
     * @param val16  16-bit value
     *
     * @return status of the operation
     */
    NativeLong viOut16(NativeLong vi, short space, NativeLong offset, short val16);

    /**
     * Original signature : <code>ViStatus viIn32(ViSession, ViUInt16, ViBusAddress, ViPUInt32)</code><br>
     * <i>native declaration : visa.h:157</i>
     *
     * @param vi     handle for instrument session
     * @param space  type of address space
     * @param offset offset from base address
     * @param val32  32-bit value
     *
     * @return status of the operation
     */
    NativeLong viIn32(NativeLong vi, short space, NativeLong offset, NativeLongByReference val32);

    /**
     * Original signature : <code>ViStatus viOut32(ViSession, ViUInt16, ViBusAddress, ViUInt32)</code><br>
     * <i>native declaration : visa.h:159</i>
     *
     * @param vi     handle for instrument session
     * @param space  type of address space
     * @param offset offset from base address
     * @param val32  32-bit value
     *
     * @return status of the operation
     */
    NativeLong viOut32(NativeLong vi, short space, NativeLong offset, NativeLong val32);

    /**
     * Original signature : <code>ViStatus viIn64(ViSession, ViUInt16, ViBusAddress, ViPUInt64)</code><br>
     * <i>native declaration : visa.h:163</i>
     *
     * @param vi     handle for instrument session
     * @param space  type of address space
     * @param offset offset from base address
     * @param val64  64-bit value
     *
     * @return status of the operation
     */
    NativeLong viIn64(NativeLong vi, short space, NativeLong offset, VISANativeInterface.ViPUInt64 val64);

    /**
     * Original signature : <code>ViStatus viOut64(ViSession, ViUInt16, ViBusAddress, ViUInt64)</code><br>
     * <i>native declaration : visa.h:165</i>
     *
     * @param vi     handle for instrument session
     * @param space  type of address space
     * @param offset offset from base address
     * @param val64  64-bit value
     *
     * @return status of the operation
     */
    NativeLong viOut64(NativeLong vi, short space, NativeLong offset, VISANativeInterface.ViUInt64 val64);

    /**
     * Original signature : <code>ViStatus viIn8Ex(ViSession, ViUInt16, ViBusAddress64, ViPUInt8)</code><br>
     * <i>native declaration : visa.h:168</i>
     *
     * @param vi     handle for instrument session
     * @param space  type of address space
     * @param offset offset from base address
     * @param val8   8-bit value
     *
     * @return status of the operation
     */
    NativeLong viIn8Ex(NativeLong vi, short space, VISANativeInterface.ViBusAddress64 offset, ByteBuffer val8);

    /**
     * Original signature : <code>ViStatus viOut8Ex(ViSession, ViUInt16, ViBusAddress64, ViUInt8)</code><br>
     * <i>native declaration : visa.h:170</i>
     *
     * @param vi     handle for instrument session
     * @param space  type of address space
     * @param offset offset from base address
     * @param val8   8-bit value
     *
     * @return status of the operation
     */
    NativeLong viOut8Ex(NativeLong vi, short space, VISANativeInterface.ViBusAddress64 offset, byte val8);

    /**
     * Original signature : <code>ViStatus viIn16Ex(ViSession, ViUInt16, ViBusAddress64, ViPUInt16)</code><br>
     * <i>native declaration : visa.h:172</i>
     *
     * @param vi     handle for instrument session
     * @param space  type of address space
     * @param offset offset from base address
     * @param val16  16-bit value
     *
     * @return status of the operation
     */
    NativeLong viIn16Ex(NativeLong vi, short space, VISANativeInterface.ViBusAddress64 offset, ShortBuffer val16);

    /**
     * Original signature : <code>ViStatus viOut16Ex(ViSession, ViUInt16, ViBusAddress64, ViUInt16)</code><br>
     * <i>native declaration : visa.h:174</i>
     *
     * @param vi     handle for instrument session
     * @param space  type of address space
     * @param offset offset from base address
     * @param val16  16-bit value
     *
     * @return status of the operation
     */
    NativeLong viOut16Ex(NativeLong vi, short space, VISANativeInterface.ViBusAddress64 offset, short val16);

    /**
     * Original signature : <code>ViStatus viIn32Ex(ViSession, ViUInt16, ViBusAddress64, ViPUInt32)</code><br>
     * <i>native declaration : visa.h:176</i>
     *
     * @param vi     handle for instrument session
     * @param space  type of address space
     * @param offset offset from base address
     * @param val32  32-bit value
     *
     * @return status of the operation
     */
    NativeLong viIn32Ex(NativeLong vi, short space, VISANativeInterface.ViBusAddress64 offset, NativeLongByReference val32);

    /**
     * Original signature : <code>ViStatus viOut32Ex(ViSession, ViUInt16, ViBusAddress64, ViUInt32)</code><br>
     * <i>native declaration : visa.h:178</i>
     *
     * @param vi     handle for instrument session
     * @param space  type of address space
     * @param offset offset from base address
     * @param val32  32-bit value
     *
     * @return status of the operation
     */
    NativeLong viOut32Ex(NativeLong vi, short space, VISANativeInterface.ViBusAddress64 offset, NativeLong val32);

    /**
     * Original signature : <code>ViStatus viIn64Ex(ViSession, ViUInt16, ViBusAddress64, ViPUInt64)</code><br>
     * <i>native declaration : visa.h:180</i>
     *
     * @param vi     handle for instrument session
     * @param space  type of address space
     * @param offset offset from base address
     * @param val64  64-bit value
     *
     * @return status of the operation
     */
    NativeLong viIn64Ex(NativeLong vi, short space, VISANativeInterface.ViBusAddress64 offset, VISANativeInterface.ViPUInt64 val64);

    /**
     * Original signature : <code>ViStatus viOut64Ex(ViSession, ViUInt16, ViBusAddress64, ViUInt64)</code><br>
     * <i>native declaration : visa.h:182</i>
     *
     * @param vi     handle for instrument session
     * @param space  type of address space
     * @param offset offset from base address
     * @param val64  64-bit value
     *
     * @return status of the operation
     */
    NativeLong viOut64Ex(NativeLong vi, short space, VISANativeInterface.ViBusAddress64 offset, VISANativeInterface.ViUInt64 val64);

    /**
     * Original signature : <code>ViStatus viMoveIn8(ViSession, ViUInt16, ViBusAddress, ViBusSize, ViAUInt8)</code><br>
     * <i>native declaration : visa.h:186</i>
     *
     * @param vi     handle for instrument session
     * @param space  type of address space
     * @param offset offset from base address
     * @param length number of bytes to move
     * @param buf8   8-bit buffer
     *
     * @return status of the operation
     */
    NativeLong viMoveIn8(NativeLong vi, short space, NativeLong offset, NativeLong length, ByteBuffer buf8);

    /**
     * Original signature : <code>ViStatus viMoveOut8(ViSession, ViUInt16, ViBusAddress, ViBusSize, ViAUInt8)</code><br>
     * <i>native declaration : visa.h:188</i>
     *
     * @param vi     handle for instrument session
     * @param space  type of address space
     * @param offset offset from base address
     * @param length number of bytes to move
     * @param buf8   8-bit buffer
     *
     * @return status of the operation
     */
    NativeLong viMoveOut8(NativeLong vi, short space, NativeLong offset, NativeLong length, ByteBuffer buf8);

    /**
     * Original signature : <code>ViStatus viMoveIn16(ViSession, ViUInt16, ViBusAddress, ViBusSize, ViAUInt16)</code><br>
     * <i>native declaration : visa.h:190</i>
     *
     * @param vi     handle for instrument session
     * @param space  type of address space
     * @param offset offset from base address
     * @param length number of bytes to move
     * @param buf16  16-bit buffer
     *
     * @return status of the operation
     */
    NativeLong viMoveIn16(NativeLong vi, short space, NativeLong offset, NativeLong length, ShortBuffer buf16);

    /**
     * Original signature : <code>ViStatus viMoveOut16(ViSession, ViUInt16, ViBusAddress, ViBusSize, ViAUInt16)</code><br>
     * <i>native declaration : visa.h:192</i>
     *
     * @param vi     handle for instrument session
     * @param space  type of address space
     * @param offset offset from base address
     * @param length number of bytes to move
     * @param buf16  16-bit buffer
     *
     * @return status of the operation
     */
    NativeLong viMoveOut16(NativeLong vi, short space, NativeLong offset, NativeLong length, ShortBuffer buf16);

    /**
     * Original signature : <code>ViStatus viMoveIn32(ViSession, ViUInt16, ViBusAddress, ViBusSize, ViAUInt32)</code><br>
     * <i>native declaration : visa.h:194</i>
     *
     * @param vi     handle for instrument session
     * @param space  type of address space
     * @param offset offset from base address
     * @param length number of bytes to move
     * @param buf32  32-bit buffer
     *
     * @return status of the operation
     */
    NativeLong viMoveIn32(NativeLong vi, short space, NativeLong offset, NativeLong length, NativeLongByReference buf32);

    /**
     * Original signature : <code>ViStatus viMoveOut32(ViSession, ViUInt16, ViBusAddress, ViBusSize, ViAUInt32)</code><br>
     * <i>native declaration : visa.h:196</i>
     *
     * @param vi     handle for instrument session
     * @param space  type of address space
     * @param offset offset from base address
     * @param length number of bytes to move
     * @param buf32  32-bit buffer
     *
     * @return status of the operation
     */
    NativeLong viMoveOut32(NativeLong vi, short space, NativeLong offset, NativeLong length, NativeLongByReference buf32);

    /**
     * Original signature : <code>ViStatus viMoveIn64(ViSession, ViUInt16, ViBusAddress, ViBusSize, ViAUInt64)</code><br>
     * <i>native declaration : visa.h:200</i>
     *
     * @param vi     handle for instrument session
     * @param space  type of address space
     * @param offset offset from base address
     * @param length number of bytes to move
     * @param buf64  64-bit buffer
     *
     * @return status of the operation
     */
    NativeLong viMoveIn64(NativeLong vi, short space, NativeLong offset, NativeLong length, VISANativeInterface.ViAUInt64 buf64);

    /**
     * Original signature : <code>ViStatus viMoveOut64(ViSession, ViUInt16, ViBusAddress, ViBusSize, ViAUInt64)</code><br>
     * <i>native declaration : visa.h:202</i>
     *
     * @param vi     handle for instrument session
     * @param space  type of address space
     * @param offset offset from base address
     * @param length number of bytes to move
     * @param buf64  64-bit buffer
     *
     * @return status of the operation
     */
    NativeLong viMoveOut64(NativeLong vi, short space, NativeLong offset, NativeLong length, VISANativeInterface.ViAUInt64 buf64);

    /**
     * Original signature : <code>ViStatus viMoveIn8Ex(ViSession, ViUInt16, ViBusAddress64, ViBusSize, ViAUInt8)</code><br>
     * <i>native declaration : visa.h:205</i>
     *
     * @param vi     handle for instrument session
     * @param space  type of address space
     * @param offset offset from base address
     * @param length number of bytes to move
     * @param buf8   8-bit buffer
     *
     * @return status of the operation
     */
    NativeLong viMoveIn8Ex(NativeLong vi, short space, VISANativeInterface.ViBusAddress64 offset, NativeLong length, ByteBuffer buf8);

    /**
     * Original signature : <code>ViStatus viMoveOut8Ex(ViSession, ViUInt16, ViBusAddress64, ViBusSize, ViAUInt8)</code><br>
     * <i>native declaration : visa.h:207</i>
     *
     * @param vi     handle for instrument session
     * @param space  type of address space
     * @param offset offset from base address
     * @param length number of bytes to move
     * @param buf8   8-bit buffer
     *
     * @return status of the operation
     */
    NativeLong viMoveOut8Ex(NativeLong vi, short space, VISANativeInterface.ViBusAddress64 offset, NativeLong length, ByteBuffer buf8);

    /**
     * Original signature : <code>ViStatus viMoveIn16Ex(ViSession, ViUInt16, ViBusAddress64, ViBusSize, ViAUInt16)</code><br>
     * <i>native declaration : visa.h:209</i>
     *
     * @param vi     handle for instrument session
     * @param space  type of address space
     * @param offset offset from base address
     * @param length number of bytes to move
     * @param buf16  16-bit buffer
     *
     * @return status of the operation
     */
    NativeLong viMoveIn16Ex(NativeLong vi, short space, VISANativeInterface.ViBusAddress64 offset, NativeLong length, ShortBuffer buf16);

    /**
     * Original signature : <code>ViStatus viMoveOut16Ex(ViSession, ViUInt16, ViBusAddress64, ViBusSize, ViAUInt16)</code><br>
     * <i>native declaration : visa.h:211</i>
     *
     * @param vi     handle for instrument session
     * @param space  type of address space
     * @param offset offset from base address
     * @param length number of bytes to move
     * @param buf16  16-bit buffer
     *
     * @return status of the operation
     */
    NativeLong viMoveOut16Ex(NativeLong vi, short space, VISANativeInterface.ViBusAddress64 offset, NativeLong length, ShortBuffer buf16);

    /**
     * Original signature : <code>ViStatus viMoveIn32Ex(ViSession, ViUInt16, ViBusAddress64, ViBusSize, ViAUInt32)</code><br>
     * <i>native declaration : visa.h:213</i>
     *
     * @param vi     handle for instrument session
     * @param space  type of address space
     * @param offset offset from base address
     * @param length number of bytes to move
     * @param buf32  32-bit buffer
     *
     * @return status of the operation
     */
    NativeLong viMoveIn32Ex(NativeLong vi, short space, VISANativeInterface.ViBusAddress64 offset, NativeLong length, NativeLongByReference buf32);

    /**
     * Original signature : <code>ViStatus viMoveOut32Ex(ViSession, ViUInt16, ViBusAddress64, ViBusSize, ViAUInt32)</code><br>
     * <i>native declaration : visa.h:215</i>
     *
     * @param vi     handle for instrument session
     * @param space  type of address space
     * @param offset offset from base address
     * @param length number of bytes to move
     * @param buf32  32-bit buffer
     *
     * @return status of the operation
     */
    NativeLong viMoveOut32Ex(NativeLong vi, short space, VISANativeInterface.ViBusAddress64 offset, NativeLong length, NativeLongByReference buf32);

    /**
     * Original signature : <code>ViStatus viMoveIn64Ex(ViSession, ViUInt16, ViBusAddress64, ViBusSize, ViAUInt64)</code><br>
     * <i>native declaration : visa.h:217</i>
     *
     * @param vi     handle for instrument session
     * @param space  type of address space
     * @param offset offset from base address
     * @param length number of bytes to move
     * @param buf64  64-bit buffer
     *
     * @return status of the operation
     */
    NativeLong viMoveIn64Ex(NativeLong vi, short space, VISANativeInterface.ViBusAddress64 offset, NativeLong length, VISANativeInterface.ViAUInt64 buf64);

    /**
     * Original signature : <code>ViStatus viMoveOut64Ex(ViSession, ViUInt16, ViBusAddress64, ViBusSize, ViAUInt64)</code><br>
     * <i>native declaration : visa.h:219</i>
     *
     * @param vi     handle for instrument session
     * @param space  type of address space
     * @param offset offset from base address
     * @param length number of bytes to move
     * @param buf64  64-bit buffer
     *
     * @return status of the operation
     */
    NativeLong viMoveOut64Ex(NativeLong vi, short space, VISANativeInterface.ViBusAddress64 offset, NativeLong length, VISANativeInterface.ViAUInt64 buf64);

    /**
     * Original signature : <code>ViStatus viMove(ViSession, ViUInt16, ViBusAddress, ViUInt16, ViUInt16, ViBusAddress, ViUInt16, ViBusSize)</code><br>
     * <i>native declaration : visa.h:223</i>
     *
     * @param vi         handle for instrument session
     * @param srcSpace   type of source address space
     * @param srcOffset  offset from source base address
     * @param srcWidth   data width of source element
     * @param destSpace  type of destination address space
     * @param destOffset offset from destination base address
     * @param destWidth  data width of destination element
     * @param srcLength  number of bytes to move
     *
     * @return status of the operation
     */
    NativeLong viMove(NativeLong vi, short srcSpace, NativeLong srcOffset, short srcWidth, short destSpace, NativeLong destOffset, short destWidth, NativeLong srcLength);

    /**
     * Original signature : <code>ViStatus viMoveAsync(ViSession, ViUInt16, ViBusAddress, ViUInt16, ViUInt16, ViBusAddress, ViUInt16, ViBusSize, ViPJobId)</code><br>
     * <i>native declaration : visa.h:227</i>
     *
     * @param vi         handle for instrument session
     * @param srcSpace   type of source address space
     * @param srcOffset  offset from source base address
     * @param srcWidth   data width of source element
     * @param destSpace  type of destination address space
     * @param destOffset offset from destination base address
     * @param destWidth  data width of destination element
     * @param srcLength  number of bytes to move
     * @param jobId      job identifier
     *
     * @return status of the operation
     */
    NativeLong viMoveAsync(NativeLong vi, short srcSpace, NativeLong srcOffset, short srcWidth, short destSpace, NativeLong destOffset, short destWidth, NativeLong srcLength, NativeLongByReference jobId);

    /**
     * Original signature : <code>ViStatus viMoveEx(ViSession, ViUInt16, ViBusAddress64, ViUInt16, ViUInt16, ViBusAddress64, ViUInt16, ViBusSize)</code><br>
     * <i>native declaration : visa.h:233</i>
     *
     * @param vi         handle for instrument session
     * @param srcSpace   type of source address space
     * @param srcOffset  offset from source base address
     * @param srcWidth   data width of source element
     * @param destSpace  type of destination address space
     * @param destOffset offset from destination base address
     * @param destWidth  data width of destination element
     * @param srcLength  number of bytes to move
     *
     * @return status of the operation
     */
    NativeLong viMoveEx(NativeLong vi, short srcSpace, VISANativeInterface.ViBusAddress64 srcOffset, short srcWidth, short destSpace, VISANativeInterface.ViBusAddress64 destOffset, short destWidth, NativeLong srcLength);

    /**
     * Original signature : <code>ViStatus viMoveAsyncEx(ViSession, ViUInt16, ViBusAddress64, ViUInt16, ViUInt16, ViBusAddress64, ViUInt16, ViBusSize, ViPJobId)</code><br>
     * <i>native declaration : visa.h:237</i>
     *
     * @param vi         handle for instrument session
     * @param srcSpace   type of source address space
     * @param srcOffset  offset from source base address
     * @param srcWidth   data width of source element
     * @param destSpace  type of destination address space
     * @param destOffset offset from destination base address
     * @param destWidth  data width of destination element
     * @param srcLength  number of bytes to move
     * @param jobId      job identifier
     *
     * @return status of the operation
     */
    NativeLong viMoveAsyncEx(NativeLong vi, short srcSpace, VISANativeInterface.ViBusAddress64 srcOffset, short srcWidth, short destSpace, VISANativeInterface.ViBusAddress64 destOffset, short destWidth, NativeLong srcLength, NativeLongByReference jobId);

    /**
     * Original signature : <code>ViStatus viMapAddress(ViSession, ViUInt16, ViBusAddress, ViBusSize, ViBoolean, ViAddr, ViPAddr)</code><br>
     * <i>native declaration : visa.h:243</i>
     *
     * @param vi        handle for instrument session
     * @param mapSpace  address space to map
     * @param mapOffset address offset
     * @param mapSize   memory size to map
     * @param access    always 0
     * @param suggested suggested address to map to
     * @param address   address space was mapped to this address
     *
     * @return status of the operation
     */
    NativeLong viMapAddress(NativeLong vi, short mapSpace, NativeLong mapOffset, NativeLong mapSize, short access, Pointer suggested, PointerByReference address);

    /**
     * Original signature : <code>ViStatus viUnmapAddress(ViSession)</code><br>
     * <i>native declaration : visa.h:246</i>
     *
     * @param vi handle for instrument session
     *
     * @return status of the operation
     */
    NativeLong viUnmapAddress(NativeLong vi);

    /**
     * Original signature : <code>ViStatus viMapAddressEx(ViSession, ViUInt16, ViBusAddress64, ViBusSize, ViBoolean, ViAddr, ViPAddr)</code><br>
     * <i>native declaration : visa.h:249</i>
     *
     * @param vi        handle for instrument session
     * @param mapSpace  address space to map
     * @param mapOffset address offset
     * @param mapSize   memory size to map
     * @param access    always 0
     * @param suggested suggested address to map to
     * @param address   address space was mapped to this address
     *
     * @return status of the operation
     */
    NativeLong viMapAddressEx(NativeLong vi, short mapSpace, VISANativeInterface.ViBusAddress64 mapOffset, NativeLong mapSize, short access, Pointer suggested, PointerByReference address);

    /**
     * Original signature : <code>void viPeek8(ViSession, ViAddr, ViPUInt8)</code><br>
     * <i>native declaration : visa.h:254</i>
     *
     * @param vi      handle for instrument session
     * @param address memory mapped address
     * @param val8    8-bit value
     */
    void viPeek8(NativeLong vi, Pointer address, ByteBuffer val8);

    /**
     * Original signature : <code>void viPoke8(ViSession, ViAddr, ViUInt8)</code><br>
     * <i>native declaration : visa.h:255</i>
     *
     * @param vi      handle for instrument session
     * @param address memory mapped address
     * @param val8    8-bit value
     */
    void viPoke8(NativeLong vi, Pointer address, byte val8);

    /**
     * Original signature : <code>void viPeek16(ViSession, ViAddr, ViPUInt16)</code><br>
     * <i>native declaration : visa.h:256</i>
     *
     * @param vi      handle for instrument session
     * @param address memory mapped address
     * @param val16   16-bit value
     */
    void viPeek16(NativeLong vi, Pointer address, ShortBuffer val16);

    /**
     * Original signature : <code>void viPoke16(ViSession, ViAddr, ViUInt16)</code><br>
     * <i>native declaration : visa.h:257</i>
     *
     * @param vi      handle for instrument session
     * @param address memory mapped address
     * @param val16   16-bit value
     */
    void viPoke16(NativeLong vi, Pointer address, short val16);

    /**
     * Original signature : <code>void viPeek32(ViSession, ViAddr, ViPUInt32)</code><br>
     * <i>native declaration : visa.h:258</i>
     *
     * @param vi      handle for instrument session
     * @param address memory mapped address
     * @param val32   32-bit value
     */
    void viPeek32(NativeLong vi, Pointer address, NativeLongByReference val32);

    /**
     * Original signature : <code>void viPoke32(ViSession, ViAddr, ViUInt32)</code><br>
     * <i>native declaration : visa.h:259</i>
     *
     * @param vi      handle for instrument session
     * @param address memory mapped address
     * @param val32   32-bit value
     */
    void viPoke32(NativeLong vi, Pointer address, NativeLong val32);

    /**
     * Original signature : <code>void viPeek64(ViSession, ViAddr, ViPUInt64)</code><br>
     * <i>native declaration : visa.h:262</i>
     *
     * @param vi      handle for instrument session
     * @param address memory mapped address
     * @param val64   64-bit value
     */
    void viPeek64(NativeLong vi, Pointer address, VISANativeInterface.ViPUInt64 val64);

    /**
     * Original signature : <code>void viPoke64(ViSession, ViAddr, ViUInt64)</code><br>
     * <i>native declaration : visa.h:263</i>
     *
     * @param vi      handle for instrument session
     * @param address memory mapped address
     * @param val64   64-bit value
     */
    void viPoke64(NativeLong vi, Pointer address, VISANativeInterface.ViUInt64 val64);

    /**
     * - Shared Memory Operations ------------------------------------------------<br>
     * Original signature : <code>ViStatus viMemAlloc(ViSession, ViBusSize, ViPBusAddress)</code><br>
     * <i>native declaration : visa.h:268</i>
     *
     * @param vi     handle for instrument session
     * @param size   number of bytes to allocate
     * @param offset offset from base address
     *
     * @return status of the operation
     */
    NativeLong viMemAlloc(NativeLong vi, NativeLong size, NativeLongByReference offset);

    /**
     * Original signature : <code>ViStatus viMemFree(ViSession, ViBusAddress)</code><br>
     * <i>native declaration : visa.h:269</i>
     *
     * @param vi     handle for instrument session
     * @param offset offset from base address
     *
     * @return status of the operation
     */
    NativeLong viMemFree(NativeLong vi, NativeLong offset);

    /**
     * Original signature : <code>ViStatus viMemAllocEx(ViSession, ViBusSize, ViPBusAddress64)</code><br>
     * <i>native declaration : visa.h:272</i>
     *
     * @param vi     handle for instrument session
     * @param size   number of bytes to allocate
     * @param offset offset from base address
     *
     * @return status of the operation
     */
    NativeLong viMemAllocEx(NativeLong vi, NativeLong size, VISANativeInterface.ViPBusAddress64 offset);

    /**
     * Original signature : <code>ViStatus viMemFreeEx(ViSession, ViBusAddress64)</code><br>
     * <i>native declaration : visa.h:273</i>
     *
     * @param vi     handle for instrument session
     * @param offset offset from base address
     *
     * @return status of the operation
     */
    NativeLong viMemFreeEx(NativeLong vi, VISANativeInterface.ViBusAddress64 offset);

    /**
     * - Interface Specific Operations -------------------------------------------<br>
     * Original signature : <code>ViStatus viGpibControlREN(ViSession, ViUInt16)</code><br>
     * <i>native declaration : visa.h:278</i>
     *
     * @param vi   handle for instrument session
     * @param mode REN mode (state and optional commands, for example GoToLocal)
     *
     * @return status of the operation
     */
    NativeLong viGpibControlREN(NativeLong vi, short mode);

    /**
     * Original signature : <code>ViStatus viGpibControlATN(ViSession, ViUInt16)</code><br>
     * <i>native declaration : visa.h:279</i>
     *
     * @param vi   handle for instrument session
     * @param mode mode of ATN line
     *
     * @return status of the operation
     */
    NativeLong viGpibControlATN(NativeLong vi, short mode);

    /**
     * Original signature : <code>ViStatus viGpibSendIFC(ViSession)</code><br>
     * <i>native declaration : visa.h:280</i>
     *
     * @param vi handle for instrument session
     *
     * @return status of the operation
     */
    NativeLong viGpibSendIFC(NativeLong vi);

    /**
     * Original signature : <code>ViStatus viGpibCommand(ViSession, ViBuf, ViUInt32, ViPUInt32)</code><br>
     * <i>native declaration : visa.h:281</i>
     *
     * @param vi     handle for instrument session
     * @param cmd    GPIB command
     * @param cnt    number of bytes in command
     * @param retCnt number of bytes sent
     *
     * @return status of the operation
     */
    NativeLong viGpibCommand(NativeLong vi, ByteBuffer cmd, NativeLong cnt, NativeLongByReference retCnt);

    /**
     * Original signature : <code>ViStatus viGpibPassControl(ViSession, ViUInt16, ViUInt16)</code><br>
     * <i>native declaration : visa.h:282</i>
     *
     * @param vi       handle for instrument session
     * @param primAddr primary GPIB address
     * @param secAddr  secondary GPIB address
     *
     * @return status of the operation
     */
    NativeLong viGpibPassControl(NativeLong vi, short primAddr, short secAddr);

    /**
     * Original signature : <code>ViStatus viVxiCommandQuery(ViSession, ViUInt16, ViUInt32, ViPUInt32)</code><br>
     * <i>native declaration : visa.h:284</i>
     *
     * @param vi       handle for instrument session
     * @param mode     query mode
     * @param cmd      VXI command
     * @param response VXI response
     *
     * @return status of the operation
     */
    NativeLong viVxiCommandQuery(NativeLong vi, short mode, NativeLong cmd, NativeLongByReference response);

    /**
     * Original signature : <code>ViStatus viAssertUtilSignal(ViSession, ViUInt16)</code><br>
     * <i>native declaration : visa.h:286</i>
     *
     * @param vi   handle for instrument session
     * @param line signal line identifier
     *
     * @return status of the operation
     */
    NativeLong viAssertUtilSignal(NativeLong vi, short line);

    /**
     * Original signature : <code>ViStatus viAssertIntrSignal(ViSession, ViInt16, ViUInt32)</code><br>
     * <i>native declaration : visa.h:287</i>
     *
     * @param vi       handle for instrument session
     * @param mode     signal identifier
     * @param statusID signal status
     *
     * @return status of the operation
     */
    NativeLong viAssertIntrSignal(NativeLong vi, short mode, NativeLong statusID);

    /**
     * Original signature : <code>ViStatus viMapTrigger(ViSession, ViInt16, ViInt16, ViUInt16)</code><br>
     * <i>native declaration : visa.h:288</i>
     *
     * @param vi       handle for instrument session
     * @param trigSrc  trigger source
     * @param trigDest trigger destination
     * @param mode     mapping mode
     *
     * @return status of the operation
     */
    NativeLong viMapTrigger(NativeLong vi, short trigSrc, short trigDest, short mode);

    /**
     * Original signature : <code>ViStatus viUnmapTrigger(ViSession, ViInt16, ViInt16)</code><br>
     * <i>native declaration : visa.h:290</i>
     *
     * @param vi       handle for instrument session
     * @param trigSrc  trigger source
     * @param trigDest trigger destination
     *
     * @return status of the operation
     */
    NativeLong viUnmapTrigger(NativeLong vi, short trigSrc, short trigDest);

    /**
     * Original signature : <code>ViStatus viUsbControlOut(ViSession, ViInt16, ViInt16, ViUInt16, ViUInt16, ViUInt16, ViBuf)</code><br>
     * <i>native declaration : visa.h:291</i>
     *
     * @param vi            handle for instrument session
     * @param bmRequestType request type parameter of setup stage
     * @param bRequest      request parameter of setup stage
     * @param wValue        wValue parameter of setup stage
     * @param wIndex        wIndex parameter of setup stage
     * @param wLength       wLength parameter of setup stage
     * @param buf           transmit buffer used by control transfer (if wLength &gt; 0)
     *
     * @return status of the operation
     */
    NativeLong viUsbControlOut(NativeLong vi, short bmRequestType, short bRequest, short wValue, short wIndex, short wLength, ByteBuffer buf);

    /**
     * Original signature : <code>ViStatus viUsbControlIn(ViSession, ViInt16, ViInt16, ViUInt16, ViUInt16, ViUInt16, ViPBuf, ViPUInt16)</code><br>
     * <i>native declaration : visa.h:294</i>
     *
     * @param vi            handle for instrument session
     * @param bmRequestType request type parameter of setup stage
     * @param bRequest      request parameter of setup stage
     * @param wValue        wValue parameter of setup stage
     * @param wIndex        wIndex parameter of setup stage
     * @param wLength       wLength parameter of setup stage
     * @param buf           receive buffer used by control transfer (if wLength &gt; 0)
     * @param retCnt        number of bytes received
     *
     * @return status of the operation
     */
    NativeLong viUsbControlIn(NativeLong vi, short bmRequestType, short bRequest, short wValue, short wIndex, short wLength, ByteBuffer buf, ShortBuffer retCnt);

    /**
     * Original signature : <code>ViStatus viPxiReserveTriggers(ViSession, ViInt16, ViAInt16, ViAInt16, ViPInt16)</code><br>
     * <i>native declaration : visa.h:297</i>
     *
     * @param vi           handle for instrument session
     * @param cnt          number of triggers to reserve
     * @param trigBuses    list of trigger buses
     * @param trigLines    list of trigger lines
     * @param failureIndex failure index
     *
     * @return status of the operation
     */
    NativeLong viPxiReserveTriggers(NativeLong vi, short cnt, ShortBuffer trigBuses, ShortBuffer trigLines, ShortBuffer failureIndex);

    class ViVAList extends PointerType {
        public ViVAList(Pointer address) {
            super(address);
        }

        public ViVAList() {
            super();
        }
    }

    class ViAUInt64 extends PointerType {
        public ViAUInt64(Pointer address) {
            super(address);
        }

        public ViAUInt64() {
            super();
        }
    }

    class ViBusAddress64 extends PointerType {
        public ViBusAddress64(Pointer address) {
            super(address);
        }

        public ViBusAddress64() {
            super();
        }
    }

    class ViPUInt64 extends PointerType {
        public ViPUInt64(Pointer address) {
            super(address);
        }

        public ViPUInt64() {
            super();
        }
    }

    class ViUInt64 extends PointerType {
        public ViUInt64(Pointer address) {
            super(address);
        }

        public ViUInt64() {
            super();
        }
    }

    class ViPBusAddress64 extends PointerType {
        public ViPBusAddress64(Pointer address) {
            super(address);
        }

        public ViPBusAddress64() {
            super();
        }
    }

    class ViHndlr extends PointerType {
        public ViHndlr(Pointer address) {
            super(address);
        }

        public ViHndlr() {
            super();
        }
    }

}
