/* * * BlueZ - Bluetooth protocol stack for Linux * * Copyright (C) 2003-2010 Marcel Holtmann <marcel@holtmann.org> * * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA * */ #include <stdint.h> #include <termios.h> #define CSR_VARID_PS_CLR_ALL 0x000b /* valueless */ #define CSR_VARID_PS_FACTORY_SET 0x000c /* valueless */ #define CSR_VARID_PS_CLR_ALL_STORES 0x082d /* uint16 */ #define CSR_VARID_BC01_STATUS 0x2801 /* uint16 */ #define CSR_VARID_BUILDID 0x2819 /* uint16 */ #define CSR_VARID_CHIPVER 0x281a /* uint16 */ #define CSR_VARID_CHIPREV 0x281b /* uint16 */ #define CSR_VARID_INTERFACE_VERSION 0x2825 /* uint16 */ #define CSR_VARID_RAND 0x282a /* uint16 */ #define CSR_VARID_MAX_CRYPT_KEY_LENGTH 0x282c /* uint16 */ #define CSR_VARID_CHIPANAREV 0x2836 /* uint16 */ #define CSR_VARID_BUILDID_LOADER 0x2838 /* uint16 */ #define CSR_VARID_BT_CLOCK 0x2c00 /* uint32 */ #define CSR_VARID_PS_NEXT 0x3005 /* complex */ #define CSR_VARID_PS_SIZE 0x3006 /* complex */ #define CSR_VARID_CRYPT_KEY_LENGTH 0x3008 /* complex */ #define CSR_VARID_PICONET_INSTANCE 0x3009 /* complex */ #define CSR_VARID_GET_CLR_EVT 0x300a /* complex */ #define CSR_VARID_GET_NEXT_BUILDDEF 0x300b /* complex */ #define CSR_VARID_PS_MEMORY_TYPE 0x3012 /* complex */ #define CSR_VARID_READ_BUILD_NAME 0x301c /* complex */ #define CSR_VARID_COLD_RESET 0x4001 /* valueless */ #define CSR_VARID_WARM_RESET 0x4002 /* valueless */ #define CSR_VARID_COLD_HALT 0x4003 /* valueless */ #define CSR_VARID_WARM_HALT 0x4004 /* valueless */ #define CSR_VARID_INIT_BT_STACK 0x4005 /* valueless */ #define CSR_VARID_ACTIVATE_BT_STACK 0x4006 /* valueless */ #define CSR_VARID_ENABLE_TX 0x4007 /* valueless */ #define CSR_VARID_DISABLE_TX 0x4008 /* valueless */ #define CSR_VARID_RECAL 0x4009 /* valueless */ #define CSR_VARID_PS_FACTORY_RESTORE 0x400d /* valueless */ #define CSR_VARID_PS_FACTORY_RESTORE_ALL 0x400e /* valueless */ #define CSR_VARID_PS_DEFRAG_RESET 0x400f /* valueless */ #define CSR_VARID_KILL_VM_APPLICATION 0x4010 /* valueless */ #define CSR_VARID_HOPPING_ON 0x4011 /* valueless */ #define CSR_VARID_CANCEL_PAGE 0x4012 /* valueless */ #define CSR_VARID_PS_CLR 0x4818 /* uint16 */ #define CSR_VARID_MAP_SCO_PCM 0x481c /* uint16 */ #define CSR_VARID_SINGLE_CHAN 0x482e /* uint16 */ #define CSR_VARID_RADIOTEST 0x5004 /* complex */ #define CSR_VARID_PS_CLR_STORES 0x500c /* complex */ #define CSR_VARID_NO_VARIABLE 0x6000 /* valueless */ #define CSR_VARID_CONFIG_UART 0x6802 /* uint16 */ #define CSR_VARID_PANIC_ARG 0x6805 /* uint16 */ #define CSR_VARID_FAULT_ARG 0x6806 /* uint16 */ #define CSR_VARID_MAX_TX_POWER 0x6827 /* int8 */ #define CSR_VARID_DEFAULT_TX_POWER 0x682b /* int8 */ #define CSR_VARID_PS 0x7003 /* complex */ #define CSR_PSKEY_BDADDR 0x0001 /* bdaddr / uint16[] = { 0x00A5A5, 0x5b, 0x0002 } */ #define CSR_PSKEY_COUNTRYCODE 0x0002 /* uint16 */ #define CSR_PSKEY_CLASSOFDEVICE 0x0003 /* bdcod */ #define CSR_PSKEY_DEVICE_DRIFT 0x0004 /* uint16 */ #define CSR_PSKEY_DEVICE_JITTER 0x0005 /* uint16 */ #define CSR_PSKEY_MAX_ACLS 0x000d /* uint16 */ #define CSR_PSKEY_MAX_SCOS 0x000e /* uint16 */ #define CSR_PSKEY_MAX_REMOTE_MASTERS 0x000f /* uint16 */ #define CSR_PSKEY_ENABLE_MASTERY_WITH_SLAVERY 0x0010 /* bool */ #define CSR_PSKEY_H_HC_FC_MAX_ACL_PKT_LEN 0x0011 /* uint16 */ #define CSR_PSKEY_H_HC_FC_MAX_SCO_PKT_LEN 0x0012 /* uint8 */ #define CSR_PSKEY_H_HC_FC_MAX_ACL_PKTS 0x0013 /* uint16 */ #define CSR_PSKEY_H_HC_FC_MAX_SCO_PKTS 0x0014 /* uint16 */ #define CSR_PSKEY_LC_FC_BUFFER_LOW_WATER_MARK 0x0015 /* lc_fc_lwm */ #define CSR_PSKEY_LC_MAX_TX_POWER 0x0017 /* int16 */ #define CSR_PSKEY_TX_GAIN_RAMP 0x001d /* uint16 */ #define CSR_PSKEY_LC_POWER_TABLE 0x001e /* power_setting[] */ #define CSR_PSKEY_LC_PEER_POWER_PERIOD 0x001f /* TIME */ #define CSR_PSKEY_LC_FC_POOLS_LOW_WATER_MARK 0x0020 /* lc_fc_lwm */ #define CSR_PSKEY_LC_DEFAULT_TX_POWER 0x0021 /* int16 */ #define CSR_PSKEY_LC_RSSI_GOLDEN_RANGE 0x0022 /* uint8 */ #define CSR_PSKEY_LC_COMBO_DISABLE_PIO_MASK 0x0028 /* uint16[] */ #define CSR_PSKEY_LC_COMBO_PRIORITY_PIO_MASK 0x0029 /* uint16[] */ #define CSR_PSKEY_LC_COMBO_DOT11_CHANNEL_PIO_BASE 0x002a /* uint16 */ #define CSR_PSKEY_LC_COMBO_DOT11_BLOCK_CHANNELS 0x002b /* uint16 */ #define CSR_PSKEY_LC_MAX_TX_POWER_NO_RSSI 0x002d /* int8 */ #define CSR_PSKEY_LC_CONNECTION_RX_WINDOW 0x002e /* uint16 */ #define CSR_PSKEY_LC_COMBO_DOT11_TX_PROTECTION_MODE 0x0030 /* uint16 */ #define CSR_PSKEY_LC_ENHANCED_POWER_TABLE 0x0031 /* enhanced_power_setting[] */ #define CSR_PSKEY_LC_WIDEBAND_RSSI_CONFIG 0x0032 /* wideband_rssi_config */ #define CSR_PSKEY_LC_COMBO_DOT11_PRIORITY_LEAD 0x0033 /* uint16 */ #define CSR_PSKEY_BT_CLOCK_INIT 0x0034 /* uint32 */ #define CSR_PSKEY_TX_MR_MOD_DELAY 0x0038 /* uint8 */ #define CSR_PSKEY_RX_MR_SYNC_TIMING 0x0039 /* uint16 */ #define CSR_PSKEY_RX_MR_SYNC_CONFIG 0x003a /* uint16 */ #define CSR_PSKEY_LC_LOST_SYNC_SLOTS 0x003b /* uint16 */ #define CSR_PSKEY_RX_MR_SAMP_CONFIG 0x003c /* uint16 */ #define CSR_PSKEY_AGC_HYST_LEVELS 0x003d /* agc_hyst_config */ #define CSR_PSKEY_RX_LEVEL_LOW_SIGNAL 0x003e /* uint16 */ #define CSR_PSKEY_AGC_IQ_LVL_VALUES 0x003f /* IQ_LVL_VAL[] */ #define CSR_PSKEY_MR_FTRIM_OFFSET_12DB 0x0040 /* uint16 */ #define CSR_PSKEY_MR_FTRIM_OFFSET_6DB 0x0041 /* uint16 */ #define CSR_PSKEY_NO_CAL_ON_BOOT 0x0042 /* bool */ #define CSR_PSKEY_RSSI_HI_TARGET 0x0043 /* uint8 */ #define CSR_PSKEY_PREFERRED_MIN_ATTENUATION 0x0044 /* uint8 */ #define CSR_PSKEY_LC_COMBO_DOT11_PRIORITY_OVERRIDE 0x0045 /* bool */ #define CSR_PSKEY_LC_MULTISLOT_HOLDOFF 0x0047 /* TIME */ #define CSR_PSKEY_FREE_KEY_PIGEON_HOLE 0x00c9 /* uint16 */ #define CSR_PSKEY_LINK_KEY_BD_ADDR0 0x00ca /* LM_LINK_KEY_BD_ADDR_T */ #define CSR_PSKEY_LINK_KEY_BD_ADDR1 0x00cb /* LM_LINK_KEY_BD_ADDR_T */ #define CSR_PSKEY_LINK_KEY_BD_ADDR2 0x00cc /* LM_LINK_KEY_BD_ADDR_T */ #define CSR_PSKEY_LINK_KEY_BD_ADDR3 0x00cd /* LM_LINK_KEY_BD_ADDR_T */ #define CSR_PSKEY_LINK_KEY_BD_ADDR4 0x00ce /* LM_LINK_KEY_BD_ADDR_T */ #define CSR_PSKEY_LINK_KEY_BD_ADDR5 0x00cf /* LM_LINK_KEY_BD_ADDR_T */ #define CSR_PSKEY_LINK_KEY_BD_ADDR6 0x00d0 /* LM_LINK_KEY_BD_ADDR_T */ #define CSR_PSKEY_LINK_KEY_BD_ADDR7 0x00d1 /* LM_LINK_KEY_BD_ADDR_T */ #define CSR_PSKEY_LINK_KEY_BD_ADDR8 0x00d2 /* LM_LINK_KEY_BD_ADDR_T */ #define CSR_PSKEY_LINK_KEY_BD_ADDR9 0x00d3 /* LM_LINK_KEY_BD_ADDR_T */ #define CSR_PSKEY_LINK_KEY_BD_ADDR10 0x00d4 /* LM_LINK_KEY_BD_ADDR_T */ #define CSR_PSKEY_LINK_KEY_BD_ADDR11 0x00d5 /* LM_LINK_KEY_BD_ADDR_T */ #define CSR_PSKEY_LINK_KEY_BD_ADDR12 0x00d6 /* LM_LINK_KEY_BD_ADDR_T */ #define CSR_PSKEY_LINK_KEY_BD_ADDR13 0x00d7 /* LM_LINK_KEY_BD_ADDR_T */ #define CSR_PSKEY_LINK_KEY_BD_ADDR14 0x00d8 /* LM_LINK_KEY_BD_ADDR_T */ #define CSR_PSKEY_LINK_KEY_BD_ADDR15 0x00d9 /* LM_LINK_KEY_BD_ADDR_T */ #define CSR_PSKEY_ENC_KEY_LMIN 0x00da /* uint16 */ #define CSR_PSKEY_ENC_KEY_LMAX 0x00db /* uint16 */ #define CSR_PSKEY_LOCAL_SUPPORTED_FEATURES 0x00ef /* uint16[] = { 0xffff, 0xfe8f, 0xf99b, 0x8000 }*/ #define CSR_PSKEY_LM_USE_UNIT_KEY 0x00f0 /* bool */ #define CSR_PSKEY_HCI_NOP_DISABLE 0x00f2 /* bool */ #define CSR_PSKEY_LM_MAX_EVENT_FILTERS 0x00f4 /* uint8 */ #define CSR_PSKEY_LM_USE_ENC_MODE_BROADCAST 0x00f5 /* bool */ #define CSR_PSKEY_LM_TEST_SEND_ACCEPTED_TWICE 0x00f6 /* bool */ #define CSR_PSKEY_LM_MAX_PAGE_HOLD_TIME 0x00f7 /* uint16 */ #define CSR_PSKEY_AFH_ADAPTATION_RESPONSE_TIME 0x00f8 /* uint16 */ #define CSR_PSKEY_AFH_OPTIONS 0x00f9 /* uint16 */ #define CSR_PSKEY_AFH_RSSI_RUN_PERIOD 0x00fa /* uint16 */ #define CSR_PSKEY_AFH_REENABLE_CHANNEL_TIME 0x00fb /* uint16 */ #define CSR_PSKEY_NO_DROP_ON_ACR_MS_FAIL 0x00fc /* bool */ #define CSR_PSKEY_MAX_PRIVATE_KEYS 0x00fd /* uint8 */ #define CSR_PSKEY_PRIVATE_LINK_KEY_BD_ADDR0 0x00fe /* LM_LINK_KEY_BD_ADDR_T */ #define CSR_PSKEY_PRIVATE_LINK_KEY_BD_ADDR1 0x00ff /* LM_LINK_KEY_BD_ADDR_T */ #define CSR_PSKEY_PRIVATE_LINK_KEY_BD_ADDR2 0x0100 /* LM_LINK_KEY_BD_ADDR_T */ #define CSR_PSKEY_PRIVATE_LINK_KEY_BD_ADDR3 0x0101 /* LM_LINK_KEY_BD_ADDR_T */ #define CSR_PSKEY_PRIVATE_LINK_KEY_BD_ADDR4 0x0102 /* LM_LINK_KEY_BD_ADDR_T */ #define CSR_PSKEY_PRIVATE_LINK_KEY_BD_ADDR5 0x0103 /* LM_LINK_KEY_BD_ADDR_T */ #define CSR_PSKEY_PRIVATE_LINK_KEY_BD_ADDR6 0x0104 /* LM_LINK_KEY_BD_ADDR_T */ #define CSR_PSKEY_PRIVATE_LINK_KEY_BD_ADDR7 0x0105 /* LM_LINK_KEY_BD_ADDR_T */ #define CSR_PSKEY_LOCAL_SUPPORTED_COMMANDS 0x0106 /* uint16[] = { 0xffff, 0x03ff, 0xfffe, 0xffff, 0xffff, 0xffff, 0x0ff3, 0xfff8, 0x003f } */ #define CSR_PSKEY_LM_MAX_ABSENCE_INDEX 0x0107 /* uint8 */ #define CSR_PSKEY_DEVICE_NAME 0x0108 /* uint16[] */ #define CSR_PSKEY_AFH_RSSI_THRESHOLD 0x0109 /* uint16 */ #define CSR_PSKEY_LM_CASUAL_SCAN_INTERVAL 0x010a /* uint16 */ #define CSR_PSKEY_AFH_MIN_MAP_CHANGE 0x010b /* uint16[] */ #define CSR_PSKEY_AFH_RSSI_LP_RUN_PERIOD 0x010c /* uint16 */ #define CSR_PSKEY_HCI_LMP_LOCAL_VERSION 0x010d /* uint16 */ #define CSR_PSKEY_LMP_REMOTE_VERSION 0x010e /* uint8 */ #define CSR_PSKEY_HOLD_ERROR_MESSAGE_NUMBER 0x0113 /* uint16 */ #define CSR_PSKEY_DFU_ATTRIBUTES 0x0136 /* uint8 */ #define CSR_PSKEY_DFU_DETACH_TO 0x0137 /* uint16 */ #define CSR_PSKEY_DFU_TRANSFER_SIZE 0x0138 /* uint16 */ #define CSR_PSKEY_DFU_ENABLE 0x0139 /* bool */ #define CSR_PSKEY_DFU_LIN_REG_ENABLE 0x013a /* bool */ #define CSR_PSKEY_DFUENC_VMAPP_PK_MODULUS_MSB 0x015e /* uint16[] */ #define CSR_PSKEY_DFUENC_VMAPP_PK_MODULUS_LSB 0x015f /* uint16[] */ #define CSR_PSKEY_DFUENC_VMAPP_PK_M_DASH 0x0160 /* uint16 */ #define CSR_PSKEY_DFUENC_VMAPP_PK_R2N_MSB 0x0161 /* uint16[] */ #define CSR_PSKEY_DFUENC_VMAPP_PK_R2N_LSB 0x0162 /* uint16[] */ #define CSR_PSKEY_BCSP_LM_PS_BLOCK 0x0192 /* BCSP_LM_PS_BLOCK */ #define CSR_PSKEY_HOSTIO_FC_PS_BLOCK 0x0193 /* HOSTIO_FC_PS_BLOCK */ #define CSR_PSKEY_HOSTIO_PROTOCOL_INFO0 0x0194 /* PROTOCOL_INFO */ #define CSR_PSKEY_HOSTIO_PROTOCOL_INFO1 0x0195 /* PROTOCOL_INFO */ #define CSR_PSKEY_HOSTIO_PROTOCOL_INFO2 0x0196 /* PROTOCOL_INFO */ #define CSR_PSKEY_HOSTIO_PROTOCOL_INFO3 0x0197 /* PROTOCOL_INFO */ #define CSR_PSKEY_HOSTIO_PROTOCOL_INFO4 0x0198 /* PROTOCOL_INFO */ #define CSR_PSKEY_HOSTIO_PROTOCOL_INFO5 0x0199 /* PROTOCOL_INFO */ #define CSR_PSKEY_HOSTIO_PROTOCOL_INFO6 0x019a /* PROTOCOL_INFO */ #define CSR_PSKEY_HOSTIO_PROTOCOL_INFO7 0x019b /* PROTOCOL_INFO */ #define CSR_PSKEY_HOSTIO_PROTOCOL_INFO8 0x019c /* PROTOCOL_INFO */ #define CSR_PSKEY_HOSTIO_PROTOCOL_INFO9 0x019d /* PROTOCOL_INFO */ #define CSR_PSKEY_HOSTIO_PROTOCOL_INFO10 0x019e /* PROTOCOL_INFO */ #define CSR_PSKEY_HOSTIO_PROTOCOL_INFO11 0x019f /* PROTOCOL_INFO */ #define CSR_PSKEY_HOSTIO_PROTOCOL_INFO12 0x01a0 /* PROTOCOL_INFO */ #define CSR_PSKEY_HOSTIO_PROTOCOL_INFO13 0x01a1 /* PROTOCOL_INFO */ #define CSR_PSKEY_HOSTIO_PROTOCOL_INFO14 0x01a2 /* PROTOCOL_INFO */ #define CSR_PSKEY_HOSTIO_PROTOCOL_INFO15 0x01a3 /* PROTOCOL_INFO */ #define CSR_PSKEY_HOSTIO_UART_RESET_TIMEOUT 0x01a4 /* TIME */ #define CSR_PSKEY_HOSTIO_USE_HCI_EXTN 0x01a5 /* bool */ #define CSR_PSKEY_HOSTIO_USE_HCI_EXTN_CCFC 0x01a6 /* bool */ #define CSR_PSKEY_HOSTIO_HCI_EXTN_PAYLOAD_SIZE 0x01a7 /* uint16 */ #define CSR_PSKEY_BCSP_LM_CNF_CNT_LIMIT 0x01aa /* uint16 */ #define CSR_PSKEY_HOSTIO_MAP_SCO_PCM 0x01ab /* bool */ #define CSR_PSKEY_HOSTIO_AWKWARD_PCM_SYNC 0x01ac /* bool */ #define CSR_PSKEY_HOSTIO_BREAK_POLL_PERIOD 0x01ad /* TIME */ #define CSR_PSKEY_HOSTIO_MIN_UART_HCI_SCO_SIZE 0x01ae /* uint16 */ #define CSR_PSKEY_HOSTIO_MAP_SCO_CODEC 0x01b0 /* bool */ #define CSR_PSKEY_PCM_CVSD_TX_HI_FREQ_BOOST 0x01b1 /* uint16 */ #define CSR_PSKEY_PCM_CVSD_RX_HI_FREQ_BOOST 0x01b2 /* uint16 */ #define CSR_PSKEY_PCM_CONFIG32 0x01b3 /* uint32 */ #define CSR_PSKEY_USE_OLD_BCSP_LE 0x01b4 /* uint16 */ #define CSR_PSKEY_PCM_CVSD_USE_NEW_FILTER 0x01b5 /* bool */ #define CSR_PSKEY_PCM_FORMAT 0x01b6 /* uint16 */ #define CSR_PSKEY_CODEC_OUT_GAIN 0x01b7 /* uint16 */ #define CSR_PSKEY_CODEC_IN_GAIN 0x01b8 /* uint16 */ #define CSR_PSKEY_CODEC_PIO 0x01b9 /* uint16 */ #define CSR_PSKEY_PCM_LOW_JITTER_CONFIG 0x01ba /* uint32 */ #define CSR_PSKEY_HOSTIO_SCO_PCM_THRESHOLDS 0x01bb /* uint16[] */ #define CSR_PSKEY_HOSTIO_SCO_HCI_THRESHOLDS 0x01bc /* uint16[] */ #define CSR_PSKEY_HOSTIO_MAP_SCO_PCM_SLOT 0x01bd /* uint16 */ #define CSR_PSKEY_UART_BAUDRATE 0x01be /* uint16 */ #define CSR_PSKEY_UART_CONFIG_BCSP 0x01bf /* uint16 */ #define CSR_PSKEY_UART_CONFIG_H4 0x01c0 /* uint16 */ #define CSR_PSKEY_UART_CONFIG_H5 0x01c1 /* uint16 */ #define CSR_PSKEY_UART_CONFIG_USR 0x01c2 /* uint16 */ #define CSR_PSKEY_UART_TX_CRCS 0x01c3 /* bool */ #define CSR_PSKEY_UART_ACK_TIMEOUT 0x01c4 /* uint16 */ #define CSR_PSKEY_UART_TX_MAX_ATTEMPTS 0x01c5 /* uint16 */ #define CSR_PSKEY_UART_TX_WINDOW_SIZE 0x01c6 /* uint16 */ #define CSR_PSKEY_UART_HOST_WAKE 0x01c7 /* uint16[] */ #define CSR_PSKEY_HOSTIO_THROTTLE_TIMEOUT 0x01c8 /* TIME */ #define CSR_PSKEY_PCM_ALWAYS_ENABLE 0x01c9 /* bool */ #define CSR_PSKEY_UART_HOST_WAKE_SIGNAL 0x01ca /* uint16 */ #define CSR_PSKEY_UART_CONFIG_H4DS 0x01cb /* uint16 */ #define CSR_PSKEY_H4DS_WAKE_DURATION 0x01cc /* uint16 */ #define CSR_PSKEY_H4DS_MAXWU 0x01cd /* uint16 */ #define CSR_PSKEY_H4DS_LE_TIMER_PERIOD 0x01cf /* uint16 */ #define CSR_PSKEY_H4DS_TWU_TIMER_PERIOD 0x01d0 /* uint16 */ #define CSR_PSKEY_H4DS_UART_IDLE_TIMER_PERIOD 0x01d1 /* uint16 */ #define CSR_PSKEY_ANA_FTRIM 0x01f6 /* uint16 */ #define CSR_PSKEY_WD_TIMEOUT 0x01f7 /* TIME */ #define CSR_PSKEY_WD_PERIOD 0x01f8 /* TIME */ #define CSR_PSKEY_HOST_INTERFACE 0x01f9 /* phys_bus */ #define CSR_PSKEY_HQ_HOST_TIMEOUT 0x01fb /* TIME */ #define CSR_PSKEY_HQ_ACTIVE 0x01fc /* bool */ #define CSR_PSKEY_BCCMD_SECURITY_ACTIVE 0x01fd /* bool */ #define CSR_PSKEY_ANA_FREQ 0x01fe /* uint16 */ #define CSR_PSKEY_PIO_PROTECT_MASK 0x0202 /* uint16 */ #define CSR_PSKEY_PMALLOC_SIZES 0x0203 /* uint16[] */ #define CSR_PSKEY_UART_BAUD_RATE 0x0204 /* uint16 */ #define CSR_PSKEY_UART_CONFIG 0x0205 /* uint16 */ #define CSR_PSKEY_STUB 0x0207 /* uint16 */ #define CSR_PSKEY_TXRX_PIO_CONTROL 0x0209 /* uint16 */ #define CSR_PSKEY_ANA_RX_LEVEL 0x020b /* uint16 */ #define CSR_PSKEY_ANA_RX_FTRIM 0x020c /* uint16 */ #define CSR_PSKEY_PSBC_DATA_VERSION 0x020d /* uint16 */ #define CSR_PSKEY_PCM0_ATTENUATION 0x020f /* uint16 */ #define CSR_PSKEY_LO_LVL_MAX 0x0211 /* uint16 */ #define CSR_PSKEY_LO_ADC_AMPL_MIN 0x0212 /* uint16 */ #define CSR_PSKEY_LO_ADC_AMPL_MAX 0x0213 /* uint16 */ #define CSR_PSKEY_IQ_TRIM_CHANNEL 0x0214 /* uint16 */ #define CSR_PSKEY_IQ_TRIM_GAIN 0x0215 /* uint16 */ #define CSR_PSKEY_IQ_TRIM_ENABLE 0x0216 /* iq_trim_enable_flag */ #define CSR_PSKEY_TX_OFFSET_HALF_MHZ 0x0217 /* int16 */ #define CSR_PSKEY_GBL_MISC_ENABLES 0x0221 /* uint16 */ #define CSR_PSKEY_UART_SLEEP_TIMEOUT 0x0222 /* uint16 */ #define CSR_PSKEY_DEEP_SLEEP_STATE 0x0229 /* deep_sleep_state */ #define CSR_PSKEY_IQ_ENABLE_PHASE_TRIM 0x022d /* bool */ #define CSR_PSKEY_HCI_HANDLE_FREEZE_PERIOD 0x0237 /* TIME */ #define CSR_PSKEY_MAX_FROZEN_HCI_HANDLES 0x0238 /* uint16 */ #define CSR_PSKEY_PAGETABLE_DESTRUCTION_DELAY 0x0239 /* TIME */ #define CSR_PSKEY_IQ_TRIM_PIO_SETTINGS 0x023a /* uint8 */ #define CSR_PSKEY_USE_EXTERNAL_CLOCK 0x023b /* bool */ #define CSR_PSKEY_DEEP_SLEEP_WAKE_CTS 0x023c /* uint16 */ #define CSR_PSKEY_FC_HC2H_FLUSH_DELAY 0x023d /* TIME */ #define CSR_PSKEY_RX_HIGHSIDE 0x023e /* bool */ #define CSR_PSKEY_TX_PRE_LVL 0x0240 /* uint8 */ #define CSR_PSKEY_RX_SINGLE_ENDED 0x0242 /* bool */ #define CSR_PSKEY_TX_FILTER_CONFIG 0x0243 /* uint32 */ #define CSR_PSKEY_CLOCK_REQUEST_ENABLE 0x0246 /* uint16 */ #define CSR_PSKEY_RX_MIN_ATTEN 0x0249 /* uint16 */ #define CSR_PSKEY_XTAL_TARGET_AMPLITUDE 0x024b /* uint8 */ #define CSR_PSKEY_PCM_MIN_CPU_CLOCK 0x024d /* uint16 */ #define CSR_PSKEY_HOST_INTERFACE_PIO_USB 0x0250 /* uint16 */ #define CSR_PSKEY_CPU_IDLE_MODE 0x0251 /* cpu_idle_mode */ #define CSR_PSKEY_DEEP_SLEEP_CLEAR_RTS 0x0252 /* bool */ #define CSR_PSKEY_RF_RESONANCE_TRIM 0x0254 /* uint16 */ #define CSR_PSKEY_DEEP_SLEEP_PIO_WAKE 0x0255 /* uint16 */ #define CSR_PSKEY_DRAIN_BORE_TIMERS 0x0256 /* uint32[] */ #define CSR_PSKEY_DRAIN_TX_POWER_BASE 0x0257 /* uint16 */ #define CSR_PSKEY_MODULE_ID 0x0259 /* uint32 */ #define CSR_PSKEY_MODULE_DESIGN 0x025a /* uint16 */ #define CSR_PSKEY_MODULE_SECURITY_CODE 0x025c /* uint16[] */ #define CSR_PSKEY_VM_DISABLE 0x025d /* bool */ #define CSR_PSKEY_MOD_MANUF0 0x025e /* uint16[] */ #define CSR_PSKEY_MOD_MANUF1 0x025f /* uint16[] */ #define CSR_PSKEY_MOD_MANUF2 0x0260 /* uint16[] */ #define CSR_PSKEY_MOD_MANUF3 0x0261 /* uint16[] */ #define CSR_PSKEY_MOD_MANUF4 0x0262 /* uint16[] */ #define CSR_PSKEY_MOD_MANUF5 0x0263 /* uint16[] */ #define CSR_PSKEY_MOD_MANUF6 0x0264 /* uint16[] */ #define CSR_PSKEY_MOD_MANUF7 0x0265 /* uint16[] */ #define CSR_PSKEY_MOD_MANUF8 0x0266 /* uint16[] */ #define CSR_PSKEY_MOD_MANUF9 0x0267 /* uint16[] */ #define CSR_PSKEY_DUT_VM_DISABLE 0x0268 /* bool */ #define CSR_PSKEY_USR0 0x028a /* uint16[] */ #define CSR_PSKEY_USR1 0x028b /* uint16[] */ #define CSR_PSKEY_USR2 0x028c /* uint16[] */ #define CSR_PSKEY_USR3 0x028d /* uint16[] */ #define CSR_PSKEY_USR4 0x028e /* uint16[] */ #define CSR_PSKEY_USR5 0x028f /* uint16[] */ #define CSR_PSKEY_USR6 0x0290 /* uint16[] */ #define CSR_PSKEY_USR7 0x0291 /* uint16[] */ #define CSR_PSKEY_USR8 0x0292 /* uint16[] */ #define CSR_PSKEY_USR9 0x0293 /* uint16[] */ #define CSR_PSKEY_USR10 0x0294 /* uint16[] */ #define CSR_PSKEY_USR11 0x0295 /* uint16[] */ #define CSR_PSKEY_USR12 0x0296 /* uint16[] */ #define CSR_PSKEY_USR13 0x0297 /* uint16[] */ #define CSR_PSKEY_USR14 0x0298 /* uint16[] */ #define CSR_PSKEY_USR15 0x0299 /* uint16[] */ #define CSR_PSKEY_USR16 0x029a /* uint16[] */ #define CSR_PSKEY_USR17 0x029b /* uint16[] */ #define CSR_PSKEY_USR18 0x029c /* uint16[] */ #define CSR_PSKEY_USR19 0x029d /* uint16[] */ #define CSR_PSKEY_USR20 0x029e /* uint16[] */ #define CSR_PSKEY_USR21 0x029f /* uint16[] */ #define CSR_PSKEY_USR22 0x02a0 /* uint16[] */ #define CSR_PSKEY_USR23 0x02a1 /* uint16[] */ #define CSR_PSKEY_USR24 0x02a2 /* uint16[] */ #define CSR_PSKEY_USR25 0x02a3 /* uint16[] */ #define CSR_PSKEY_USR26 0x02a4 /* uint16[] */ #define CSR_PSKEY_USR27 0x02a5 /* uint16[] */ #define CSR_PSKEY_USR28 0x02a6 /* uint16[] */ #define CSR_PSKEY_USR29 0x02a7 /* uint16[] */ #define CSR_PSKEY_USR30 0x02a8 /* uint16[] */ #define CSR_PSKEY_USR31 0x02a9 /* uint16[] */ #define CSR_PSKEY_USR32 0x02aa /* uint16[] */ #define CSR_PSKEY_USR33 0x02ab /* uint16[] */ #define CSR_PSKEY_USR34 0x02ac /* uint16[] */ #define CSR_PSKEY_USR35 0x02ad /* uint16[] */ #define CSR_PSKEY_USR36 0x02ae /* uint16[] */ #define CSR_PSKEY_USR37 0x02af /* uint16[] */ #define CSR_PSKEY_USR38 0x02b0 /* uint16[] */ #define CSR_PSKEY_USR39 0x02b1 /* uint16[] */ #define CSR_PSKEY_USR40 0x02b2 /* uint16[] */ #define CSR_PSKEY_USR41 0x02b3 /* uint16[] */ #define CSR_PSKEY_USR42 0x02b4 /* uint16[] */ #define CSR_PSKEY_USR43 0x02b5 /* uint16[] */ #define CSR_PSKEY_USR44 0x02b6 /* uint16[] */ #define CSR_PSKEY_USR45 0x02b7 /* uint16[] */ #define CSR_PSKEY_USR46 0x02b8 /* uint16[] */ #define CSR_PSKEY_USR47 0x02b9 /* uint16[] */ #define CSR_PSKEY_USR48 0x02ba /* uint16[] */ #define CSR_PSKEY_USR49 0x02bb /* uint16[] */ #define CSR_PSKEY_USB_VERSION 0x02bc /* uint16 */ #define CSR_PSKEY_USB_DEVICE_CLASS_CODES 0x02bd /* usbclass */ #define CSR_PSKEY_USB_VENDOR_ID 0x02be /* uint16 */ #define CSR_PSKEY_USB_PRODUCT_ID 0x02bf /* uint16 */ #define CSR_PSKEY_USB_MANUF_STRING 0x02c1 /* unicodestring */ #define CSR_PSKEY_USB_PRODUCT_STRING 0x02c2 /* unicodestring */ #define CSR_PSKEY_USB_SERIAL_NUMBER_STRING 0x02c3 /* unicodestring */ #define CSR_PSKEY_USB_CONFIG_STRING 0x02c4 /* unicodestring */ #define CSR_PSKEY_USB_ATTRIBUTES 0x02c5 /* uint8 */ #define CSR_PSKEY_USB_MAX_POWER 0x02c6 /* uint16 */ #define CSR_PSKEY_USB_BT_IF_CLASS_CODES 0x02c7 /* usbclass */ #define CSR_PSKEY_USB_LANGID 0x02c9 /* uint16 */ #define CSR_PSKEY_USB_DFU_CLASS_CODES 0x02ca /* usbclass */ #define CSR_PSKEY_USB_DFU_PRODUCT_ID 0x02cb /* uint16 */ #define CSR_PSKEY_USB_PIO_DETACH 0x02ce /* uint16 */ #define CSR_PSKEY_USB_PIO_WAKEUP 0x02cf /* uint16 */ #define CSR_PSKEY_USB_PIO_PULLUP 0x02d0 /* uint16 */ #define CSR_PSKEY_USB_PIO_VBUS 0x02d1 /* uint16 */ #define CSR_PSKEY_USB_PIO_WAKE_TIMEOUT 0x02d2 /* uint16 */ #define CSR_PSKEY_USB_PIO_RESUME 0x02d3 /* uint16 */ #define CSR_PSKEY_USB_BT_SCO_IF_CLASS_CODES 0x02d4 /* usbclass */ #define CSR_PSKEY_USB_SUSPEND_PIO_LEVEL 0x02d5 /* uint16 */ #define CSR_PSKEY_USB_SUSPEND_PIO_DIR 0x02d6 /* uint16 */ #define CSR_PSKEY_USB_SUSPEND_PIO_MASK 0x02d7 /* uint16 */ #define CSR_PSKEY_USB_ENDPOINT_0_MAX_PACKET_SIZE 0x02d8 /* uint8 */ #define CSR_PSKEY_USB_CONFIG 0x02d9 /* uint16 */ #define CSR_PSKEY_RADIOTEST_ATTEN_INIT 0x0320 /* uint16 */ #define CSR_PSKEY_RADIOTEST_FIRST_TRIM_TIME 0x0326 /* TIME */ #define CSR_PSKEY_RADIOTEST_SUBSEQUENT_TRIM_TIME 0x0327 /* TIME */ #define CSR_PSKEY_RADIOTEST_LO_LVL_TRIM_ENABLE 0x0328 /* bool */ #define CSR_PSKEY_RADIOTEST_DISABLE_MODULATION 0x032c /* bool */ #define CSR_PSKEY_RFCOMM_FCON_THRESHOLD 0x0352 /* uint16 */ #define CSR_PSKEY_RFCOMM_FCOFF_THRESHOLD 0x0353 /* uint16 */ #define CSR_PSKEY_IPV6_STATIC_ADDR 0x0354 /* uint16[] */ #define CSR_PSKEY_IPV4_STATIC_ADDR 0x0355 /* uint32 */ #define CSR_PSKEY_IPV6_STATIC_PREFIX_LEN 0x0356 /* uint8 */ #define CSR_PSKEY_IPV6_STATIC_ROUTER_ADDR 0x0357 /* uint16[] */ #define CSR_PSKEY_IPV4_STATIC_SUBNET_MASK 0x0358 /* uint32 */ #define CSR_PSKEY_IPV4_STATIC_ROUTER_ADDR 0x0359 /* uint32 */ #define CSR_PSKEY_MDNS_NAME 0x035a /* char[] */ #define CSR_PSKEY_FIXED_PIN 0x035b /* uint8[] */ #define CSR_PSKEY_MDNS_PORT 0x035c /* uint16 */ #define CSR_PSKEY_MDNS_TTL 0x035d /* uint8 */ #define CSR_PSKEY_MDNS_IPV4_ADDR 0x035e /* uint32 */ #define CSR_PSKEY_ARP_CACHE_TIMEOUT 0x035f /* uint16 */ #define CSR_PSKEY_HFP_POWER_TABLE 0x0360 /* uint16[] */ #define CSR_PSKEY_DRAIN_BORE_TIMER_COUNTERS 0x03e7 /* uint32[] */ #define CSR_PSKEY_DRAIN_BORE_COUNTERS 0x03e6 /* uint32[] */ #define CSR_PSKEY_LOOP_FILTER_TRIM 0x03e4 /* uint16 */ #define CSR_PSKEY_DRAIN_BORE_CURRENT_PEAK 0x03e3 /* uint32[] */ #define CSR_PSKEY_VM_E2_CACHE_LIMIT 0x03e2 /* uint16 */ #define CSR_PSKEY_FORCE_16MHZ_REF_PIO 0x03e1 /* uint16 */ #define CSR_PSKEY_CDMA_LO_REF_LIMITS 0x03df /* uint16 */ #define CSR_PSKEY_CDMA_LO_ERROR_LIMITS 0x03de /* uint16 */ #define CSR_PSKEY_CLOCK_STARTUP_DELAY 0x03dd /* uint16 */ #define CSR_PSKEY_DEEP_SLEEP_CORRECTION_FACTOR 0x03dc /* int16 */ #define CSR_PSKEY_TEMPERATURE_CALIBRATION 0x03db /* temperature_calibration */ #define CSR_PSKEY_TEMPERATURE_VS_DELTA_INTERNAL_PA 0x03da /* temperature_calibration[] */ #define CSR_PSKEY_TEMPERATURE_VS_DELTA_TX_PRE_LVL 0x03d9 /* temperature_calibration[] */ #define CSR_PSKEY_TEMPERATURE_VS_DELTA_TX_BB 0x03d8 /* temperature_calibration[] */ #define CSR_PSKEY_TEMPERATURE_VS_DELTA_ANA_FTRIM 0x03d7 /* temperature_calibration[] */ #define CSR_PSKEY_TEST_DELTA_OFFSET 0x03d6 /* uint16 */ #define CSR_PSKEY_RX_DYNAMIC_LVL_OFFSET 0x03d4 /* uint16 */ #define CSR_PSKEY_TEST_FORCE_OFFSET 0x03d3 /* bool */ #define CSR_PSKEY_RF_TRAP_BAD_DIVISION_RATIOS 0x03cf /* uint16 */ #define CSR_PSKEY_RADIOTEST_CDMA_LO_REF_LIMITS 0x03ce /* uint16 */ #define CSR_PSKEY_INITIAL_BOOTMODE 0x03cd /* int16 */ #define CSR_PSKEY_ONCHIP_HCI_CLIENT 0x03cc /* bool */ #define CSR_PSKEY_RX_ATTEN_BACKOFF 0x03ca /* uint16 */ #define CSR_PSKEY_RX_ATTEN_UPDATE_RATE 0x03c9 /* uint16 */ #define CSR_PSKEY_SYNTH_TXRX_THRESHOLDS 0x03c7 /* uint16 */ #define CSR_PSKEY_MIN_WAIT_STATES 0x03c6 /* uint16 */ #define CSR_PSKEY_RSSI_CORRECTION 0x03c5 /* int8 */ #define CSR_PSKEY_SCHED_THROTTLE_TIMEOUT 0x03c4 /* TIME */ #define CSR_PSKEY_DEEP_SLEEP_USE_EXTERNAL_CLOCK 0x03c3 /* bool */ #define CSR_PSKEY_TRIM_RADIO_FILTERS 0x03c2 /* uint16 */ #define CSR_PSKEY_TRANSMIT_OFFSET 0x03c1 /* int16 */ #define CSR_PSKEY_USB_VM_CONTROL 0x03c0 /* bool */ #define CSR_PSKEY_MR_ANA_RX_FTRIM 0x03bf /* uint16 */ #define CSR_PSKEY_I2C_CONFIG 0x03be /* uint16 */ #define CSR_PSKEY_IQ_LVL_RX 0x03bd /* uint16 */ #define CSR_PSKEY_MR_TX_FILTER_CONFIG 0x03bb /* uint32 */ #define CSR_PSKEY_MR_TX_CONFIG2 0x03ba /* uint16 */ #define CSR_PSKEY_USB_DONT_RESET_BOOTMODE_ON_HOST_RESET 0x03b9 /* bool */ #define CSR_PSKEY_LC_USE_THROTTLING 0x03b8 /* bool */ #define CSR_PSKEY_CHARGER_TRIM 0x03b7 /* uint16 */ #define CSR_PSKEY_CLOCK_REQUEST_FEATURES 0x03b6 /* uint16 */ #define CSR_PSKEY_TRANSMIT_OFFSET_CLASS1 0x03b4 /* int16 */ #define CSR_PSKEY_TX_AVOID_PA_CLASS1_PIO 0x03b3 /* uint16 */ #define CSR_PSKEY_MR_PIO_CONFIG 0x03b2 /* uint16 */ #define CSR_PSKEY_UART_CONFIG2 0x03b1 /* uint8 */ #define CSR_PSKEY_CLASS1_IQ_LVL 0x03b0 /* uint16 */ #define CSR_PSKEY_CLASS1_TX_CONFIG2 0x03af /* uint16 */ #define CSR_PSKEY_TEMPERATURE_VS_DELTA_INTERNAL_PA_CLASS1 0x03ae /* temperature_calibration[] */ #define CSR_PSKEY_TEMPERATURE_VS_DELTA_EXTERNAL_PA_CLASS1 0x03ad /* temperature_calibration[] */ #define CSR_PSKEY_TEMPERATURE_VS_DELTA_TX_PRE_LVL_MR 0x03ac /* temperature_calibration[] */ #define CSR_PSKEY_TEMPERATURE_VS_DELTA_TX_BB_MR_HEADER 0x03ab /* temperature_calibration[] */ #define CSR_PSKEY_TEMPERATURE_VS_DELTA_TX_BB_MR_PAYLOAD 0x03aa /* temperature_calibration[] */ #define CSR_PSKEY_RX_MR_EQ_TAPS 0x03a9 /* uint16[] */ #define CSR_PSKEY_TX_PRE_LVL_CLASS1 0x03a8 /* uint8 */ #define CSR_PSKEY_ANALOGUE_ATTENUATOR 0x03a7 /* bool */ #define CSR_PSKEY_MR_RX_FILTER_TRIM 0x03a6 /* uint16 */ #define CSR_PSKEY_MR_RX_FILTER_RESPONSE 0x03a5 /* int16[] */ #define CSR_PSKEY_PIO_WAKEUP_STATE 0x039f /* uint16 */ #define CSR_PSKEY_MR_TX_IF_ATTEN_OFF_TEMP 0x0394 /* int16 */ #define CSR_PSKEY_LO_DIV_LATCH_BYPASS 0x0393 /* bool */ #define CSR_PSKEY_LO_VCO_STANDBY 0x0392 /* bool */ #define CSR_PSKEY_SLOW_CLOCK_FILTER_SHIFT 0x0391 /* uint16 */ #define CSR_PSKEY_SLOW_CLOCK_FILTER_DIVIDER 0x0390 /* uint16 */ #define CSR_PSKEY_USB_ATTRIBUTES_POWER 0x03f2 /* bool */ #define CSR_PSKEY_USB_ATTRIBUTES_WAKEUP 0x03f3 /* bool */ #define CSR_PSKEY_DFU_ATTRIBUTES_MANIFESTATION_TOLERANT 0x03f4 /* bool */ #define CSR_PSKEY_DFU_ATTRIBUTES_CAN_UPLOAD 0x03f5 /* bool */ #define CSR_PSKEY_DFU_ATTRIBUTES_CAN_DOWNLOAD 0x03f6 /* bool */ #define CSR_PSKEY_UART_CONFIG_STOP_BITS 0x03fc /* bool */ #define CSR_PSKEY_UART_CONFIG_PARITY_BIT 0x03fd /* uint16 */ #define CSR_PSKEY_UART_CONFIG_FLOW_CTRL_EN 0x03fe /* bool */ #define CSR_PSKEY_UART_CONFIG_RTS_AUTO_EN 0x03ff /* bool */ #define CSR_PSKEY_UART_CONFIG_RTS 0x0400 /* bool */ #define CSR_PSKEY_UART_CONFIG_TX_ZERO_EN 0x0401 /* bool */ #define CSR_PSKEY_UART_CONFIG_NON_BCSP_EN 0x0402 /* bool */ #define CSR_PSKEY_UART_CONFIG_RX_RATE_DELAY 0x0403 /* uint16 */ #define CSR_PSKEY_UART_SEQ_TIMEOUT 0x0405 /* uint16 */ #define CSR_PSKEY_UART_SEQ_RETRIES 0x0406 /* uint16 */ #define CSR_PSKEY_UART_SEQ_WINSIZE 0x0407 /* uint16 */ #define CSR_PSKEY_UART_USE_CRC_ON_TX 0x0408 /* bool */ #define CSR_PSKEY_UART_HOST_INITIAL_STATE 0x0409 /* hwakeup_state */ #define CSR_PSKEY_UART_HOST_ATTENTION_SPAN 0x040a /* uint16 */ #define CSR_PSKEY_UART_HOST_WAKEUP_TIME 0x040b /* uint16 */ #define CSR_PSKEY_UART_HOST_WAKEUP_WAIT 0x040c /* uint16 */ #define CSR_PSKEY_BCSP_LM_MODE 0x0410 /* uint16 */ #define CSR_PSKEY_BCSP_LM_SYNC_RETRIES 0x0411 /* uint16 */ #define CSR_PSKEY_BCSP_LM_TSHY 0x0412 /* uint16 */ #define CSR_PSKEY_UART_DFU_CONFIG_STOP_BITS 0x0417 /* bool */ #define CSR_PSKEY_UART_DFU_CONFIG_PARITY_BIT 0x0418 /* uint16 */ #define CSR_PSKEY_UART_DFU_CONFIG_FLOW_CTRL_EN 0x0419 /* bool */ #define CSR_PSKEY_UART_DFU_CONFIG_RTS_AUTO_EN 0x041a /* bool */ #define CSR_PSKEY_UART_DFU_CONFIG_RTS 0x041b /* bool */ #define CSR_PSKEY_UART_DFU_CONFIG_TX_ZERO_EN 0x041c /* bool */ #define CSR_PSKEY_UART_DFU_CONFIG_NON_BCSP_EN 0x041d /* bool */ #define CSR_PSKEY_UART_DFU_CONFIG_RX_RATE_DELAY 0x041e /* uint16 */ #define CSR_PSKEY_AMUX_AIO0 0x041f /* ana_amux_sel */ #define CSR_PSKEY_AMUX_AIO1 0x0420 /* ana_amux_sel */ #define CSR_PSKEY_AMUX_AIO2 0x0421 /* ana_amux_sel */ #define CSR_PSKEY_AMUX_AIO3 0x0422 /* ana_amux_sel */ #define CSR_PSKEY_LOCAL_NAME_SIMPLIFIED 0x0423 /* local_name_complete */ #define CSR_PSKEY_EXTENDED_STUB 0x2001 /* uint16 */ char *csr_builddeftostr(uint16_t def); char *csr_buildidtostr(uint16_t id); char *csr_chipvertostr(uint16_t ver, uint16_t rev); char *csr_pskeytostr(uint16_t pskey); char *csr_pskeytoval(uint16_t pskey); int csr_open_hci(char *device); int csr_read_hci(uint16_t varid, uint8_t *value, uint16_t length); int csr_write_hci(uint16_t varid, uint8_t *value, uint16_t length); void csr_close_hci(void); int csr_open_usb(char *device); int csr_read_usb(uint16_t varid, uint8_t *value, uint16_t length); int csr_write_usb(uint16_t varid, uint8_t *value, uint16_t length); void csr_close_usb(void); int csr_open_bcsp(char *device, speed_t bcsp_rate); int csr_read_bcsp(uint16_t varid, uint8_t *value, uint16_t length); int csr_write_bcsp(uint16_t varid, uint8_t *value, uint16_t length); void csr_close_bcsp(void); int csr_open_h4(char *device); int csr_read_h4(uint16_t varid, uint8_t *value, uint16_t length); int csr_write_h4(uint16_t varid, uint8_t *value, uint16_t length); void csr_close_h4(void); int csr_open_3wire(char *device); int csr_read_3wire(uint16_t varid, uint8_t *value, uint16_t length); int csr_write_3wire(uint16_t varid, uint8_t *value, uint16_t length); void csr_close_3wire(void); int csr_write_varid_valueless(int dd, uint16_t seqnum, uint16_t varid); int csr_write_varid_complex(int dd, uint16_t seqnum, uint16_t varid, uint8_t *value, uint16_t length); int csr_read_varid_complex(int dd, uint16_t seqnum, uint16_t varid, uint8_t *value, uint16_t length); int csr_read_varid_uint16(int dd, uint16_t seqnum, uint16_t varid, uint16_t *value); int csr_read_varid_uint32(int dd, uint16_t seqnum, uint16_t varid, uint32_t *value); int csr_read_pskey_complex(int dd, uint16_t seqnum, uint16_t pskey, uint16_t stores, uint8_t *value, uint16_t length); int csr_write_pskey_complex(int dd, uint16_t seqnum, uint16_t pskey, uint16_t stores, uint8_t *value, uint16_t length); int csr_read_pskey_uint16(int dd, uint16_t seqnum, uint16_t pskey, uint16_t stores, uint16_t *value); int csr_write_pskey_uint16(int dd, uint16_t seqnum, uint16_t pskey, uint16_t stores, uint16_t value); int csr_read_pskey_uint32(int dd, uint16_t seqnum, uint16_t pskey, uint16_t stores, uint32_t *value); int csr_write_pskey_uint32(int dd, uint16_t seqnum, uint16_t pskey, uint16_t stores, uint32_t value); int psr_put(uint16_t pskey, uint8_t *value, uint16_t size); int psr_get(uint16_t *pskey, uint8_t *value, uint16_t *size); int psr_read(const char *filename); int psr_print(void);