54 #define LIBBLADERF_API_VERSION (0x02050000) 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 212 const char *device_identifier);
438 BLADERF_DEVICE_SPEED_UNKNOWN,
439 BLADERF_DEVICE_SPEED_HIGH,
440 BLADERF_DEVICE_SPEED_SUPER
664 #define BLADERF_CHANNEL_RX(ch) (bladerf_channel)(((ch) << 1) | 0x0) 679 #define BLADERF_CHANNEL_TX(ch) (bladerf_channel)(((ch) << 1) | 0x1) 684 #define BLADERF_CHANNEL_INVALID (bladerf_channel)(-1) 687 #define BLADERF_DIRECTION_MASK (0x1) 693 #define BLADERF_MODULE_INVALID BLADERF_CHANNEL_INVALID 694 #define BLADERF_MODULE_RX BLADERF_CHANNEL_RX(0) 695 #define BLADERF_MODULE_TX BLADERF_CHANNEL_TX(0) 701 #define BLADERF_CHANNEL_IS_TX(ch) (ch & BLADERF_TX) 800 #define BLADERF_GAIN_AUTOMATIC BLADERF_GAIN_DEFAULT 802 #define BLADERF_GAIN_MANUAL BLADERF_GAIN_MGC 1012 const char **stages,
1232 #define BLADERF_PRIuFREQ PRIu64 1234 #define BLADERF_PRIxFREQ PRIx64 1236 #define BLADERF_SCNuFREQ SCNu64 1238 #define BLADERF_SCNxFREQ SCNx64 1724 bool *fire_requested,
1773 #define BLADERF_RX_MUX_BASEBAND_LMS BLADERF_RX_MUX_BASEBAND 1824 #define BLADERF_RETUNE_NOW (bladerf_timestamp)0 1991 #define BLADERF_CORR_LMS_DCOFF_I BLADERF_CORR_DCOFF_I 1992 #define BLADERF_CORR_LMS_DCOFF_Q BLADERF_CORR_DCOFF_Q 1993 #define BLADERF_CORR_FPGA_PHASE BLADERF_CORR_PHASE 1994 #define BLADERF_CORR_FPGA_GAIN BLADERF_CORR_GAIN 2045 #define BLADERF_PRIuTS PRIu64 2047 #define BLADERF_PRIxTS PRIx64 2049 #define BLADERF_SCNuTS SCNu64 2051 #define BLADERF_SCNxTS SCNx64 2322 #define BLADERF_META_STATUS_OVERRUN (1 << 0) 2332 #define BLADERF_META_STATUS_UNDERRUN (1 << 1) 2355 #define BLADERF_META_FLAG_TX_BURST_START (1 << 0) 2383 #define BLADERF_META_FLAG_TX_BURST_END (1 << 1) 2393 #define BLADERF_META_FLAG_TX_NOW (1 << 2) 2413 #define BLADERF_META_FLAG_TX_UPDATE_TIMESTAMP (1 << 3) 2420 #define BLADERF_META_FLAG_RX_NOW (1 << 31) 2426 #define BLADERF_META_FLAG_RX_HW_UNDERFLOW (1 << 0) 2432 #define BLADERF_META_FLAG_RX_HW_MINIEXP1 (1 << 16) 2438 #define BLADERF_META_FLAG_RX_HW_MINIEXP2 (1 << 17) 2548 unsigned int buffer_size,
2576 unsigned int buffer_size,
2725 unsigned int num_buffers,
2726 unsigned int buffer_size,
2727 unsigned int num_transfers,
2728 unsigned int stream_timeout);
2765 const void *samples,
2766 unsigned int num_samples,
2768 unsigned int timeout_ms);
2806 unsigned int num_samples,
2808 unsigned int timeout_ms);
2833 #define BLADERF_STREAM_SHUTDOWN (NULL) 2840 #define BLADERF_STREAM_NO_DATA ((void *)(-1)) 2892 typedef void *(*bladerf_stream_cb)(
struct bladerf *dev,
2963 struct bladerf *dev,
2968 size_t samples_per_buffer,
2969 size_t num_transfers,
3026 unsigned int timeout_ms);
3076 unsigned int timeout);
3091 unsigned int *timeout);
3275 #define BLADERF_IMAGE_MAGIC_LEN 7 3278 #define BLADERF_IMAGE_CHECKSUM_LEN 32 3281 #define BLADERF_IMAGE_RESERVED_LEN 128 3669 #define BLADERF_TRIGGER_REG_ARM ((uint8_t)(1 << 0)) 3680 #define BLADERF_TRIGGER_REG_FIRE ((uint8_t)(1 << 1)) 3690 #define BLADERF_TRIGGER_REG_MASTER ((uint8_t)(1 << 2)) 3698 #define BLADERF_TRIGGER_REG_LINE ((uint8_t)(1 << 3)) 3850 uint32_t erase_block,
4065 unsigned int count);
4242 #define BLADERF_ERR_UNEXPECTED (-1) 4243 #define BLADERF_ERR_RANGE (-2) 4244 #define BLADERF_ERR_INVAL (-3) 4245 #define BLADERF_ERR_MEM (-4) 4246 #define BLADERF_ERR_IO (-5) 4247 #define BLADERF_ERR_TIMEOUT (-6) 4248 #define BLADERF_ERR_NODEV (-7) 4249 #define BLADERF_ERR_UNSUPPORTED (-8) 4250 #define BLADERF_ERR_MISALIGNED (-9) 4251 #define BLADERF_ERR_CHECKSUM (-10) 4252 #define BLADERF_ERR_NO_FILE (-11) 4253 #define BLADERF_ERR_UPDATE_FPGA (-12) 4254 #define BLADERF_ERR_UPDATE_FW (-13) 4255 #define BLADERF_ERR_TIME_PAST (-14) 4256 #define BLADERF_ERR_QUEUE_FULL (-15) 4258 #define BLADERF_ERR_FPGA_OP (-16) 4259 #define BLADERF_ERR_PERMISSION (-17) 4261 #define BLADERF_ERR_WOULD_BLOCK (-18) 4266 #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)
char magic[BLADERF_IMAGE_MAGIC_LEN+1]
char reserved[BLADERF_IMAGE_RESERVED_LEN]
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)
char serial[BLADERF_SERIAL_LENGTH+1]
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_wishbone_master_read(struct bladerf *dev, uint32_t addr, uint32_t *data)
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)
char serial[BLADERF_SERIAL_LENGTH]
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 int CALL_CONV bladerf_wishbone_master_write(struct bladerf *dev, uint32_t addr, uint32_t val)
API_EXPORT size_t CALL_CONV bladerf_get_channel_count(struct bladerf *dev, bladerf_direction dir)
API_EXPORT int CALL_CONV bladerf_get_feature(struct bladerf *dev, bladerf_feature *feature)
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)
uint8_t checksum[BLADERF_IMAGE_CHECKSUM_LEN]
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_enable_feature(struct bladerf *dev, bladerf_feature feature, bool enable)
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_get_backendinfo(struct bladerf *dev, struct bladerf_backendinfo *info)
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)