54 #define LIBBLADERF_API_VERSION (0x02020100) 71 #if defined _WIN32 || defined __CYGWIN__ 73 # define CALL_CONV __cdecl 75 # define API_EXPORT __attribute__ ((dllexport)) 77 # define API_EXPORT __declspec(dllexport) 79 #elif defined _DOXYGEN_ONLY_ || defined MATLAB_LINUX_THUNK_BUILD_ 87 # define API_EXPORT __attribute__ ((visibility ("default"))) 122 #define BLADERF_DESCRIPTION_LENGTH 33 125 #define BLADERF_SERIAL_LENGTH 33 202 const char *device_identifier);
413 BLADERF_DEVICE_SPEED_UNKNOWN,
414 BLADERF_DEVICE_SPEED_HIGH,
415 BLADERF_DEVICE_SPEED_SUPER
639 #define BLADERF_CHANNEL_RX(ch) (bladerf_channel)(((ch) << 1) | 0x0) 654 #define BLADERF_CHANNEL_TX(ch) (bladerf_channel)(((ch) << 1) | 0x1) 659 #define BLADERF_CHANNEL_INVALID (bladerf_channel)(-1) 662 #define BLADERF_DIRECTION_MASK (0x1) 667 typedef bladerf_channel bladerf_module;
668 #define BLADERF_MODULE_INVALID BLADERF_CHANNEL_INVALID 669 #define BLADERF_MODULE_RX BLADERF_CHANNEL_RX(0) 670 #define BLADERF_MODULE_TX BLADERF_CHANNEL_TX(0) 676 #define BLADERF_CHANNEL_IS_TX(ch) (ch & BLADERF_TX) 775 #define BLADERF_GAIN_AUTOMATIC BLADERF_GAIN_DEFAULT 777 #define BLADERF_GAIN_MANUAL BLADERF_GAIN_MGC 852 bladerf_gain_mode mode);
870 bladerf_gain_mode *mode);
1043 bladerf_sample_rate rate,
1044 bladerf_sample_rate *actual);
1078 bladerf_sample_rate *rate);
1149 bladerf_bandwidth bandwidth,
1150 bladerf_bandwidth *actual);
1164 bladerf_bandwidth *bandwidth);
1207 #define BLADERF_PRIuFREQ PRIu64 1209 #define BLADERF_PRIxFREQ PRIx64 1211 #define BLADERF_SCNuFREQ SCNu64 1213 #define BLADERF_SCNxFREQ SCNx64 1236 bladerf_frequency frequency);
1264 bladerf_frequency frequency);
1277 bladerf_frequency *frequency);
1390 struct bladerf *dev, bladerf_loopback mode);
1630 bladerf_trigger_signal signal,
1699 bool *fire_requested,
1748 #define BLADERF_RX_MUX_BASEBAND_LMS BLADERF_RX_MUX_BASEBAND 1799 #define BLADERF_RETUNE_NOW (bladerf_timestamp)0 1863 bladerf_timestamp timestamp,
1864 bladerf_frequency frequency,
1881 bladerf_channel ch);
1967 #define BLADERF_CORR_LMS_DCOFF_I BLADERF_CORR_DCOFF_I 1968 #define BLADERF_CORR_LMS_DCOFF_Q BLADERF_CORR_DCOFF_Q 1969 #define BLADERF_CORR_FPGA_PHASE BLADERF_CORR_PHASE 1970 #define BLADERF_CORR_FPGA_GAIN BLADERF_CORR_GAIN 1989 bladerf_correction corr,
1990 bladerf_correction_value value);
2005 bladerf_correction corr,
2006 bladerf_correction_value *value);
2021 #define BLADERF_PRIuTS PRIu64 2023 #define BLADERF_PRIxTS PRIx64 2025 #define BLADERF_SCNuTS SCNu64 2027 #define BLADERF_SCNxTS SCNx64 2154 #define BLADERF_META_STATUS_OVERRUN (1 << 0) 2164 #define BLADERF_META_STATUS_UNDERRUN (1 << 1) 2187 #define BLADERF_META_FLAG_TX_BURST_START (1 << 0) 2215 #define BLADERF_META_FLAG_TX_BURST_END (1 << 1) 2225 #define BLADERF_META_FLAG_TX_NOW (1 << 2) 2245 #define BLADERF_META_FLAG_TX_UPDATE_TIMESTAMP (1 << 3) 2252 #define BLADERF_META_FLAG_RX_NOW (1 << 31) 2258 #define BLADERF_META_FLAG_RX_HW_UNDERFLOW (1 << 0) 2264 #define BLADERF_META_FLAG_RX_HW_MINIEXP1 (1 << 16) 2270 #define BLADERF_META_FLAG_RX_HW_MINIEXP2 (1 << 17) 2328 uint8_t reserved[32];
2379 bladerf_format format,
2380 unsigned int buffer_size,
2407 bladerf_format format,
2408 unsigned int buffer_size,
2482 bladerf_timestamp *timestamp);
2556 bladerf_format format,
2557 unsigned int num_buffers,
2558 unsigned int buffer_size,
2559 unsigned int num_transfers,
2560 unsigned int stream_timeout);
2597 const void *samples,
2598 unsigned int num_samples,
2600 unsigned int timeout_ms);
2638 unsigned int num_samples,
2640 unsigned int timeout_ms);
2665 #define BLADERF_STREAM_SHUTDOWN (NULL) 2672 #define BLADERF_STREAM_NO_DATA ((void *)(-1)) 2724 typedef void *(*bladerf_stream_cb)(
struct bladerf *dev,
2795 struct bladerf *dev,
2799 bladerf_format format,
2800 size_t samples_per_buffer,
2801 size_t num_transfers,
2858 unsigned int timeout_ms);
2908 unsigned int timeout);
2923 unsigned int *timeout);
3106 #define BLADERF_IMAGE_MAGIC_LEN 7 3109 #define BLADERF_IMAGE_CHECKSUM_LEN 32 3112 #define BLADERF_IMAGE_RESERVED_LEN 128 3209 bladerf_image_type
type,
3464 bladerf_tuning_mode mode);
3476 bladerf_tuning_mode *mode);
3500 #define BLADERF_TRIGGER_REG_ARM ((uint8_t)(1 << 0)) 3511 #define BLADERF_TRIGGER_REG_FIRE ((uint8_t)(1 << 1)) 3521 #define BLADERF_TRIGGER_REG_MASTER ((uint8_t)(1 << 2)) 3529 #define BLADERF_TRIGGER_REG_LINE ((uint8_t)(1 << 3)) 3546 bladerf_trigger_signal signal,
3563 bladerf_trigger_signal signal,
3642 uint32_t erase_block,
3857 unsigned int count);
3989 #define BLADERF_ERR_UNEXPECTED (-1) 3990 #define BLADERF_ERR_RANGE (-2) 3991 #define BLADERF_ERR_INVAL (-3) 3992 #define BLADERF_ERR_MEM (-4) 3993 #define BLADERF_ERR_IO (-5) 3994 #define BLADERF_ERR_TIMEOUT (-6) 3995 #define BLADERF_ERR_NODEV (-7) 3996 #define BLADERF_ERR_UNSUPPORTED (-8) 3997 #define BLADERF_ERR_MISALIGNED (-9) 3998 #define BLADERF_ERR_CHECKSUM (-10) 3999 #define BLADERF_ERR_NO_FILE (-11) 4000 #define BLADERF_ERR_UPDATE_FPGA (-12) 4001 #define BLADERF_ERR_UPDATE_FW (-13) 4002 #define BLADERF_ERR_TIME_PAST (-14) 4003 #define BLADERF_ERR_QUEUE_FULL (-15) 4005 #define BLADERF_ERR_FPGA_OP (-16) 4006 #define BLADERF_ERR_PERMISSION (-17) 4008 #define BLADERF_ERR_WOULD_BLOCK (-18) 4013 #define BLADERF_ERR_NOT_INIT (-19)
API_EXPORT int CALL_CONV bladerf_lock_otp(struct bladerf *dev)
API_EXPORT int CALL_CONV bladerf_set_rx_mux(struct bladerf *dev, bladerf_rx_mux mux)
API_EXPORT const char *CALL_CONV bladerf_backend_str(bladerf_backend backend)
API_EXPORT int CALL_CONV bladerf_image_read(struct bladerf_image *image, const char *file)
API_EXPORT int CALL_CONV bladerf_get_correction(struct bladerf *dev, bladerf_channel ch, bladerf_correction corr, bladerf_correction_value *value)
API_EXPORT int CALL_CONV bladerf_get_gain_mode(struct bladerf *dev, bladerf_channel ch, bladerf_gain_mode *mode)
API_EXPORT int CALL_CONV bladerf_get_fpga_size(struct bladerf *dev, bladerf_fpga_size *size)
API_EXPORT int CALL_CONV bladerf_get_rx_mux(struct bladerf *dev, bladerf_rx_mux *mode)
API_EXPORT int CALL_CONV bladerf_write_otp(struct bladerf *dev, uint8_t *buf)
API_EXPORT bool CALL_CONV bladerf_devinfo_matches(const struct bladerf_devinfo *a, const struct bladerf_devinfo *b)
API_EXPORT int CALL_CONV bladerf_get_tuning_mode(struct bladerf *dev, bladerf_tuning_mode *mode)
API_EXPORT int CALL_CONV bladerf_load_fpga(struct bladerf *dev, const char *fpga)
API_EXPORT int CALL_CONV bladerf_read_otp(struct bladerf *dev, uint8_t *buf)
API_EXPORT void CALL_CONV bladerf_log_set_verbosity(bladerf_log_level level)
API_EXPORT void CALL_CONV bladerf_deinit_stream(struct bladerf_stream *stream)
API_EXPORT void CALL_CONV bladerf_set_usb_reset_on_open(bool enabled)
API_EXPORT void CALL_CONV bladerf_version(struct bladerf_version *version)
API_EXPORT int CALL_CONV bladerf_get_gain_stage_range(struct bladerf *dev, bladerf_channel ch, const char *stage, const struct bladerf_range **range)
API_EXPORT int CALL_CONV bladerf_erase_flash(struct bladerf *dev, uint32_t erase_block, uint32_t count)
API_EXPORT int CALL_CONV bladerf_interleave_stream_buffer(bladerf_channel_layout layout, bladerf_format format, unsigned int buffer_size, void *samples)
API_EXPORT int CALL_CONV bladerf_get_rf_ports(struct bladerf *dev, bladerf_channel ch, const char **ports, unsigned int count)
API_EXPORT int CALL_CONV bladerf_get_stream_timeout(struct bladerf *dev, bladerf_direction dir, unsigned int *timeout)
bladerf_trigger_signal signal
API_EXPORT int CALL_CONV bladerf_set_rational_sample_rate(struct bladerf *dev, bladerf_channel ch, struct bladerf_rational_rate *rate, struct bladerf_rational_rate *actual)
API_EXPORT bool CALL_CONV bladerf_is_loopback_mode_supported(struct bladerf *dev, bladerf_loopback mode)
API_EXPORT bool CALL_CONV bladerf_devstr_matches(const char *dev_str, struct bladerf_devinfo *info)
API_EXPORT int CALL_CONV bladerf_get_loopback_modes(struct bladerf *dev, const struct bladerf_loopback_modes **modes)
API_EXPORT int CALL_CONV bladerf_is_fpga_configured(struct bladerf *dev)
uint64_t bladerf_timestamp
API_EXPORT int CALL_CONV bladerf_get_devinfo_from_str(const char *devstr, struct bladerf_devinfo *info)
API_EXPORT int CALL_CONV bladerf_trigger_arm(struct bladerf *dev, const struct bladerf_trigger *trigger, bool arm, uint64_t resv1, uint64_t resv2)
API_EXPORT int CALL_CONV bladerf_get_sample_rate_range(struct bladerf *dev, bladerf_channel ch, const struct bladerf_range **range)
API_EXPORT int CALL_CONV bladerf_get_rf_port(struct bladerf *dev, bladerf_channel ch, const char **port)
API_EXPORT bladerf_dev_speed CALL_CONV bladerf_device_speed(struct bladerf *dev)
API_EXPORT int CALL_CONV bladerf_get_device_list(struct bladerf_devinfo **devices)
void *(* bladerf_stream_cb)(struct bladerf *dev, struct bladerf_stream *stream, struct bladerf_metadata *meta, void *samples, size_t num_samples, void *user_data)
#define BLADERF_DESCRIPTION_LENGTH
API_EXPORT int CALL_CONV bladerf_get_flash_size(struct bladerf *dev, uint32_t *size, bool *is_guess)
API_EXPORT int CALL_CONV bladerf_set_sample_rate(struct bladerf *dev, bladerf_channel ch, bladerf_sample_rate rate, bladerf_sample_rate *actual)
API_EXPORT const char *CALL_CONV bladerf_strerror(int error)
API_EXPORT int CALL_CONV bladerf_trigger_init(struct bladerf *dev, bladerf_channel ch, bladerf_trigger_signal signal, struct bladerf_trigger *trigger)
API_EXPORT int CALL_CONV bladerf_fpga_version(struct bladerf *dev, struct bladerf_version *version)
char manufacturer[BLADERF_DESCRIPTION_LENGTH]
API_EXPORT int CALL_CONV bladerf_get_quick_tune(struct bladerf *dev, bladerf_channel ch, struct bladerf_quick_tune *quick_tune)
bladerf_vctcxo_tamer_mode
API_EXPORT int CALL_CONV bladerf_get_rational_sample_rate(struct bladerf *dev, bladerf_channel ch, struct bladerf_rational_rate *rate)
API_EXPORT int CALL_CONV bladerf_cancel_scheduled_retunes(struct bladerf *dev, bladerf_channel ch)
API_EXPORT int CALL_CONV bladerf_set_frequency(struct bladerf *dev, bladerf_channel ch, bladerf_frequency frequency)
API_EXPORT int CALL_CONV bladerf_sync_tx(struct bladerf *dev, const void *samples, unsigned int num_samples, struct bladerf_metadata *metadata, unsigned int timeout_ms)
API_EXPORT int CALL_CONV bladerf_erase_flash_bytes(struct bladerf *dev, uint32_t address, uint32_t length)
unsigned int bladerf_sample_rate
API_EXPORT int CALL_CONV bladerf_config_gpio_write(struct bladerf *dev, uint32_t val)
API_EXPORT int CALL_CONV bladerf_get_bandwidth_range(struct bladerf *dev, bladerf_channel ch, const struct bladerf_range **range)
API_EXPORT int CALL_CONV bladerf_get_fpga_source(struct bladerf *dev, bladerf_fpga_source *source)
API_EXPORT int CALL_CONV bladerf_set_bandwidth(struct bladerf *dev, bladerf_channel ch, bladerf_bandwidth bandwidth, bladerf_bandwidth *actual)
API_EXPORT int CALL_CONV bladerf_read_flash(struct bladerf *dev, uint8_t *buf, uint32_t page, uint32_t count)
API_EXPORT int CALL_CONV bladerf_image_write(struct bladerf *dev, struct bladerf_image *image, const char *file)
API_EXPORT int CALL_CONV bladerf_read_trigger(struct bladerf *dev, bladerf_channel ch, bladerf_trigger_signal signal, uint8_t *val)
API_EXPORT int CALL_CONV bladerf_trigger_fire(struct bladerf *dev, const struct bladerf_trigger *trigger)
API_EXPORT int CALL_CONV bladerf_jump_to_bootloader(struct bladerf *dev)
API_EXPORT int CALL_CONV bladerf_get_vctcxo_tamer_mode(struct bladerf *dev, bladerf_vctcxo_tamer_mode *mode)
API_EXPORT int CALL_CONV bladerf_read_flash_bytes(struct bladerf *dev, uint8_t *buf, uint32_t address, uint32_t bytes)
API_EXPORT int CALL_CONV bladerf_flash_firmware(struct bladerf *dev, const char *firmware)
API_EXPORT int CALL_CONV bladerf_set_gain_mode(struct bladerf *dev, bladerf_channel ch, bladerf_gain_mode mode)
uint64_t bladerf_frequency
API_EXPORT int CALL_CONV bladerf_flash_fpga(struct bladerf *dev, const char *fpga_image)
API_EXPORT int CALL_CONV bladerf_get_bootloader_list(struct bladerf_devinfo **list)
API_EXPORT int CALL_CONV bladerf_schedule_retune(struct bladerf *dev, bladerf_channel ch, bladerf_timestamp timestamp, bladerf_frequency frequency, struct bladerf_quick_tune *quick_tune)
API_EXPORT struct bladerf_image *CALL_CONV bladerf_alloc_cal_image(struct bladerf *dev, bladerf_fpga_size fpga_size, uint16_t vctcxo_trim)
unsigned int bladerf_bandwidth
API_EXPORT int CALL_CONV bladerf_set_loopback(struct bladerf *dev, bladerf_loopback lb)
API_EXPORT int CALL_CONV bladerf_set_gain(struct bladerf *dev, bladerf_channel ch, bladerf_gain gain)
API_EXPORT const char *CALL_CONV bladerf_get_board_name(struct bladerf *dev)
#define BLADERF_IMAGE_CHECKSUM_LEN
API_EXPORT int CALL_CONV bladerf_set_gain_stage(struct bladerf *dev, bladerf_channel ch, const char *stage, bladerf_gain gain)
API_EXPORT int CALL_CONV bladerf_device_reset(struct bladerf *dev)
API_EXPORT size_t CALL_CONV bladerf_get_channel_count(struct bladerf *dev, bladerf_direction dir)
API_EXPORT int CALL_CONV bladerf_set_vctcxo_tamer_mode(struct bladerf *dev, bladerf_vctcxo_tamer_mode mode)
API_EXPORT int CALL_CONV bladerf_submit_stream_buffer_nb(struct bladerf_stream *stream, void *buffer)
API_EXPORT int CALL_CONV bladerf_get_gain_range(struct bladerf *dev, bladerf_channel ch, const struct bladerf_range **range)
API_EXPORT int CALL_CONV bladerf_open(struct bladerf **device, const char *device_identifier)
char product[BLADERF_DESCRIPTION_LENGTH]
API_EXPORT int CALL_CONV bladerf_expansion_get_attached(struct bladerf *dev, bladerf_xb *xb)
API_EXPORT int CALL_CONV bladerf_init_stream(struct bladerf_stream **stream, struct bladerf *dev, bladerf_stream_cb callback, void ***buffers, size_t num_buffers, bladerf_format format, size_t samples_per_buffer, size_t num_transfers, void *user_data)
API_EXPORT int CALL_CONV bladerf_get_devinfo(struct bladerf *dev, struct bladerf_devinfo *info)
API_EXPORT void CALL_CONV bladerf_free_image(struct bladerf_image *image)
#define BLADERF_IMAGE_RESERVED_LEN
int16_t bladerf_correction_value
API_EXPORT int CALL_CONV bladerf_get_frequency_range(struct bladerf *dev, bladerf_channel ch, const struct bladerf_range **range)
API_EXPORT int CALL_CONV bladerf_stream(struct bladerf_stream *stream, bladerf_channel_layout layout)
API_EXPORT int CALL_CONV bladerf_fw_version(struct bladerf *dev, struct bladerf_version *version)
API_EXPORT int CALL_CONV bladerf_write_trigger(struct bladerf *dev, bladerf_channel ch, bladerf_trigger_signal signal, uint8_t val)
API_EXPORT void CALL_CONV bladerf_init_devinfo(struct bladerf_devinfo *info)
API_EXPORT int CALL_CONV bladerf_get_vctcxo_trim(struct bladerf *dev, uint16_t *trim)
API_EXPORT int CALL_CONV bladerf_sync_config(struct bladerf *dev, bladerf_channel_layout layout, bladerf_format format, unsigned int num_buffers, unsigned int buffer_size, unsigned int num_transfers, unsigned int stream_timeout)
API_EXPORT int CALL_CONV bladerf_get_serial(struct bladerf *dev, char *serial)
API_EXPORT int CALL_CONV bladerf_erase_stored_fpga(struct bladerf *dev)
API_EXPORT int CALL_CONV bladerf_get_gain_stages(struct bladerf *dev, bladerf_channel ch, const char **stages, size_t count)
API_EXPORT int CALL_CONV bladerf_write_flash_bytes(struct bladerf *dev, const uint8_t *buf, uint32_t address, uint32_t length)
API_EXPORT int CALL_CONV bladerf_get_gain(struct bladerf *dev, bladerf_channel ch, bladerf_gain *gain)
API_EXPORT int CALL_CONV bladerf_write_flash(struct bladerf *dev, const uint8_t *buf, uint32_t page, uint32_t count)
API_EXPORT int CALL_CONV bladerf_trim_dac_read(struct bladerf *dev, uint16_t *val)
API_EXPORT int CALL_CONV bladerf_get_timestamp(struct bladerf *dev, bladerf_direction dir, bladerf_timestamp *timestamp)
API_EXPORT int CALL_CONV bladerf_select_band(struct bladerf *dev, bladerf_channel ch, bladerf_frequency frequency)
API_EXPORT void CALL_CONV bladerf_free_device_list(struct bladerf_devinfo *devices)
API_EXPORT struct bladerf_image *CALL_CONV bladerf_alloc_image(struct bladerf *dev, bladerf_image_type type, uint32_t address, uint32_t length)
API_EXPORT int CALL_CONV bladerf_get_gain_modes(struct bladerf *dev, bladerf_channel ch, const struct bladerf_gain_modes **modes)
API_EXPORT int CALL_CONV bladerf_get_sample_rate(struct bladerf *dev, bladerf_channel ch, bladerf_sample_rate *rate)
bladerf_trigger_role role
API_EXPORT int CALL_CONV bladerf_deinterleave_stream_buffer(bladerf_channel_layout layout, bladerf_format format, unsigned int buffer_size, void *samples)
API_EXPORT int CALL_CONV bladerf_get_fpga_bytes(struct bladerf *dev, size_t *size)
API_EXPORT int CALL_CONV bladerf_get_frequency(struct bladerf *dev, bladerf_channel ch, bladerf_frequency *frequency)
#define BLADERF_SERIAL_LENGTH
API_EXPORT int CALL_CONV bladerf_config_gpio_read(struct bladerf *dev, uint32_t *val)
API_EXPORT int CALL_CONV bladerf_set_stream_timeout(struct bladerf *dev, bladerf_direction dir, unsigned int timeout)
API_EXPORT int CALL_CONV bladerf_open_with_devinfo(struct bladerf **device, struct bladerf_devinfo *devinfo)
API_EXPORT int CALL_CONV bladerf_enable_module(struct bladerf *dev, bladerf_channel ch, bool enable)
API_EXPORT int CALL_CONV bladerf_set_tuning_mode(struct bladerf *dev, bladerf_tuning_mode mode)
API_EXPORT int CALL_CONV bladerf_get_bandwidth(struct bladerf *dev, bladerf_channel ch, bladerf_bandwidth *bandwidth)
API_EXPORT void CALL_CONV bladerf_close(struct bladerf *device)
struct bladerf_version version
API_EXPORT int CALL_CONV bladerf_get_loopback(struct bladerf *dev, bladerf_loopback *lb)
API_EXPORT int CALL_CONV bladerf_trigger_state(struct bladerf *dev, const struct bladerf_trigger *trigger, bool *is_armed, bool *has_fired, bool *fire_requested, uint64_t *resv1, uint64_t *resv2)
API_EXPORT int CALL_CONV bladerf_load_fw_from_bootloader(const char *device_identifier, bladerf_backend backend, uint8_t bus, uint8_t addr, const char *file)
API_EXPORT int CALL_CONV bladerf_submit_stream_buffer(struct bladerf_stream *stream, void *buffer, unsigned int timeout_ms)
char serial[BLADERF_SERIAL_LENGTH]
API_EXPORT int CALL_CONV bladerf_set_correction(struct bladerf *dev, bladerf_channel ch, bladerf_correction corr, bladerf_correction_value value)
API_EXPORT int CALL_CONV bladerf_set_rf_port(struct bladerf *dev, bladerf_channel ch, const char *port)
API_EXPORT int CALL_CONV bladerf_sync_rx(struct bladerf *dev, void *samples, unsigned int num_samples, struct bladerf_metadata *metadata, unsigned int timeout_ms)
API_EXPORT int CALL_CONV bladerf_trim_dac_write(struct bladerf *dev, uint16_t val)
API_EXPORT int CALL_CONV bladerf_expansion_attach(struct bladerf *dev, bladerf_xb xb)
API_EXPORT int CALL_CONV bladerf_get_gain_stage(struct bladerf *dev, bladerf_channel ch, const char *stage, bladerf_gain *gain)
API_EXPORT int CALL_CONV bladerf_get_fw_log(struct bladerf *dev, const char *filename)
#define BLADERF_IMAGE_MAGIC_LEN
API_EXPORT int CALL_CONV bladerf_get_serial_struct(struct bladerf *dev, struct bladerf_serial *serial)