001 /** 002 \file NiRioConstants.h 003 \author Erik Hons <erik.hons@ni.com> 004 \date 12/14/2004 005 006 \brief Public constants for the RIO services 007 008 � Copyright 2004. National Instruments. All rights reserved. 009 */ 010 011 package com.ni.rio; 012 013 public interface NiRioConstants 014 { 015 016 // defines... 017 // type declarations (typedefs)... 018 019 // 020 // Basic constants. 021 // 022 public static final int kRioInvalid = 0xffffffff; 023 public static final int kRioMaxLen = 256; 024 public static final int kRioInvalidHandle = 0; 025 026 // 027 // Device Access 028 // 029 030 public static final byte kRioDeviceAccessDeny = '-'; 031 public static final byte kRioDeviceAccessAllow = '+'; 032 033 /** 034 DevUserData registered data structure for non R-series devices that 035 utilize RIO technology. 036 */ 037 038 public static final int kRIODevUserDataKey = 0x4352; /// 'CR' for CompactRio 039 040 // constants... 041 042 // Timeouts 043 public static final int kRioTimeoutZero = 0; 044 public static final int kRioTimeoutInfinite = 0xFFFFFFFF; 045 046 // 047 // Device attribute identifiers 048 // 049 // NOTE: *** Maintain the enum ordering for client compatibility. (e.g.: the 050 // RIO attribute ring control in the FPGA plug-in code. *** 051 // 052 053 // 32-bit attributes 054 // Name = X, // AddedVersion: Comments 055 public static final int kRioInitialized = 0; // 200 056 public static final int kRioInterfaceNum = 1; // 200 057 public static final int kRioProductNum = 2; // 200 058 public static final int kRioVendorNum = 3; // 200 059 public static final int kRioSerialNum = 4; // 200 060 public static final int kRioSignature = 5; // 200 061 public static final int kRioRsrcType = 6; // 200 062 public static final int kRioDeviceMgr = 7; // 200: Obsolete in 230 063 public static final int kRioDefaultTimeout = 8; // 200 064 public static final int kRioLocalFifoRatio = 9; // 200: Obsolete in 230 065 066 // HACK HACK: PCI-SPECIFIC. 067 public static final int kRioBusNum = 10; // 200 068 public static final int kRioDeviceNum = 11; // 200 069 public static final int kRioFuncNum = 12; // 200 070 071 public static final int kRioRestrictedAccess = 13; // 220: Obsolete in 230 072 public static final int kRioCurrentVersion = 14; // 220 073 public static final int kRioOldestCompatibleVersion = 15; // 220 074 public static final int kRioClientIsBigEndian = 16; // 220: kFalse means little-endian 075 public static final int kRioFpgaInterruptControlOffset = 17; // 220 076 077 public static final int kRioNumMemWindows = 18; // 230 078 079 // ------------- HACK HACK: Keep in sequential order Until IO Mgr --- 080 // HACK HACK until we have the IO Manager. DO NOT INCLUDE INTO THE 081 // RING CONTROL!!! 082 public static final int kRioMemBaseBar0 = 19; // 230 083 public static final int kRioMemBaseBar1 = 20; // 230 084 public static final int kRioMemSizeBar0 = 21; // 230 085 public static final int kRioMemSizeBar1 = 22; // 230 086 // --------------- End HACK HACK ------------------------------------ 087 088 public static final int kRioSessionState = 23; // 230 089 public static final int kRioPersonalityLockTimeout = 24; // 230 090 public static final int kRioAddressSpace = 25; // 230 091 092 public static final int kRioChassisNum = 27; // 230 093 public static final int kRioSlotNum = 28; // 230 094 public static final int kRioLocalFifoDefaultDepth = 29; // 230 095 096 public static final int kRioTriggerBusNum = 30; // 230 097 public static final int kRioTriggerReserveLine = 31; // 230 098 public static final int kRioTriggerUnreserveLine = 32; // 230 099 public static final int kRioTriggerReservedLines = 33; // 230 100 101 public static final int kRioIrqNodeReserve = 34; // 230 102 public static final int kRioFpgaInterruptEnable = 35; // 230 103 104 public static final int kRioIsItOkToDownload = 36; // 230 105 106 public static final int kRioFpgaResetOffset = 37; // 230 107 public static final int kRioFpgaResetWidthInBits = 38; // 230 108 public static final int kRioFpgaControlOffset = 39; // 230 109 110 public static final int kRioResetIfLastSession = 40; // 230 111 112 public static final int kRioHasDeviceAccess = 41; // 230 113 114 public static final int kRioBusInterfaceType = 42; // 240 115 116 // String attributes 117 public static final int kRioProductName = 0; 118 public static final int kRioWhatFpgaIsDoing = 1; // 230 119 public static final int kRioResourceName = 2; // 230 120 121 // Host attributes 122 public static final int kRioHostCurrentVersion = 0; 123 public static final int kRioHostOldestCompatibleVersion = 1; 124 public static final int kRioHostRpcServerPort = 2; 125 public static final int kRioHostRpcTimeout = 3; // seconds 126 public static final int kRioHostDeviceDiscoveryTimeout = 4; 127 public static final int kRioHostHasDeviceAccess = 5; 128 public static final int kRioHostRpcSessionTimeout = 6; // seconds 129 130 public static final int kRioHostAliases = 0; 131 public static final int kRioHostAlias = 1; 132 public static final int kRioHostDeviceAccess = 2; 133 public static final int kRioHostRecentDevices = 3; 134 135 public static final int kRioDynamicRpcServerPort = 0; 136 137 // 138 // IO Window types 139 // 140 141 public static final int kRioAddressSpaceMite = 1; 142 public static final int kRioAddressSpaceFpga = 2; 143 144 // 145 // Device block[Read|Write] attributes 146 // 147 148 public static final int kRioIoAttributeAccessByteWidthMask = 0x0F; 149 public static final int kRioIoAttributeFpgaIncrement = 0x10; 150 public static final int kRioIoAttributeDustMiteNtFlashBitstream = 0x20; 151 152 // 153 // Event types 154 // 155 156 public static final int kRioEventInvalidEvent = -1; 157 public static final int kRioEventFirstEvent = 0; 158 public static final int kRioEventPCIInterrupt = 0; 159 public static final int kRioEventRemoval = 1; 160 public static final int kRioEventMaxNumberOfEvents = 2; // Add all other events before this one 161 162 // 163 // Session states 164 // 165 166 public static final int kRioSSNothing = 1; 167 public static final int kRioSSExclusive = 2; 168 public static final int kRioSSInvariant = 4; 169 public static final int kRioSSOverride = 6; 170 171 172 /// Device signature information. 173 174 // The lower 32 bits are divided by: 175 // bits 28-31 busType , see nRioBusType 176 // bits 16-27 TBD 177 // bits 8-15 bus (0 - 255 ), 178 // bits 3-7 device number (0-31), 179 // bits 0-2 function number (0-7) 180 // 181 /// RIO Bus types. 182 public static final int kRioBusTypePci = 0x00000001; 183 184 public static final int kRioBusTypeShift = 28; 185 public static final int kRioBusTypeMask = 0xF; // bus type range: 0 - 15 (4 bits) 186 187 /// Signature bus number shift 188 public static final int kRioBusNumShift = 8; 189 public static final int kRioBusNumMask = 0xFF; // range: 0 - 255 (8 bits) 190 191 /// Signature device number shift 192 public static final int kRioSocketNumShift = 3; 193 public static final int kRioSocketNumMask = 0x1F; // range: 0 - 31 (5 bits) 194 195 /// Signature function number shift 196 public static final int kRioFunctionNumShift = 0; 197 public static final int kRioFunctionNumMask = 0x7; // range: 0 - 7 (3 bits) 198 199 /// RIO Device categories. 200 public static final int kRioDeviceCRio = 0x00000001; //!< compactRIO device 201 public static final int kRioDevicePxi = 0x00000002; //!< PXI device 202 public static final int kRioDeviceFW = 0x00000004; //!< FireWire (1394) device 203 public static final int kRioDeviceBB = 0x00000008; //!< BlueBonnet device 204 public static final int kRioDeviceSync = 0x73796E63; //!< 'sync' (NI-PAL ID) 205 public static final int kRioDeviceDaq = 0x20646171; //!< 'daq ' (NI-PAL ID for new sync) 206 public static final int kRioDeviceIMAQ = 0x696D6171; //!< 'imaq' (NI-PAL ID) 207 208 public static final int kRioDustMite = 0x00000001; 209 public static final int kRioDustMiteNT = 0x00000002; 210 public static final int kRioSTC2 = 0x00000003; 211 212 // declarations for globally-scoped globals... 213 // prototypes... 214 // inline methods and function macros... 215 }