53 #define LIBBLADERF_API_VERSION (0x02010000) 70 #if defined _WIN32 || defined __CYGWIN__ 72 # define CALL_CONV __cdecl 74 # define API_EXPORT __attribute__ ((dllexport)) 76 # define API_EXPORT __declspec(dllexport) 78 #elif defined _DOXYGEN_ONLY_ || defined MATLAB_LINUX_THUNK_BUILD_ 86 # define API_EXPORT __attribute__ ((visibility ("default"))) 121 #define BLADERF_DESCRIPTION_LENGTH 33 124 #define BLADERF_SERIAL_LENGTH 33 201 const char *device_identifier);
412 BLADERF_DEVICE_SPEED_UNKNOWN,
413 BLADERF_DEVICE_SPEED_HIGH,
414 BLADERF_DEVICE_SPEED_SUPER
626 #define BLADERF_CHANNEL_RX(ch) (bladerf_channel)(((ch) << 1) | 0x0) 641 #define BLADERF_CHANNEL_TX(ch) (bladerf_channel)(((ch) << 1) | 0x1) 646 #define BLADERF_CHANNEL_INVALID (bladerf_channel)(-1) 649 #define BLADERF_DIRECTION_MASK (0x1) 654 typedef bladerf_channel bladerf_module;
655 #define BLADERF_MODULE_INVALID BLADERF_CHANNEL_INVALID 656 #define BLADERF_MODULE_RX BLADERF_CHANNEL_RX(0) 657 #define BLADERF_MODULE_TX BLADERF_CHANNEL_TX(0) 663 #define BLADERF_CHANNEL_IS_TX(ch) (ch & BLADERF_TX) 762 #define BLADERF_GAIN_AUTOMATIC BLADERF_GAIN_DEFAULT 764 #define BLADERF_GAIN_MANUAL BLADERF_GAIN_MGC 839 bladerf_gain_mode mode);
857 bladerf_gain_mode *mode);
1030 bladerf_sample_rate rate,
1031 bladerf_sample_rate *actual);
1065 bladerf_sample_rate *rate);
1136 bladerf_bandwidth bandwidth,
1137 bladerf_bandwidth *actual);
1151 bladerf_bandwidth *bandwidth);
1194 #define BLADERF_PRIuFREQ PRIu64 1196 #define BLADERF_PRIxFREQ PRIx64 1198 #define BLADERF_SCNuFREQ SCNu64 1200 #define BLADERF_SCNxFREQ SCNx64 1223 bladerf_frequency frequency);
1251 bladerf_frequency frequency);
1264 bladerf_frequency *frequency);
1377 struct bladerf *dev, bladerf_loopback mode);
1617 bladerf_trigger_signal signal,
1686 bool *fire_requested,
1735 #define BLADERF_RX_MUX_BASEBAND_LMS BLADERF_RX_MUX_BASEBAND 1786 #define BLADERF_RETUNE_NOW (bladerf_timestamp)0 1847 bladerf_timestamp timestamp,
1848 bladerf_frequency frequency,
1865 bladerf_channel ch);
1951 #define BLADERF_CORR_LMS_DCOFF_I BLADERF_CORR_DCOFF_I 1952 #define BLADERF_CORR_LMS_DCOFF_Q BLADERF_CORR_DCOFF_Q 1953 #define BLADERF_CORR_FPGA_PHASE BLADERF_CORR_PHASE 1954 #define BLADERF_CORR_FPGA_GAIN BLADERF_CORR_GAIN 1973 bladerf_correction corr,
1974 bladerf_correction_value value);
1989 bladerf_correction corr,
1990 bladerf_correction_value *value);
2005 #define BLADERF_PRIuTS PRIu64 2007 #define BLADERF_PRIxTS PRIx64 2009 #define BLADERF_SCNuTS SCNu64 2011 #define BLADERF_SCNxTS SCNx64 2138 #define BLADERF_META_STATUS_OVERRUN (1 << 0) 2148 #define BLADERF_META_STATUS_UNDERRUN (1 << 1) 2171 #define BLADERF_META_FLAG_TX_BURST_START (1 << 0) 2199 #define BLADERF_META_FLAG_TX_BURST_END (1 << 1) 2209 #define BLADERF_META_FLAG_TX_NOW (1 << 2) 2229 #define BLADERF_META_FLAG_TX_UPDATE_TIMESTAMP (1 << 3) 2236 #define BLADERF_META_FLAG_RX_NOW (1 << 31) 2242 #define BLADERF_META_FLAG_RX_HW_UNDERFLOW (1 << 0) 2248 #define BLADERF_META_FLAG_RX_HW_MINIEXP1 (1 << 16) 2254 #define BLADERF_META_FLAG_RX_HW_MINIEXP2 (1 << 17) 2312 uint8_t reserved[32];
2363 bladerf_format format,
2364 unsigned int buffer_size,
2391 bladerf_format format,
2392 unsigned int buffer_size,
2466 bladerf_timestamp *timestamp);
2540 bladerf_format format,
2541 unsigned int num_buffers,
2542 unsigned int buffer_size,
2543 unsigned int num_transfers,
2544 unsigned int stream_timeout);
2581 const void *samples,
2582 unsigned int num_samples,
2584 unsigned int timeout_ms);
2622 unsigned int num_samples,
2624 unsigned int timeout_ms);
2649 #define BLADERF_STREAM_SHUTDOWN (NULL) 2656 #define BLADERF_STREAM_NO_DATA ((void *)(-1)) 2708 typedef void *(*bladerf_stream_cb)(
struct bladerf *dev,
2779 struct bladerf *dev,
2783 bladerf_format format,
2784 size_t samples_per_buffer,
2785 size_t num_transfers,
2842 unsigned int timeout_ms);
2892 unsigned int timeout);
2907 unsigned int *timeout);
3088 #define BLADERF_IMAGE_MAGIC_LEN 7 3091 #define BLADERF_IMAGE_CHECKSUM_LEN 32 3094 #define BLADERF_IMAGE_RESERVED_LEN 128 3442 bladerf_tuning_mode mode);
3454 bladerf_tuning_mode *mode);
3478 #define BLADERF_TRIGGER_REG_ARM ((uint8_t)(1 << 0)) 3489 #define BLADERF_TRIGGER_REG_FIRE ((uint8_t)(1 << 1)) 3499 #define BLADERF_TRIGGER_REG_MASTER ((uint8_t)(1 << 2)) 3507 #define BLADERF_TRIGGER_REG_LINE ((uint8_t)(1 << 3)) 3524 bladerf_trigger_signal signal,
3541 bladerf_trigger_signal signal,
3616 uint32_t erase_block,
3719 unsigned int count);
3851 #define BLADERF_ERR_UNEXPECTED (-1) 3852 #define BLADERF_ERR_RANGE (-2) 3853 #define BLADERF_ERR_INVAL (-3) 3854 #define BLADERF_ERR_MEM (-4) 3855 #define BLADERF_ERR_IO (-5) 3856 #define BLADERF_ERR_TIMEOUT (-6) 3857 #define BLADERF_ERR_NODEV (-7) 3858 #define BLADERF_ERR_UNSUPPORTED (-8) 3859 #define BLADERF_ERR_MISALIGNED (-9) 3860 #define BLADERF_ERR_CHECKSUM (-10) 3861 #define BLADERF_ERR_NO_FILE (-11) 3862 #define BLADERF_ERR_UPDATE_FPGA (-12) 3863 #define BLADERF_ERR_UPDATE_FW (-13) 3864 #define BLADERF_ERR_TIME_PAST (-14) 3865 #define BLADERF_ERR_QUEUE_FULL (-15) 3867 #define BLADERF_ERR_FPGA_OP (-16) 3868 #define BLADERF_ERR_PERMISSION (-17) 3870 #define BLADERF_ERR_WOULD_BLOCK (-18) 3875 #define BLADERF_ERR_NOT_INIT (-19)
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 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 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 struct bladerf_image *CALL_CONV bladerf_alloc_cal_image(bladerf_fpga_size fpga_size, uint16_t vctcxo_trim)
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)
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_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_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)
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 struct bladerf_image *CALL_CONV bladerf_alloc_image(bladerf_image_type type, uint32_t address, uint32_t length)
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_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 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_image_write(struct bladerf_image *image, const char *file)
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_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)