54 #define LIBBLADERF_API_VERSION (0x02040000) 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);
437 BLADERF_DEVICE_SPEED_UNKNOWN,
438 BLADERF_DEVICE_SPEED_HIGH,
439 BLADERF_DEVICE_SPEED_SUPER
663 #define BLADERF_CHANNEL_RX(ch) (bladerf_channel)(((ch) << 1) | 0x0) 678 #define BLADERF_CHANNEL_TX(ch) (bladerf_channel)(((ch) << 1) | 0x1) 683 #define BLADERF_CHANNEL_INVALID (bladerf_channel)(-1) 686 #define BLADERF_DIRECTION_MASK (0x1) 692 #define BLADERF_MODULE_INVALID BLADERF_CHANNEL_INVALID 693 #define BLADERF_MODULE_RX BLADERF_CHANNEL_RX(0) 694 #define BLADERF_MODULE_TX BLADERF_CHANNEL_TX(0) 700 #define BLADERF_CHANNEL_IS_TX(ch) (ch & BLADERF_TX) 799 #define BLADERF_GAIN_AUTOMATIC BLADERF_GAIN_DEFAULT 801 #define BLADERF_GAIN_MANUAL BLADERF_GAIN_MGC 1011 const char **stages,
1231 #define BLADERF_PRIuFREQ PRIu64 1233 #define BLADERF_PRIxFREQ PRIx64 1235 #define BLADERF_SCNuFREQ SCNu64 1237 #define BLADERF_SCNxFREQ SCNx64 1723 bool *fire_requested,
1772 #define BLADERF_RX_MUX_BASEBAND_LMS BLADERF_RX_MUX_BASEBAND 1823 #define BLADERF_RETUNE_NOW (bladerf_timestamp)0 1990 #define BLADERF_CORR_LMS_DCOFF_I BLADERF_CORR_DCOFF_I 1991 #define BLADERF_CORR_LMS_DCOFF_Q BLADERF_CORR_DCOFF_Q 1992 #define BLADERF_CORR_FPGA_PHASE BLADERF_CORR_PHASE 1993 #define BLADERF_CORR_FPGA_GAIN BLADERF_CORR_GAIN 2044 #define BLADERF_PRIuTS PRIu64 2046 #define BLADERF_PRIxTS PRIx64 2048 #define BLADERF_SCNuTS SCNu64 2050 #define BLADERF_SCNxTS SCNx64 2223 #define BLADERF_META_STATUS_OVERRUN (1 << 0) 2233 #define BLADERF_META_STATUS_UNDERRUN (1 << 1) 2256 #define BLADERF_META_FLAG_TX_BURST_START (1 << 0) 2284 #define BLADERF_META_FLAG_TX_BURST_END (1 << 1) 2294 #define BLADERF_META_FLAG_TX_NOW (1 << 2) 2314 #define BLADERF_META_FLAG_TX_UPDATE_TIMESTAMP (1 << 3) 2321 #define BLADERF_META_FLAG_RX_NOW (1 << 31) 2327 #define BLADERF_META_FLAG_RX_HW_UNDERFLOW (1 << 0) 2333 #define BLADERF_META_FLAG_RX_HW_MINIEXP1 (1 << 16) 2339 #define BLADERF_META_FLAG_RX_HW_MINIEXP2 (1 << 17) 2449 unsigned int buffer_size,
2477 unsigned int buffer_size,
2626 unsigned int num_buffers,
2627 unsigned int buffer_size,
2628 unsigned int num_transfers,
2629 unsigned int stream_timeout);
2666 const void *samples,
2667 unsigned int num_samples,
2669 unsigned int timeout_ms);
2707 unsigned int num_samples,
2709 unsigned int timeout_ms);
2734 #define BLADERF_STREAM_SHUTDOWN (NULL) 2741 #define BLADERF_STREAM_NO_DATA ((void *)(-1)) 2793 typedef void *(*bladerf_stream_cb)(
struct bladerf *dev,
2864 struct bladerf *dev,
2869 size_t samples_per_buffer,
2870 size_t num_transfers,
2927 unsigned int timeout_ms);
2977 unsigned int timeout);
2992 unsigned int *timeout);
3175 #define BLADERF_IMAGE_MAGIC_LEN 7 3178 #define BLADERF_IMAGE_CHECKSUM_LEN 32 3181 #define BLADERF_IMAGE_RESERVED_LEN 128 3569 #define BLADERF_TRIGGER_REG_ARM ((uint8_t)(1 << 0)) 3580 #define BLADERF_TRIGGER_REG_FIRE ((uint8_t)(1 << 1)) 3590 #define BLADERF_TRIGGER_REG_MASTER ((uint8_t)(1 << 2)) 3598 #define BLADERF_TRIGGER_REG_LINE ((uint8_t)(1 << 3)) 3711 uint32_t erase_block,
3926 unsigned int count);
4058 #define BLADERF_ERR_UNEXPECTED (-1) 4059 #define BLADERF_ERR_RANGE (-2) 4060 #define BLADERF_ERR_INVAL (-3) 4061 #define BLADERF_ERR_MEM (-4) 4062 #define BLADERF_ERR_IO (-5) 4063 #define BLADERF_ERR_TIMEOUT (-6) 4064 #define BLADERF_ERR_NODEV (-7) 4065 #define BLADERF_ERR_UNSUPPORTED (-8) 4066 #define BLADERF_ERR_MISALIGNED (-9) 4067 #define BLADERF_ERR_CHECKSUM (-10) 4068 #define BLADERF_ERR_NO_FILE (-11) 4069 #define BLADERF_ERR_UPDATE_FPGA (-12) 4070 #define BLADERF_ERR_UPDATE_FW (-13) 4071 #define BLADERF_ERR_TIME_PAST (-14) 4072 #define BLADERF_ERR_QUEUE_FULL (-15) 4074 #define BLADERF_ERR_FPGA_OP (-16) 4075 #define BLADERF_ERR_PERMISSION (-17) 4077 #define BLADERF_ERR_WOULD_BLOCK (-18) 4082 #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_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 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)
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_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)