libbladeRF  2.4.0-git
Nuand bladeRF library
libbladeRF.h
Go to the documentation of this file.
1 
22 #ifndef LIBBLADERF_H_
23 #define LIBBLADERF_H_
24 
25 #include <inttypes.h>
26 #include <stdint.h>
27 #include <stdlib.h>
28 
54 #define LIBBLADERF_API_VERSION (0x02040000)
55 
56 #ifdef __cplusplus
57 extern "C" {
58 #else
59 
67 #include <stdbool.h>
68 #endif
69 
70 // clang-format off
71 #if defined _WIN32 || defined __CYGWIN__
72 # include <windows.h>
73 # define CALL_CONV __cdecl
74 # ifdef __GNUC__
75 # define API_EXPORT __attribute__ ((dllexport))
76 # else
77 # define API_EXPORT __declspec(dllexport)
78 # endif
79 #elif defined _DOXYGEN_ONLY_ || defined MATLAB_LINUX_THUNK_BUILD_
80 
82 # define API_EXPORT
83 
85 # define CALL_CONV
86 #else
87 # define API_EXPORT __attribute__ ((visibility ("default")))
88 # define CALL_CONV
89 #endif
90 // clang-format on
91 
107 struct bladerf;
108 
112 typedef enum {
120 
122 #define BLADERF_DESCRIPTION_LENGTH 33
123 
125 #define BLADERF_SERIAL_LENGTH 33
126 
134  uint8_t usb_bus;
135  uint8_t usb_addr;
136  unsigned int instance;
141 };
142 
148  void *handle;
150  void *lock;
151 };
152 
211 int CALL_CONV bladerf_open(struct bladerf **device,
212  const char *device_identifier);
213 
225 void CALL_CONV bladerf_close(struct bladerf *device);
226 
249 int CALL_CONV bladerf_open_with_devinfo(struct bladerf **device,
250  struct bladerf_devinfo *devinfo);
251 
262 
270 
281 
293 int CALL_CONV bladerf_get_devinfo(struct bladerf *dev,
294  struct bladerf_devinfo *info);
295 
296 
308 int CALL_CONV bladerf_get_backendinfo(struct bladerf *dev,
309  struct bladerf_backendinfo *info);
323 int CALL_CONV bladerf_get_devinfo_from_str(const char *devstr,
324  struct bladerf_devinfo *info);
325 
335  const struct bladerf_devinfo *b);
336 
348 bool CALL_CONV bladerf_devstr_matches(const char *dev_str,
349  struct bladerf_devinfo *info);
350 
359 const char *CALL_CONV bladerf_backend_str(bladerf_backend backend);
360 
375 void CALL_CONV bladerf_set_usb_reset_on_open(bool enabled);
376 
394  int64_t min;
395  int64_t max;
396  int64_t step;
397  float scale;
398 };
399 
405 };
406 
411  uint16_t major;
412  uint16_t minor;
413  uint16_t patch;
414  const char *describe;
419 };
420 
424 typedef enum {
431 
436 typedef enum {
437  BLADERF_DEVICE_SPEED_UNKNOWN,
438  BLADERF_DEVICE_SPEED_HIGH,
439  BLADERF_DEVICE_SPEED_SUPER
441 
448 typedef enum {
453 
469 int CALL_CONV bladerf_get_serial(struct bladerf *dev, char *serial);
470 
494 int CALL_CONV bladerf_get_serial_struct(struct bladerf *dev,
495  struct bladerf_serial *serial);
496 
507 int CALL_CONV bladerf_get_fpga_size(struct bladerf *dev,
508  bladerf_fpga_size *size);
509 
520 int CALL_CONV bladerf_get_fpga_bytes(struct bladerf *dev, size_t *size);
521 
536 int CALL_CONV bladerf_get_flash_size(struct bladerf *dev,
537  uint32_t *size,
538  bool *is_guess);
539 
550 int CALL_CONV bladerf_fw_version(struct bladerf *dev,
551  struct bladerf_version *version);
552 
562 int CALL_CONV bladerf_is_fpga_configured(struct bladerf *dev);
563 
573 int CALL_CONV bladerf_fpga_version(struct bladerf *dev,
574  struct bladerf_version *version);
575 
591 int CALL_CONV bladerf_get_fpga_source(struct bladerf *dev,
592  bladerf_fpga_source *source);
593 
603 
613 const char *CALL_CONV bladerf_get_board_name(struct bladerf *dev);
614 
648 typedef int bladerf_channel;
649 
663 #define BLADERF_CHANNEL_RX(ch) (bladerf_channel)(((ch) << 1) | 0x0)
664 
678 #define BLADERF_CHANNEL_TX(ch) (bladerf_channel)(((ch) << 1) | 0x1)
679 
683 #define BLADERF_CHANNEL_INVALID (bladerf_channel)(-1)
684 
686 #define BLADERF_DIRECTION_MASK (0x1)
687 
690 /* Backwards compatible mapping to `bladerf_module`. */
691 typedef bladerf_channel bladerf_module;
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)
695 
700 #define BLADERF_CHANNEL_IS_TX(ch) (ch & BLADERF_TX)
701 
705 typedef enum {
709 
713 typedef enum {
719 
729 size_t CALL_CONV bladerf_get_channel_count(struct bladerf *dev,
730  bladerf_direction dir);
731 
747 typedef int bladerf_gain;
748 
759 typedef enum {
769 
775 
782 
789 
797 
799 #define BLADERF_GAIN_AUTOMATIC BLADERF_GAIN_DEFAULT
800 
801 #define BLADERF_GAIN_MANUAL BLADERF_GAIN_MGC
802 
807  const char *name;
809 };
810 
837 int CALL_CONV bladerf_set_gain(struct bladerf *dev,
838  bladerf_channel ch,
839  bladerf_gain gain);
840 
851 int CALL_CONV bladerf_get_gain(struct bladerf *dev,
852  bladerf_channel ch,
853  bladerf_gain *gain);
854 
874 int CALL_CONV bladerf_set_gain_mode(struct bladerf *dev,
875  bladerf_channel ch,
876  bladerf_gain_mode mode);
877 
892 int CALL_CONV bladerf_get_gain_mode(struct bladerf *dev,
893  bladerf_channel ch,
894  bladerf_gain_mode *mode);
895 
915 int CALL_CONV bladerf_get_gain_modes(struct bladerf *dev,
916  bladerf_channel ch,
917  const struct bladerf_gain_modes **modes);
918 
932 int CALL_CONV bladerf_get_gain_range(struct bladerf *dev,
933  bladerf_channel ch,
934  const struct bladerf_range **range);
935 
949 int CALL_CONV bladerf_set_gain_stage(struct bladerf *dev,
950  bladerf_channel ch,
951  const char *stage,
952  bladerf_gain gain);
953 
967 int CALL_CONV bladerf_get_gain_stage(struct bladerf *dev,
968  bladerf_channel ch,
969  const char *stage,
970  bladerf_gain *gain);
971 
989 int CALL_CONV bladerf_get_gain_stage_range(struct bladerf *dev,
990  bladerf_channel ch,
991  const char *stage,
992  const struct bladerf_range **range);
993 
1008 API_EXPORT
1009 int CALL_CONV bladerf_get_gain_stages(struct bladerf *dev,
1010  bladerf_channel ch,
1011  const char **stages,
1012  size_t count);
1013 
1030 typedef unsigned int bladerf_sample_rate;
1031 
1041  uint64_t integer;
1042  uint64_t num;
1043  uint64_t den;
1045 };
1046 
1064 API_EXPORT
1065 int CALL_CONV bladerf_set_sample_rate(struct bladerf *dev,
1066  bladerf_channel ch,
1067  bladerf_sample_rate rate,
1068  bladerf_sample_rate *actual);
1069 
1084 API_EXPORT
1085 int CALL_CONV
1086  bladerf_set_rational_sample_rate(struct bladerf *dev,
1087  bladerf_channel ch,
1088  struct bladerf_rational_rate *rate,
1089  struct bladerf_rational_rate *actual);
1099 API_EXPORT
1100 int CALL_CONV bladerf_get_sample_rate(struct bladerf *dev,
1101  bladerf_channel ch,
1102  bladerf_sample_rate *rate);
1103 
1113 API_EXPORT
1114 int CALL_CONV bladerf_get_sample_rate_range(struct bladerf *dev,
1115  bladerf_channel ch,
1116  const struct bladerf_range **range);
1117 
1127 API_EXPORT
1128 int CALL_CONV
1129  bladerf_get_rational_sample_rate(struct bladerf *dev,
1130  bladerf_channel ch,
1131  struct bladerf_rational_rate *rate);
1132 
1150 typedef unsigned int bladerf_bandwidth;
1151 
1170 API_EXPORT
1171 int CALL_CONV bladerf_set_bandwidth(struct bladerf *dev,
1172  bladerf_channel ch,
1173  bladerf_bandwidth bandwidth,
1174  bladerf_bandwidth *actual);
1175 
1185 API_EXPORT
1186 int CALL_CONV bladerf_get_bandwidth(struct bladerf *dev,
1187  bladerf_channel ch,
1188  bladerf_bandwidth *bandwidth);
1189 
1199 API_EXPORT
1200 int CALL_CONV bladerf_get_bandwidth_range(struct bladerf *dev,
1201  bladerf_channel ch,
1202  const struct bladerf_range **range);
1203 
1228 typedef uint64_t bladerf_frequency;
1229 
1231 #define BLADERF_PRIuFREQ PRIu64
1232 
1233 #define BLADERF_PRIxFREQ PRIx64
1234 
1235 #define BLADERF_SCNuFREQ SCNu64
1236 
1237 #define BLADERF_SCNxFREQ SCNx64
1238 
1257 API_EXPORT
1258 int CALL_CONV bladerf_select_band(struct bladerf *dev,
1259  bladerf_channel ch,
1260  bladerf_frequency frequency);
1261 
1285 API_EXPORT
1286 int CALL_CONV bladerf_set_frequency(struct bladerf *dev,
1287  bladerf_channel ch,
1288  bladerf_frequency frequency);
1298 API_EXPORT
1299 int CALL_CONV bladerf_get_frequency(struct bladerf *dev,
1300  bladerf_channel ch,
1301  bladerf_frequency *frequency);
1302 
1312 API_EXPORT
1313 int CALL_CONV bladerf_get_frequency_range(struct bladerf *dev,
1314  bladerf_channel ch,
1315  const struct bladerf_range **range);
1316 
1337 typedef enum {
1340 
1343 
1346 
1349 
1352 
1355 
1361 
1367 
1373 
1377 
1382  const char *name;
1384 };
1385 
1401 API_EXPORT
1403  struct bladerf *dev, const struct bladerf_loopback_modes **modes);
1404 
1414  struct bladerf *dev, bladerf_loopback mode);
1415 
1429 API_EXPORT
1430 int CALL_CONV bladerf_set_loopback(struct bladerf *dev, bladerf_loopback lb);
1431 
1440 API_EXPORT
1441 int CALL_CONV bladerf_get_loopback(struct bladerf *dev, bladerf_loopback *lb);
1442 
1566 typedef enum {
1569 
1575 
1581 
1589 
1605 typedef enum {
1620 
1632  uint64_t options;
1634 };
1635 
1651 API_EXPORT
1652 int CALL_CONV bladerf_trigger_init(struct bladerf *dev,
1653  bladerf_channel ch,
1654  bladerf_trigger_signal signal,
1655  struct bladerf_trigger *trigger);
1656 
1677 API_EXPORT
1678 int CALL_CONV bladerf_trigger_arm(struct bladerf *dev,
1679  const struct bladerf_trigger *trigger,
1680  bool arm,
1681  uint64_t resv1,
1682  uint64_t resv2);
1683 
1695 API_EXPORT
1696 int CALL_CONV bladerf_trigger_fire(struct bladerf *dev,
1697  const struct bladerf_trigger *trigger);
1698 
1718 API_EXPORT
1719 int CALL_CONV bladerf_trigger_state(struct bladerf *dev,
1720  const struct bladerf_trigger *trigger,
1721  bool *is_armed,
1722  bool *has_fired,
1723  bool *fire_requested,
1724  uint64_t *resv1,
1725  uint64_t *resv2);
1726 
1743 typedef enum {
1746 
1749 
1756 
1763 
1764  /* RX_MUX setting 0x3 is reserved for future use */
1765 
1768 } bladerf_rx_mux;
1769 
1771 /* Backwards compatible mapping for `bladerf_rx_mux`. */
1772 #define BLADERF_RX_MUX_BASEBAND_LMS BLADERF_RX_MUX_BASEBAND
1773 
1783 API_EXPORT
1784 int CALL_CONV bladerf_set_rx_mux(struct bladerf *dev, bladerf_rx_mux mux);
1785 
1794 API_EXPORT
1795 int CALL_CONV bladerf_get_rx_mux(struct bladerf *dev, bladerf_rx_mux *mode);
1796 
1817 typedef uint64_t bladerf_timestamp;
1818 
1823 #define BLADERF_RETUNE_NOW (bladerf_timestamp)0
1824 
1835  union {
1836  /* bladeRF1 quick tune parameters */
1837  struct {
1838  uint8_t freqsel;
1839  uint8_t vcocap;
1840  uint16_t nint;
1841  uint32_t nfrac;
1842  uint8_t flags;
1843  uint8_t xb_gpio;
1844  };
1845  /* bladeRF2 quick tune parameters */
1846  struct {
1847  uint16_t nios_profile;
1848  uint8_t rffe_profile;
1849  uint8_t port;
1850  uint8_t spdt;
1851  };
1852  };
1853 };
1854 
1883 API_EXPORT
1884 int CALL_CONV bladerf_schedule_retune(struct bladerf *dev,
1885  bladerf_channel ch,
1886  bladerf_timestamp timestamp,
1887  bladerf_frequency frequency,
1888  struct bladerf_quick_tune *quick_tune);
1889 
1902 API_EXPORT
1903 int CALL_CONV bladerf_cancel_scheduled_retunes(struct bladerf *dev,
1904  bladerf_channel ch);
1905 
1926 API_EXPORT
1927 int CALL_CONV bladerf_get_quick_tune(struct bladerf *dev,
1928  bladerf_channel ch,
1929  struct bladerf_quick_tune *quick_tune);
1930 
1952 
1962 typedef enum {
1968 
1974 
1980 
1987 
1989 /* Backwards compatible mapping to `bladerf_correction`. */
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
1994 
2009 API_EXPORT
2010 int CALL_CONV bladerf_set_correction(struct bladerf *dev,
2011  bladerf_channel ch,
2012  bladerf_correction corr,
2013  bladerf_correction_value value);
2014 
2025 API_EXPORT
2026 int CALL_CONV bladerf_get_correction(struct bladerf *dev,
2027  bladerf_channel ch,
2028  bladerf_correction corr,
2029  bladerf_correction_value *value);
2030 
2044 #define BLADERF_PRIuTS PRIu64
2045 
2046 #define BLADERF_PRIxTS PRIx64
2047 
2048 #define BLADERF_SCNuTS SCNu64
2049 
2050 #define BLADERF_SCNxTS SCNx64
2051 
2063 typedef enum {
2120 
2161 
2202 } bladerf_format;
2203 
2210 /*
2211  * Metadata status bits
2212  *
2213  * These are used in conjunction with the bladerf_metadata structure's `status`
2214  * field.
2215  */
2216 
2223 #define BLADERF_META_STATUS_OVERRUN (1 << 0)
2224 
2233 #define BLADERF_META_STATUS_UNDERRUN (1 << 1)
2234 
2235 /*
2236  * Metadata flags
2237  *
2238  * These are used in conjunction with the bladerf_metadata structure's `flags`
2239  * field.
2240  */
2241 
2256 #define BLADERF_META_FLAG_TX_BURST_START (1 << 0)
2257 
2284 #define BLADERF_META_FLAG_TX_BURST_END (1 << 1)
2285 
2294 #define BLADERF_META_FLAG_TX_NOW (1 << 2)
2295 
2314 #define BLADERF_META_FLAG_TX_UPDATE_TIMESTAMP (1 << 3)
2315 
2321 #define BLADERF_META_FLAG_RX_NOW (1 << 31)
2322 
2327 #define BLADERF_META_FLAG_RX_HW_UNDERFLOW (1 << 0)
2328 
2333 #define BLADERF_META_FLAG_RX_HW_MINIEXP1 (1 << 16)
2334 
2339 #define BLADERF_META_FLAG_RX_HW_MINIEXP2 (1 << 17)
2340 
2354 
2367  uint32_t flags;
2368 
2376  uint32_t status;
2377 
2391  unsigned int actual_count;
2392 
2397  uint8_t reserved[32];
2398 };
2399 
2446 API_EXPORT
2448  bladerf_format format,
2449  unsigned int buffer_size,
2450  void *samples);
2451 
2474 API_EXPORT
2476  bladerf_format format,
2477  unsigned int buffer_size,
2478  void *samples);
2479 
2502 API_EXPORT
2503 int CALL_CONV bladerf_enable_module(struct bladerf *dev,
2504  bladerf_channel ch,
2505  bool enable);
2506 
2548 API_EXPORT
2549 int CALL_CONV bladerf_get_timestamp(struct bladerf *dev,
2550  bladerf_direction dir,
2551  bladerf_timestamp *timestamp);
2552 
2622 API_EXPORT
2623 int CALL_CONV bladerf_sync_config(struct bladerf *dev,
2624  bladerf_channel_layout layout,
2625  bladerf_format format,
2626  unsigned int num_buffers,
2627  unsigned int buffer_size,
2628  unsigned int num_transfers,
2629  unsigned int stream_timeout);
2630 
2664 API_EXPORT
2665 int CALL_CONV bladerf_sync_tx(struct bladerf *dev,
2666  const void *samples,
2667  unsigned int num_samples,
2668  struct bladerf_metadata *metadata,
2669  unsigned int timeout_ms);
2670 
2704 API_EXPORT
2705 int CALL_CONV bladerf_sync_rx(struct bladerf *dev,
2706  void *samples,
2707  unsigned int num_samples,
2708  struct bladerf_metadata *metadata,
2709  unsigned int timeout_ms);
2710 
2711 
2734 #define BLADERF_STREAM_SHUTDOWN (NULL)
2735 
2741 #define BLADERF_STREAM_NO_DATA ((void *)(-1))
2742 
2744 struct bladerf_stream;
2745 
2793 typedef void *(*bladerf_stream_cb)(struct bladerf *dev,
2794  struct bladerf_stream *stream,
2795  struct bladerf_metadata *meta,
2796  void *samples,
2797  size_t num_samples,
2798  void *user_data);
2799 
2862 API_EXPORT
2863 int CALL_CONV bladerf_init_stream(struct bladerf_stream **stream,
2864  struct bladerf *dev,
2865  bladerf_stream_cb callback,
2866  void ***buffers,
2867  size_t num_buffers,
2868  bladerf_format format,
2869  size_t samples_per_buffer,
2870  size_t num_transfers,
2871  void *user_data);
2872 
2893 API_EXPORT
2894 int CALL_CONV bladerf_stream(struct bladerf_stream *stream,
2895  bladerf_channel_layout layout);
2896 
2924 API_EXPORT
2926  void *buffer,
2927  unsigned int timeout_ms);
2928 
2946 API_EXPORT
2948  void *buffer);
2949 
2950 
2962 API_EXPORT
2963 void CALL_CONV bladerf_deinit_stream(struct bladerf_stream *stream);
2964 
2974 API_EXPORT
2975 int CALL_CONV bladerf_set_stream_timeout(struct bladerf *dev,
2976  bladerf_direction dir,
2977  unsigned int timeout);
2978 
2989 API_EXPORT
2990 int CALL_CONV bladerf_get_stream_timeout(struct bladerf *dev,
2991  bladerf_direction dir,
2992  unsigned int *timeout);
2993 
3023 API_EXPORT
3024 int CALL_CONV bladerf_flash_firmware(struct bladerf *dev, const char *firmware);
3025 
3036 API_EXPORT
3037 int CALL_CONV bladerf_load_fpga(struct bladerf *dev, const char *fpga);
3038 
3049 API_EXPORT
3050 int CALL_CONV bladerf_flash_fpga(struct bladerf *dev, const char *fpga_image);
3051 
3059 API_EXPORT
3060 int CALL_CONV bladerf_erase_stored_fpga(struct bladerf *dev);
3061 
3069 API_EXPORT
3070 int CALL_CONV bladerf_device_reset(struct bladerf *dev);
3071 
3081 API_EXPORT
3082 int CALL_CONV bladerf_get_fw_log(struct bladerf *dev, const char *filename);
3083 
3094 API_EXPORT
3095 int CALL_CONV bladerf_jump_to_bootloader(struct bladerf *dev);
3096 
3112 API_EXPORT
3114 
3138 API_EXPORT
3139 int CALL_CONV bladerf_load_fw_from_bootloader(const char *device_identifier,
3140  bladerf_backend backend,
3141  uint8_t bus,
3142  uint8_t addr,
3143  const char *file);
3144 
3159 typedef enum {
3173 
3175 #define BLADERF_IMAGE_MAGIC_LEN 7
3176 
3178 #define BLADERF_IMAGE_CHECKSUM_LEN 32
3179 
3181 #define BLADERF_IMAGE_RESERVED_LEN 128
3182 
3203 
3209 
3216 
3218  uint64_t timestamp;
3219 
3229 
3234 
3239 
3244  uint32_t address;
3245 
3247  uint32_t length;
3248 
3250  uint8_t *data;
3251 };
3252 
3276 API_EXPORT
3277 struct bladerf_image *CALL_CONV bladerf_alloc_image(struct bladerf *dev,
3279  uint32_t address,
3280  uint32_t length);
3281 
3295 API_EXPORT
3297  struct bladerf *dev, bladerf_fpga_size fpga_size, uint16_t vctcxo_trim);
3298 
3306 API_EXPORT
3307 void CALL_CONV bladerf_free_image(struct bladerf_image *image);
3308 
3324 API_EXPORT
3325 int CALL_CONV bladerf_image_write(struct bladerf *dev,
3326  struct bladerf_image *image,
3327  const char *file);
3328 
3350 API_EXPORT
3351 int CALL_CONV bladerf_image_read(struct bladerf_image *image, const char *file);
3352 
3384 typedef enum {
3387 
3390 
3393 
3397 
3406 API_EXPORT
3407 int CALL_CONV bladerf_set_vctcxo_tamer_mode(struct bladerf *dev,
3409 
3420 API_EXPORT
3421 int CALL_CONV bladerf_get_vctcxo_tamer_mode(struct bladerf *dev,
3423 
3444 API_EXPORT
3445 int CALL_CONV bladerf_get_vctcxo_trim(struct bladerf *dev, uint16_t *trim);
3446 
3457 API_EXPORT
3458 int CALL_CONV bladerf_trim_dac_write(struct bladerf *dev, uint16_t val);
3459 
3474 API_EXPORT
3475 int CALL_CONV bladerf_trim_dac_read(struct bladerf *dev, uint16_t *val);
3476 
3508 typedef enum {
3511 
3517 
3521 
3531 API_EXPORT
3532 int CALL_CONV bladerf_set_tuning_mode(struct bladerf *dev,
3533  bladerf_tuning_mode mode);
3534 
3543 API_EXPORT
3544 int CALL_CONV bladerf_get_tuning_mode(struct bladerf *dev,
3545  bladerf_tuning_mode *mode);
3546 
3569 #define BLADERF_TRIGGER_REG_ARM ((uint8_t)(1 << 0))
3570 
3580 #define BLADERF_TRIGGER_REG_FIRE ((uint8_t)(1 << 1))
3581 
3590 #define BLADERF_TRIGGER_REG_MASTER ((uint8_t)(1 << 2))
3591 
3598 #define BLADERF_TRIGGER_REG_LINE ((uint8_t)(1 << 3))
3599 
3612 API_EXPORT
3613 int CALL_CONV bladerf_read_trigger(struct bladerf *dev,
3614  bladerf_channel ch,
3615  bladerf_trigger_signal signal,
3616  uint8_t *val);
3617 
3629 API_EXPORT
3630 int CALL_CONV bladerf_write_trigger(struct bladerf *dev,
3631  bladerf_channel ch,
3632  bladerf_trigger_signal signal,
3633  uint8_t val);
3634 
3656 API_EXPORT
3657 int CALL_CONV bladerf_config_gpio_read(struct bladerf *dev, uint32_t *val);
3658 
3671 API_EXPORT
3672 int CALL_CONV bladerf_config_gpio_write(struct bladerf *dev, uint32_t val);
3673 
3709 API_EXPORT
3710 int CALL_CONV bladerf_erase_flash(struct bladerf *dev,
3711  uint32_t erase_block,
3712  uint32_t count);
3713 
3727 API_EXPORT
3728 int CALL_CONV bladerf_erase_flash_bytes(struct bladerf *dev,
3729  uint32_t address,
3730  uint32_t length);
3731 
3751 API_EXPORT
3752 int CALL_CONV bladerf_read_flash(struct bladerf *dev,
3753  uint8_t *buf,
3754  uint32_t page,
3755  uint32_t count);
3756 
3772 API_EXPORT
3773 int CALL_CONV bladerf_read_flash_bytes(struct bladerf *dev,
3774  uint8_t *buf,
3775  uint32_t address,
3776  uint32_t bytes);
3777 
3796 API_EXPORT
3797 int CALL_CONV bladerf_write_flash(struct bladerf *dev,
3798  const uint8_t *buf,
3799  uint32_t page,
3800  uint32_t count);
3801 
3816 API_EXPORT
3817 int CALL_CONV bladerf_write_flash_bytes(struct bladerf *dev,
3818  const uint8_t *buf,
3819  uint32_t address,
3820  uint32_t length);
3821 
3832 API_EXPORT
3833 int CALL_CONV bladerf_lock_otp(struct bladerf *dev);
3834 
3847 API_EXPORT
3848 int CALL_CONV bladerf_read_otp(struct bladerf *dev,
3849  uint8_t *buf);
3850 
3863 API_EXPORT
3864 int CALL_CONV bladerf_write_otp(struct bladerf *dev,
3865  uint8_t *buf);
3866 
3889 API_EXPORT
3890 int CALL_CONV bladerf_set_rf_port(struct bladerf *dev,
3891  bladerf_channel ch,
3892  const char *port);
3893 
3903 API_EXPORT
3904 int CALL_CONV bladerf_get_rf_port(struct bladerf *dev,
3905  bladerf_channel ch,
3906  const char **port);
3907 
3922 API_EXPORT
3923 int CALL_CONV bladerf_get_rf_ports(struct bladerf *dev,
3924  bladerf_channel ch,
3925  const char **ports,
3926  unsigned int count);
3927 
3953 typedef enum {
3961 } bladerf_xb;
3962 
3971 API_EXPORT
3972 int CALL_CONV bladerf_expansion_attach(struct bladerf *dev, bladerf_xb xb);
3973 
3982 API_EXPORT
3983 int CALL_CONV bladerf_expansion_get_attached(struct bladerf *dev,
3984  bladerf_xb *xb);
3985 
4002 typedef enum {
4011 
4020 API_EXPORT
4022 
4036 API_EXPORT
4038 
4057 // clang-format off
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)
4084 // clang-format on
4085 
4093 API_EXPORT
4094 const char *CALL_CONV bladerf_strerror(int error);
4095 
4098 #include <bladeRF1.h>
4099 #include <bladeRF2.h>
4100 
4101 #ifdef __cplusplus
4102 }
4103 #endif
4104 
4105 #endif /* LIBBLADERF_H_ */
bladerf_read_flash_bytes
API_EXPORT int CALL_CONV bladerf_read_flash_bytes(struct bladerf *dev, uint8_t *buf, uint32_t address, uint32_t bytes)
BLADERF_TRIGGER_ROLE_DISABLED
@ BLADERF_TRIGGER_ROLE_DISABLED
Definition: libbladeRF.h:1574
bladerf_backendinfo::lock
void * lock
Definition: libbladeRF.h:150
bladerf_strerror
const API_EXPORT char *CALL_CONV bladerf_strerror(int error)
bladerf_xb
bladerf_xb
Definition: libbladeRF.h:3953
bladerf_image::timestamp
uint64_t timestamp
Definition: libbladeRF.h:3218
bladerf_write_flash_bytes
API_EXPORT int CALL_CONV bladerf_write_flash_bytes(struct bladerf *dev, const uint8_t *buf, uint32_t address, uint32_t length)
bladerf_quick_tune::xb_gpio
uint8_t xb_gpio
Definition: libbladeRF.h:1843
bladerf_get_device_list
API_EXPORT int CALL_CONV bladerf_get_device_list(struct bladerf_devinfo **devices)
bladerf_device_speed
API_EXPORT bladerf_dev_speed CALL_CONV bladerf_device_speed(struct bladerf *dev)
BLADERF_LB_RF_LNA1
@ BLADERF_LB_RF_LNA1
Definition: libbladeRF.h:1360
bladerf_set_frequency
API_EXPORT int CALL_CONV bladerf_set_frequency(struct bladerf *dev, bladerf_channel ch, bladerf_frequency frequency)
BLADERF_TRIGGER_USER_4
@ BLADERF_TRIGGER_USER_4
Definition: libbladeRF.h:1615
BLADERF_RX_X1
@ BLADERF_RX_X1
Definition: libbladeRF.h:714
bladerf_close
API_EXPORT void CALL_CONV bladerf_close(struct bladerf *device)
bladerf_is_loopback_mode_supported
API_EXPORT bool CALL_CONV bladerf_is_loopback_mode_supported(struct bladerf *dev, bladerf_loopback mode)
bladerf_get_sample_rate
API_EXPORT int CALL_CONV bladerf_get_sample_rate(struct bladerf *dev, bladerf_channel ch, bladerf_sample_rate *rate)
bladerf_trigger_signal
bladerf_trigger_signal
Definition: libbladeRF.h:1605
BLADERF_SERIAL_LENGTH
#define BLADERF_SERIAL_LENGTH
Definition: libbladeRF.h:125
BLADERF_TX_X1
@ BLADERF_TX_X1
Definition: libbladeRF.h:715
bladerf_version::major
uint16_t major
Definition: libbladeRF.h:411
bladerf_init_stream
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)
BLADERF_DESCRIPTION_LENGTH
#define BLADERF_DESCRIPTION_LENGTH
Definition: libbladeRF.h:122
bladerf_image
Definition: libbladeRF.h:3194
bladerf_get_fpga_bytes
API_EXPORT int CALL_CONV bladerf_get_fpga_bytes(struct bladerf *dev, size_t *size)
BLADERF_LOG_LEVEL_ERROR
@ BLADERF_LOG_LEVEL_ERROR
Definition: libbladeRF.h:4007
BLADERF_IMAGE_TYPE_FPGA_A4
@ BLADERF_IMAGE_TYPE_FPGA_A4
Definition: libbladeRF.h:3165
BLADERF_VCTCXO_TAMER_1_PPS
@ BLADERF_VCTCXO_TAMER_1_PPS
Definition: libbladeRF.h:3392
BLADERF_FPGA_UNKNOWN
@ BLADERF_FPGA_UNKNOWN
Definition: libbladeRF.h:425
bladerf_get_correction
API_EXPORT int CALL_CONV bladerf_get_correction(struct bladerf *dev, bladerf_channel ch, bladerf_correction corr, bladerf_correction_value *value)
bladerf_config_gpio_write
API_EXPORT int CALL_CONV bladerf_config_gpio_write(struct bladerf *dev, uint32_t val)
BLADERF_FORMAT_PACKET_META
@ BLADERF_FORMAT_PACKET_META
Definition: libbladeRF.h:2201
bladerf_get_channel_count
API_EXPORT size_t CALL_CONV bladerf_get_channel_count(struct bladerf *dev, bladerf_direction dir)
bladerf_read_trigger
API_EXPORT int CALL_CONV bladerf_read_trigger(struct bladerf *dev, bladerf_channel ch, bladerf_trigger_signal signal, uint8_t *val)
bladerf_quick_tune::rffe_profile
uint8_t rffe_profile
Definition: libbladeRF.h:1848
bladerf_loopback_modes
Definition: libbladeRF.h:1381
bladerf_expansion_get_attached
API_EXPORT int CALL_CONV bladerf_expansion_get_attached(struct bladerf *dev, bladerf_xb *xb)
bladerf_flash_fpga
API_EXPORT int CALL_CONV bladerf_flash_fpga(struct bladerf *dev, const char *fpga_image)
bladerf_get_rf_ports
API_EXPORT int CALL_CONV bladerf_get_rf_ports(struct bladerf *dev, bladerf_channel ch, const char **ports, unsigned int count)
bladerf_trim_dac_read
API_EXPORT int CALL_CONV bladerf_trim_dac_read(struct bladerf *dev, uint16_t *val)
BLADERF_TRIGGER_ROLE_MASTER
@ BLADERF_TRIGGER_ROLE_MASTER
Definition: libbladeRF.h:1580
bladerf_get_quick_tune
API_EXPORT int CALL_CONV bladerf_get_quick_tune(struct bladerf *dev, bladerf_channel ch, struct bladerf_quick_tune *quick_tune)
bladerf_device_reset
API_EXPORT int CALL_CONV bladerf_device_reset(struct bladerf *dev)
bladerf_gain
int bladerf_gain
Definition: libbladeRF.h:747
bladerf_metadata::actual_count
unsigned int actual_count
Definition: libbladeRF.h:2391
bladerf_devinfo::serial
char serial[BLADERF_SERIAL_LENGTH]
Definition: libbladeRF.h:133
bladerf_devinfo::usb_bus
uint8_t usb_bus
Definition: libbladeRF.h:134
bladerf_set_correction
API_EXPORT int CALL_CONV bladerf_set_correction(struct bladerf *dev, bladerf_channel ch, bladerf_correction corr, bladerf_correction_value value)
bladerf_channel
int bladerf_channel
Definition: libbladeRF.h:648
bladerf_quick_tune
Definition: libbladeRF.h:1834
BLADERF_TRIGGER_USER_7
@ BLADERF_TRIGGER_USER_7
Definition: libbladeRF.h:1618
BLADERF_FPGA_SOURCE_UNKNOWN
@ BLADERF_FPGA_SOURCE_UNKNOWN
Definition: libbladeRF.h:449
BLADERF_RX_MUX_DIGITAL_LOOPBACK
@ BLADERF_RX_MUX_DIGITAL_LOOPBACK
Definition: libbladeRF.h:1767
bladerf_quick_tune::spdt
uint8_t spdt
Definition: libbladeRF.h:1850
bladerf_write_flash
API_EXPORT int CALL_CONV bladerf_write_flash(struct bladerf *dev, const uint8_t *buf, uint32_t page, uint32_t count)
BLADERF_FPGA_SOURCE_FLASH
@ BLADERF_FPGA_SOURCE_FLASH
Definition: libbladeRF.h:450
bladerf_get_serial_struct
API_EXPORT int CALL_CONV bladerf_get_serial_struct(struct bladerf *dev, struct bladerf_serial *serial)
BLADERF_TRIGGER_USER_2
@ BLADERF_TRIGGER_USER_2
Definition: libbladeRF.h:1613
bladerf_quick_tune::flags
uint8_t flags
Definition: libbladeRF.h:1842
bladerf_set_sample_rate
API_EXPORT int CALL_CONV bladerf_set_sample_rate(struct bladerf *dev, bladerf_channel ch, bladerf_sample_rate rate, bladerf_sample_rate *actual)
BLADERF_IMAGE_TYPE_INVALID
@ BLADERF_IMAGE_TYPE_INVALID
Definition: libbladeRF.h:3160
bladerf_trigger::signal
bladerf_trigger_signal signal
Definition: libbladeRF.h:1631
bladerf_get_vctcxo_tamer_mode
API_EXPORT int CALL_CONV bladerf_get_vctcxo_tamer_mode(struct bladerf *dev, bladerf_vctcxo_tamer_mode *mode)
BLADERF_IMAGE_TYPE_RAW
@ BLADERF_IMAGE_TYPE_RAW
Definition: libbladeRF.h:3161
BLADERF_FPGA_40KLE
@ BLADERF_FPGA_40KLE
Definition: libbladeRF.h:426
BLADERF_FPGA_SOURCE_HOST
@ BLADERF_FPGA_SOURCE_HOST
Definition: libbladeRF.h:451
bladerf_backendinfo::lock_count
int lock_count
Definition: libbladeRF.h:149
bladerf_set_gain_mode
API_EXPORT int CALL_CONV bladerf_set_gain_mode(struct bladerf *dev, bladerf_channel ch, bladerf_gain_mode mode)
bladerf_get_vctcxo_trim
API_EXPORT int CALL_CONV bladerf_get_vctcxo_trim(struct bladerf *dev, uint16_t *trim)
bladerf_get_fpga_size
API_EXPORT int CALL_CONV bladerf_get_fpga_size(struct bladerf *dev, bladerf_fpga_size *size)
bladerf_set_rf_port
API_EXPORT int CALL_CONV bladerf_set_rf_port(struct bladerf *dev, bladerf_channel ch, const char *port)
BLADERF_TRIGGER_USER_5
@ BLADERF_TRIGGER_USER_5
Definition: libbladeRF.h:1616
bladerf_devinfo::instance
unsigned int instance
Definition: libbladeRF.h:136
bladerf_version::patch
uint16_t patch
Definition: libbladeRF.h:413
bladerf_metadata::timestamp
bladerf_timestamp timestamp
Definition: libbladeRF.h:2353
bladerf_image::serial
char serial[BLADERF_SERIAL_LENGTH+1]
Definition: libbladeRF.h:3228
BLADERF_GAIN_HYBRID_AGC
@ BLADERF_GAIN_HYBRID_AGC
Definition: libbladeRF.h:795
bladerf_trigger::channel
bladerf_channel channel
Definition: libbladeRF.h:1629
API_EXPORT
#define API_EXPORT
Definition: libbladeRF.h:82
bladerf_trigger_role
bladerf_trigger_role
Definition: libbladeRF.h:1566
bladerf_correction_value
int16_t bladerf_correction_value
Definition: libbladeRF.h:1951
BLADERF_LB_RF_LNA2
@ BLADERF_LB_RF_LNA2
Definition: libbladeRF.h:1366
bladerf_image_read
API_EXPORT int CALL_CONV bladerf_image_read(struct bladerf_image *image, const char *file)
bladeRF2.h
bladeRF2-specific API
BLADERF_TUNING_MODE_HOST
@ BLADERF_TUNING_MODE_HOST
Definition: libbladeRF.h:3516
BLADERF_IMAGE_TYPE_RX_IQ_CAL
@ BLADERF_IMAGE_TYPE_RX_IQ_CAL
Definition: libbladeRF.h:3170
bladerf_log_set_verbosity
API_EXPORT void CALL_CONV bladerf_log_set_verbosity(bladerf_log_level level)
bladerf_enable_module
API_EXPORT int CALL_CONV bladerf_enable_module(struct bladerf *dev, bladerf_channel ch, bool enable)
BLADERF_LB_FIRMWARE
@ BLADERF_LB_FIRMWARE
Definition: libbladeRF.h:1342
bladerf_rational_rate::integer
uint64_t integer
Definition: libbladeRF.h:1041
bladerf_set_usb_reset_on_open
API_EXPORT void CALL_CONV bladerf_set_usb_reset_on_open(bool enabled)
bladerf_rational_rate::num
uint64_t num
Definition: libbladeRF.h:1042
bladerf_trigger::options
uint64_t options
Definition: libbladeRF.h:1632
BLADERF_XB_300
@ BLADERF_XB_300
Definition: libbladeRF.h:3960
BLADERF_CORR_DCOFF_I
@ BLADERF_CORR_DCOFF_I
Definition: libbladeRF.h:1967
bladerf_get_sample_rate_range
API_EXPORT int CALL_CONV bladerf_get_sample_rate_range(struct bladerf *dev, bladerf_channel ch, const struct bladerf_range **range)
bladerf_gain_mode
bladerf_gain_mode
Definition: libbladeRF.h:759
bladerf_fpga_size
bladerf_fpga_size
Definition: libbladeRF.h:424
bladerf_get_bandwidth
API_EXPORT int CALL_CONV bladerf_get_bandwidth(struct bladerf *dev, bladerf_channel ch, bladerf_bandwidth *bandwidth)
BLADERF_FPGA_A4
@ BLADERF_FPGA_A4
Definition: libbladeRF.h:428
bladerf_erase_flash
API_EXPORT int CALL_CONV bladerf_erase_flash(struct bladerf *dev, uint32_t erase_block, uint32_t count)
BLADERF_LOG_LEVEL_INFO
@ BLADERF_LOG_LEVEL_INFO
Definition: libbladeRF.h:4005
bladerf_get_gain_mode
API_EXPORT int CALL_CONV bladerf_get_gain_mode(struct bladerf *dev, bladerf_channel ch, bladerf_gain_mode *mode)
bladerf_load_fw_from_bootloader
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)
bladerf_stream_cb
void *(* bladerf_stream_cb)(struct bladerf *dev, struct bladerf_stream *stream, struct bladerf_metadata *meta, void *samples, size_t num_samples, void *user_data)
Definition: libbladeRF.h:2793
bladerf_devinfo_matches
API_EXPORT bool CALL_CONV bladerf_devinfo_matches(const struct bladerf_devinfo *a, const struct bladerf_devinfo *b)
bladerf_range::scale
float scale
Definition: libbladeRF.h:397
bladeRF1.h
bladeRF1-specific API
BLADERF_VCTCXO_TAMER_10_MHZ
@ BLADERF_VCTCXO_TAMER_10_MHZ
Definition: libbladeRF.h:3395
bladerf_rational_rate::den
uint64_t den
Definition: libbladeRF.h:1043
bladerf_config_gpio_read
API_EXPORT int CALL_CONV bladerf_config_gpio_read(struct bladerf *dev, uint32_t *val)
bladerf_quick_tune::port
uint8_t port
Definition: libbladeRF.h:1849
BLADERF_BACKEND_LIBUSB
@ BLADERF_BACKEND_LIBUSB
Definition: libbladeRF.h:116
bladerf_fpga_source
bladerf_fpga_source
Definition: libbladeRF.h:448
bladerf_erase_stored_fpga
API_EXPORT int CALL_CONV bladerf_erase_stored_fpga(struct bladerf *dev)
bladerf_devinfo::manufacturer
char manufacturer[BLADERF_DESCRIPTION_LENGTH]
Definition: libbladeRF.h:139
BLADERF_FORMAT_SC16_Q11
@ BLADERF_FORMAT_SC16_Q11
Definition: libbladeRF.h:2119
BLADERF_TRIGGER_USER_3
@ BLADERF_TRIGGER_USER_3
Definition: libbladeRF.h:1614
bladerf_get_fw_log
API_EXPORT int CALL_CONV bladerf_get_fw_log(struct bladerf *dev, const char *filename)
bladerf_get_devinfo_from_str
API_EXPORT int CALL_CONV bladerf_get_devinfo_from_str(const char *devstr, struct bladerf_devinfo *info)
BLADERF_TRIGGER_J51_1
@ BLADERF_TRIGGER_J51_1
Definition: libbladeRF.h:1608
bladerf_fw_version
API_EXPORT int CALL_CONV bladerf_fw_version(struct bladerf *dev, struct bladerf_version *version)
BLADERF_LB_NONE
@ BLADERF_LB_NONE
Definition: libbladeRF.h:1339
bladerf_backendinfo::handle_count
int handle_count
Definition: libbladeRF.h:147
bladerf_deinterleave_stream_buffer
API_EXPORT int CALL_CONV bladerf_deinterleave_stream_buffer(bladerf_channel_layout layout, bladerf_format format, unsigned int buffer_size, void *samples)
bladerf_range::min
int64_t min
Definition: libbladeRF.h:394
BLADERF_IMAGE_TYPE_FPGA_A9
@ BLADERF_IMAGE_TYPE_FPGA_A9
Definition: libbladeRF.h:3166
bladerf_bandwidth
unsigned int bladerf_bandwidth
Definition: libbladeRF.h:1150
bladerf_alloc_cal_image
API_EXPORT struct bladerf_image *CALL_CONV bladerf_alloc_cal_image(struct bladerf *dev, bladerf_fpga_size fpga_size, uint16_t vctcxo_trim)
BLADERF_LB_RF_LNA3
@ BLADERF_LB_RF_LNA3
Definition: libbladeRF.h:1372
bladerf_deinit_stream
API_EXPORT void CALL_CONV bladerf_deinit_stream(struct bladerf_stream *stream)
bladerf_devinfo::product
char product[BLADERF_DESCRIPTION_LENGTH]
Definition: libbladeRF.h:140
bladerf_image::length
uint32_t length
Definition: libbladeRF.h:3247
bladerf_log_level
bladerf_log_level
Definition: libbladeRF.h:4002
bladerf_get_serial
API_EXPORT int CALL_CONV bladerf_get_serial(struct bladerf *dev, char *serial)
bladerf_trigger_state
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)
BLADERF_RX_MUX_INVALID
@ BLADERF_RX_MUX_INVALID
Definition: libbladeRF.h:1745
bladerf_loopback_modes::name
const char * name
Definition: libbladeRF.h:1382
BLADERF_TRIGGER_USER_6
@ BLADERF_TRIGGER_USER_6
Definition: libbladeRF.h:1617
bladerf_set_stream_timeout
API_EXPORT int CALL_CONV bladerf_set_stream_timeout(struct bladerf *dev, bladerf_direction dir, unsigned int timeout)
bladerf_get_devinfo
API_EXPORT int CALL_CONV bladerf_get_devinfo(struct bladerf *dev, struct bladerf_devinfo *info)
bladerf_get_rf_port
API_EXPORT int CALL_CONV bladerf_get_rf_port(struct bladerf *dev, bladerf_channel ch, const char **port)
BLADERF_RX
@ BLADERF_RX
Definition: libbladeRF.h:706
BLADERF_XB_NONE
@ BLADERF_XB_NONE
Definition: libbladeRF.h:3954
BLADERF_LB_BB_TXLPF_RXLPF
@ BLADERF_LB_BB_TXLPF_RXLPF
Definition: libbladeRF.h:1351
bladerf_metadata::flags
uint32_t flags
Definition: libbladeRF.h:2367
bladerf_set_gain
API_EXPORT int CALL_CONV bladerf_set_gain(struct bladerf *dev, bladerf_channel ch, bladerf_gain gain)
bladerf_cancel_scheduled_retunes
API_EXPORT int CALL_CONV bladerf_cancel_scheduled_retunes(struct bladerf *dev, bladerf_channel ch)
bladerf_set_vctcxo_tamer_mode
API_EXPORT int CALL_CONV bladerf_set_vctcxo_tamer_mode(struct bladerf *dev, bladerf_vctcxo_tamer_mode mode)
BLADERF_IMAGE_CHECKSUM_LEN
#define BLADERF_IMAGE_CHECKSUM_LEN
Definition: libbladeRF.h:3178
BLADERF_TRIGGER_INVALID
@ BLADERF_TRIGGER_INVALID
Definition: libbladeRF.h:1606
BLADERF_IMAGE_TYPE_FPGA_115KLE
@ BLADERF_IMAGE_TYPE_FPGA_115KLE
Definition: libbladeRF.h:3164
bladerf_set_bandwidth
API_EXPORT int CALL_CONV bladerf_set_bandwidth(struct bladerf *dev, bladerf_channel ch, bladerf_bandwidth bandwidth, bladerf_bandwidth *actual)
bladerf_vctcxo_tamer_mode
bladerf_vctcxo_tamer_mode
Definition: libbladeRF.h:3384
bladerf_expansion_attach
API_EXPORT int CALL_CONV bladerf_expansion_attach(struct bladerf *dev, bladerf_xb xb)
bladerf_sync_rx
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)
bladerf_fpga_version
API_EXPORT int CALL_CONV bladerf_fpga_version(struct bladerf *dev, struct bladerf_version *version)
BLADERF_IMAGE_RESERVED_LEN
#define BLADERF_IMAGE_RESERVED_LEN
Definition: libbladeRF.h:3181
bladerf_backendinfo::handle
void * handle
Definition: libbladeRF.h:148
bladerf_get_stream_timeout
API_EXPORT int CALL_CONV bladerf_get_stream_timeout(struct bladerf *dev, bladerf_direction dir, unsigned int *timeout)
bladerf_loopback_modes::mode
bladerf_loopback mode
Definition: libbladeRF.h:1383
bladerf_load_fpga
API_EXPORT int CALL_CONV bladerf_load_fpga(struct bladerf *dev, const char *fpga)
bladerf_get_fpga_source
API_EXPORT int CALL_CONV bladerf_get_fpga_source(struct bladerf *dev, bladerf_fpga_source *source)
bladerf_get_bandwidth_range
API_EXPORT int CALL_CONV bladerf_get_bandwidth_range(struct bladerf *dev, bladerf_channel ch, const struct bladerf_range **range)
bladerf_set_tuning_mode
API_EXPORT int CALL_CONV bladerf_set_tuning_mode(struct bladerf *dev, bladerf_tuning_mode mode)
BLADERF_TRIGGER_J71_4
@ BLADERF_TRIGGER_J71_4
Definition: libbladeRF.h:1607
bladerf_get_tuning_mode
API_EXPORT int CALL_CONV bladerf_get_tuning_mode(struct bladerf *dev, bladerf_tuning_mode *mode)
bladerf_write_trigger
API_EXPORT int CALL_CONV bladerf_write_trigger(struct bladerf *dev, bladerf_channel ch, bladerf_trigger_signal signal, uint8_t val)
bladerf_set_gain_stage
API_EXPORT int CALL_CONV bladerf_set_gain_stage(struct bladerf *dev, bladerf_channel ch, const char *stage, bladerf_gain gain)
bladerf_devinfo::usb_addr
uint8_t usb_addr
Definition: libbladeRF.h:135
BLADERF_IMAGE_TYPE_RX_DC_CAL
@ BLADERF_IMAGE_TYPE_RX_DC_CAL
Definition: libbladeRF.h:3168
bladerf_submit_stream_buffer_nb
API_EXPORT int CALL_CONV bladerf_submit_stream_buffer_nb(struct bladerf_stream *stream, void *buffer)
bladerf_direction
bladerf_direction
Definition: libbladeRF.h:705
bladerf_get_backendinfo
API_EXPORT int CALL_CONV bladerf_get_backendinfo(struct bladerf *dev, struct bladerf_backendinfo *info)
bladerf_submit_stream_buffer
API_EXPORT int CALL_CONV bladerf_submit_stream_buffer(struct bladerf_stream *stream, void *buffer, unsigned int timeout_ms)
bladerf_free_device_list
API_EXPORT void CALL_CONV bladerf_free_device_list(struct bladerf_devinfo *devices)
bladerf_metadata
Definition: libbladeRF.h:2348
BLADERF_LOG_LEVEL_CRITICAL
@ BLADERF_LOG_LEVEL_CRITICAL
Definition: libbladeRF.h:4008
bladerf_get_gain_range
API_EXPORT int CALL_CONV bladerf_get_gain_range(struct bladerf *dev, bladerf_channel ch, const struct bladerf_range **range)
bladerf_read_otp
API_EXPORT int CALL_CONV bladerf_read_otp(struct bladerf *dev, uint8_t *buf)
BLADERF_TUNING_MODE_FPGA
@ BLADERF_TUNING_MODE_FPGA
Definition: libbladeRF.h:3519
bladerf_version
Definition: libbladeRF.h:410
BLADERF_VCTCXO_TAMER_DISABLED
@ BLADERF_VCTCXO_TAMER_DISABLED
Definition: libbladeRF.h:3389
BLADERF_LOG_LEVEL_VERBOSE
@ BLADERF_LOG_LEVEL_VERBOSE
Definition: libbladeRF.h:4003
bladerf_quick_tune::vcocap
uint8_t vcocap
Definition: libbladeRF.h:1839
bladerf_get_board_name
const API_EXPORT char *CALL_CONV bladerf_get_board_name(struct bladerf *dev)
bladerf_correction
bladerf_correction
Definition: libbladeRF.h:1962
BLADERF_VCTCXO_TAMER_INVALID
@ BLADERF_VCTCXO_TAMER_INVALID
Definition: libbladeRF.h:3386
BLADERF_IMAGE_TYPE_FIRMWARE
@ BLADERF_IMAGE_TYPE_FIRMWARE
Definition: libbladeRF.h:3162
bladerf_timestamp
uint64_t bladerf_timestamp
Definition: libbladeRF.h:1817
BLADERF_IMAGE_MAGIC_LEN
#define BLADERF_IMAGE_MAGIC_LEN
Definition: libbladeRF.h:3175
bladerf_open_with_devinfo
API_EXPORT int CALL_CONV bladerf_open_with_devinfo(struct bladerf **device, struct bladerf_devinfo *devinfo)
bladerf_tuning_mode
bladerf_tuning_mode
Definition: libbladeRF.h:3508
bladerf_get_gain_stages
API_EXPORT int CALL_CONV bladerf_get_gain_stages(struct bladerf *dev, bladerf_channel ch, const char **stages, size_t count)
bladerf_backendinfo
Definition: libbladeRF.h:146
bladerf_select_band
API_EXPORT int CALL_CONV bladerf_select_band(struct bladerf *dev, bladerf_channel ch, bladerf_frequency frequency)
BLADERF_TRIGGER_ROLE_INVALID
@ BLADERF_TRIGGER_ROLE_INVALID
Definition: libbladeRF.h:1568
bladerf_quick_tune::nios_profile
uint16_t nios_profile
Definition: libbladeRF.h:1847
BLADERF_GAIN_SLOWATTACK_AGC
@ BLADERF_GAIN_SLOWATTACK_AGC
Definition: libbladeRF.h:788
BLADERF_IMAGE_TYPE_FPGA_40KLE
@ BLADERF_IMAGE_TYPE_FPGA_40KLE
Definition: libbladeRF.h:3163
bladerf_schedule_retune
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)
bladerf_backend
bladerf_backend
Definition: libbladeRF.h:112
bladerf_get_rx_mux
API_EXPORT int CALL_CONV bladerf_get_rx_mux(struct bladerf *dev, bladerf_rx_mux *mode)
bladerf_get_loopback_modes
API_EXPORT int CALL_CONV bladerf_get_loopback_modes(struct bladerf *dev, const struct bladerf_loopback_modes **modes)
BLADERF_BACKEND_CYPRESS
@ BLADERF_BACKEND_CYPRESS
Definition: libbladeRF.h:117
bladerf_format
bladerf_format
Definition: libbladeRF.h:2063
bladerf_get_gain
API_EXPORT int CALL_CONV bladerf_get_gain(struct bladerf *dev, bladerf_channel ch, bladerf_gain *gain)
BLADERF_LB_BB_TXVGA1_RXVGA2
@ BLADERF_LB_BB_TXVGA1_RXVGA2
Definition: libbladeRF.h:1348
BLADERF_TRIGGER_USER_1
@ BLADERF_TRIGGER_USER_1
Definition: libbladeRF.h:1612
bladerf_rational_rate
Definition: libbladeRF.h:1040
bladerf_image::type
bladerf_image_type type
Definition: libbladeRF.h:3238
bladerf_image::magic
char magic[BLADERF_IMAGE_MAGIC_LEN+1]
Definition: libbladeRF.h:3202
BLADERF_XB_200
@ BLADERF_XB_200
Definition: libbladeRF.h:3959
BLADERF_FPGA_A9
@ BLADERF_FPGA_A9
Definition: libbladeRF.h:429
bladerf_write_otp
API_EXPORT int CALL_CONV bladerf_write_otp(struct bladerf *dev, uint8_t *buf)
bladerf_gain_modes::mode
bladerf_gain_mode mode
Definition: libbladeRF.h:808
bladerf_range::max
int64_t max
Definition: libbladeRF.h:395
BLADERF_LOG_LEVEL_SILENT
@ BLADERF_LOG_LEVEL_SILENT
Definition: libbladeRF.h:4009
bladerf_read_flash
API_EXPORT int CALL_CONV bladerf_read_flash(struct bladerf *dev, uint8_t *buf, uint32_t page, uint32_t count)
BLADERF_IMAGE_TYPE_TX_DC_CAL
@ BLADERF_IMAGE_TYPE_TX_DC_CAL
Definition: libbladeRF.h:3169
bladerf_backend_str
const API_EXPORT char *CALL_CONV bladerf_backend_str(bladerf_backend backend)
BLADERF_XB_100
@ BLADERF_XB_100
Definition: libbladeRF.h:3955
bladerf_image::checksum
uint8_t checksum[BLADERF_IMAGE_CHECKSUM_LEN]
Definition: libbladeRF.h:3208
bladerf_get_timestamp
API_EXPORT int CALL_CONV bladerf_get_timestamp(struct bladerf *dev, bladerf_direction dir, bladerf_timestamp *timestamp)
bladerf_serial::serial
char serial[BLADERF_SERIAL_LENGTH]
Definition: libbladeRF.h:404
BLADERF_IMAGE_TYPE_TX_IQ_CAL
@ BLADERF_IMAGE_TYPE_TX_IQ_CAL
Definition: libbladeRF.h:3171
BLADERF_BACKEND_LINUX
@ BLADERF_BACKEND_LINUX
Definition: libbladeRF.h:115
BLADERF_TRIGGER_ROLE_SLAVE
@ BLADERF_TRIGGER_ROLE_SLAVE
Definition: libbladeRF.h:1587
BLADERF_FPGA_115KLE
@ BLADERF_FPGA_115KLE
Definition: libbladeRF.h:427
bladerf_dev_speed
bladerf_dev_speed
Definition: libbladeRF.h:436
BLADERF_LOG_LEVEL_WARNING
@ BLADERF_LOG_LEVEL_WARNING
Definition: libbladeRF.h:4006
bladerf_get_gain_stage_range
API_EXPORT int CALL_CONV bladerf_get_gain_stage_range(struct bladerf *dev, bladerf_channel ch, const char *stage, const struct bladerf_range **range)
bladerf_image::reserved
char reserved[BLADERF_IMAGE_RESERVED_LEN]
Definition: libbladeRF.h:3233
BLADERF_LB_RFIC_BIST
@ BLADERF_LB_RFIC_BIST
Definition: libbladeRF.h:1375
bladerf_devinfo::backend
bladerf_backend backend
Definition: libbladeRF.h:131
bladerf_sync_tx
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)
BLADERF_BACKEND_ANY
@ BLADERF_BACKEND_ANY
Definition: libbladeRF.h:113
CALL_CONV
#define CALL_CONV
Definition: libbladeRF.h:85
bladerf_get_gain_modes
API_EXPORT int CALL_CONV bladerf_get_gain_modes(struct bladerf *dev, bladerf_channel ch, const struct bladerf_gain_modes **modes)
BLADERF_CORR_DCOFF_Q
@ BLADERF_CORR_DCOFF_Q
Definition: libbladeRF.h:1973
BLADERF_GAIN_MGC
@ BLADERF_GAIN_MGC
Definition: libbladeRF.h:774
BLADERF_IMAGE_TYPE_CALIBRATION
@ BLADERF_IMAGE_TYPE_CALIBRATION
Definition: libbladeRF.h:3167
bladerf_set_loopback
API_EXPORT int CALL_CONV bladerf_set_loopback(struct bladerf *dev, bladerf_loopback lb)
BLADERF_LOG_LEVEL_DEBUG
@ BLADERF_LOG_LEVEL_DEBUG
Definition: libbladeRF.h:4004
BLADERF_FORMAT_SC16_Q11_META
@ BLADERF_FORMAT_SC16_Q11_META
Definition: libbladeRF.h:2160
bladerf_trigger_init
API_EXPORT int CALL_CONV bladerf_trigger_init(struct bladerf *dev, bladerf_channel ch, bladerf_trigger_signal signal, struct bladerf_trigger *trigger)
bladerf_trigger_fire
API_EXPORT int CALL_CONV bladerf_trigger_fire(struct bladerf *dev, const struct bladerf_trigger *trigger)
BLADERF_CORR_PHASE
@ BLADERF_CORR_PHASE
Definition: libbladeRF.h:1979
BLADERF_RX_MUX_32BIT_COUNTER
@ BLADERF_RX_MUX_32BIT_COUNTER
Definition: libbladeRF.h:1762
bladerf_trigger
Definition: libbladeRF.h:1628
BLADERF_RX_MUX_BASEBAND
@ BLADERF_RX_MUX_BASEBAND
Definition: libbladeRF.h:1748
bladerf_channel_layout
bladerf_channel_layout
Definition: libbladeRF.h:713
bladerf_image::version
struct bladerf_version version
Definition: libbladeRF.h:3215
bladerf_image_write
API_EXPORT int CALL_CONV bladerf_image_write(struct bladerf *dev, struct bladerf_image *image, const char *file)
bladerf_image_type
bladerf_image_type
Definition: libbladeRF.h:3159
bladerf_metadata::reserved
uint8_t reserved[32]
Definition: libbladeRF.h:2397
bladerf_open
API_EXPORT int CALL_CONV bladerf_open(struct bladerf **device, const char *device_identifier)
BLADERF_TUNING_MODE_INVALID
@ BLADERF_TUNING_MODE_INVALID
Definition: libbladeRF.h:3510
bladerf_range
Definition: libbladeRF.h:393
bladerf_get_frequency
API_EXPORT int CALL_CONV bladerf_get_frequency(struct bladerf *dev, bladerf_channel ch, bladerf_frequency *frequency)
bladerf_sample_rate
unsigned int bladerf_sample_rate
Definition: libbladeRF.h:1030
bladerf_free_image
API_EXPORT void CALL_CONV bladerf_free_image(struct bladerf_image *image)
bladerf_get_gain_stage
API_EXPORT int CALL_CONV bladerf_get_gain_stage(struct bladerf *dev, bladerf_channel ch, const char *stage, bladerf_gain *gain)
bladerf_get_rational_sample_rate
API_EXPORT int CALL_CONV bladerf_get_rational_sample_rate(struct bladerf *dev, bladerf_channel ch, struct bladerf_rational_rate *rate)
BLADERF_TX
@ BLADERF_TX
Definition: libbladeRF.h:707
bladerf_lock_otp
API_EXPORT int CALL_CONV bladerf_lock_otp(struct bladerf *dev)
bladerf_image::address
uint32_t address
Definition: libbladeRF.h:3244
BLADERF_GAIN_FASTATTACK_AGC
@ BLADERF_GAIN_FASTATTACK_AGC
Definition: libbladeRF.h:781
bladerf_trigger::role
bladerf_trigger_role role
Definition: libbladeRF.h:1630
bladerf_quick_tune::freqsel
uint8_t freqsel
Definition: libbladeRF.h:1838
bladerf_quick_tune::nint
uint16_t nint
Definition: libbladeRF.h:1840
bladerf_set_rx_mux
API_EXPORT int CALL_CONV bladerf_set_rx_mux(struct bladerf *dev, bladerf_rx_mux mux)
bladerf_init_devinfo
API_EXPORT void CALL_CONV bladerf_init_devinfo(struct bladerf_devinfo *info)
bladerf_frequency
uint64_t bladerf_frequency
Definition: libbladeRF.h:1228
bladerf_range::step
int64_t step
Definition: libbladeRF.h:396
bladerf_loopback
bladerf_loopback
Definition: libbladeRF.h:1337
bladerf_trigger_arm
API_EXPORT int CALL_CONV bladerf_trigger_arm(struct bladerf *dev, const struct bladerf_trigger *trigger, bool arm, uint64_t resv1, uint64_t resv2)
bladerf_interleave_stream_buffer
API_EXPORT int CALL_CONV bladerf_interleave_stream_buffer(bladerf_channel_layout layout, bladerf_format format, unsigned int buffer_size, void *samples)
BLADERF_GAIN_DEFAULT
@ BLADERF_GAIN_DEFAULT
Definition: libbladeRF.h:768
bladerf_set_rational_sample_rate
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)
bladerf_quick_tune::nfrac
uint32_t nfrac
Definition: libbladeRF.h:1841
BLADERF_RX_X2
@ BLADERF_RX_X2
Definition: libbladeRF.h:716
BLADERF_TRIGGER_MINI_EXP_1
@ BLADERF_TRIGGER_MINI_EXP_1
Definition: libbladeRF.h:1609
bladerf_rx_mux
bladerf_rx_mux
Definition: libbladeRF.h:1743
bladerf_version
API_EXPORT void CALL_CONV bladerf_version(struct bladerf_version *version)
bladerf_get_frequency_range
API_EXPORT int CALL_CONV bladerf_get_frequency_range(struct bladerf *dev, bladerf_channel ch, const struct bladerf_range **range)
bladerf_gain_modes::name
const char * name
Definition: libbladeRF.h:807
bladerf_image::data
uint8_t * data
Definition: libbladeRF.h:3250
bladerf_gain_modes
Definition: libbladeRF.h:806
bladerf_flash_firmware
API_EXPORT int CALL_CONV bladerf_flash_firmware(struct bladerf *dev, const char *firmware)
BLADERF_TX_X2
@ BLADERF_TX_X2
Definition: libbladeRF.h:717
bladerf_alloc_image
API_EXPORT struct bladerf_image *CALL_CONV bladerf_alloc_image(struct bladerf *dev, bladerf_image_type type, uint32_t address, uint32_t length)
bladerf_metadata::status
uint32_t status
Definition: libbladeRF.h:2376
bladerf_is_fpga_configured
API_EXPORT int CALL_CONV bladerf_is_fpga_configured(struct bladerf *dev)
bladerf_get_bootloader_list
API_EXPORT int CALL_CONV bladerf_get_bootloader_list(struct bladerf_devinfo **list)
bladerf_serial
Definition: libbladeRF.h:403
bladerf_devinfo
Definition: libbladeRF.h:130
bladerf_jump_to_bootloader
API_EXPORT int CALL_CONV bladerf_jump_to_bootloader(struct bladerf *dev)
BLADERF_LB_BB_TXLPF_RXVGA2
@ BLADERF_LB_BB_TXLPF_RXVGA2
Definition: libbladeRF.h:1345
BLADERF_LB_BB_TXVGA1_RXLPF
@ BLADERF_LB_BB_TXVGA1_RXLPF
Definition: libbladeRF.h:1354
BLADERF_BACKEND_DUMMY
@ BLADERF_BACKEND_DUMMY
Definition: libbladeRF.h:118
bladerf_sync_config
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)
bladerf_trim_dac_write
API_EXPORT int CALL_CONV bladerf_trim_dac_write(struct bladerf *dev, uint16_t val)
bladerf_version::minor
uint16_t minor
Definition: libbladeRF.h:412
bladerf_version::describe
const char * describe
Definition: libbladeRF.h:414
BLADERF_CORR_GAIN
@ BLADERF_CORR_GAIN
Definition: libbladeRF.h:1985
bladerf_erase_flash_bytes
API_EXPORT int CALL_CONV bladerf_erase_flash_bytes(struct bladerf *dev, uint32_t address, uint32_t length)
bladerf_get_flash_size
API_EXPORT int CALL_CONV bladerf_get_flash_size(struct bladerf *dev, uint32_t *size, bool *is_guess)
BLADERF_TRIGGER_USER_0
@ BLADERF_TRIGGER_USER_0
Definition: libbladeRF.h:1611
bladerf_get_loopback
API_EXPORT int CALL_CONV bladerf_get_loopback(struct bladerf *dev, bladerf_loopback *lb)
bladerf_devstr_matches
API_EXPORT bool CALL_CONV bladerf_devstr_matches(const char *dev_str, struct bladerf_devinfo *info)
bladerf_stream
API_EXPORT int CALL_CONV bladerf_stream(struct bladerf_stream *stream, bladerf_channel_layout layout)
BLADERF_RX_MUX_12BIT_COUNTER
@ BLADERF_RX_MUX_12BIT_COUNTER
Definition: libbladeRF.h:1755