libbladeRF  2.4.1-0.2022.11-1
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 (0x02040100)
55 
56 #ifdef __cplusplus
57 extern "C" {
58 #else
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_
82 # define API_EXPORT
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);
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 
360 
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 {
430  BLADERF_FPGA_A9 = 301
432 
437 typedef enum {
438  BLADERF_DEVICE_SPEED_UNKNOWN,
439  BLADERF_DEVICE_SPEED_HIGH,
440  BLADERF_DEVICE_SPEED_SUPER
442 
449 typedef enum {
454 
470 int CALL_CONV bladerf_get_serial(struct bladerf *dev, char *serial);
471 
495 int CALL_CONV bladerf_get_serial_struct(struct bladerf *dev,
496  struct bladerf_serial *serial);
497 
508 int CALL_CONV bladerf_get_fpga_size(struct bladerf *dev,
509  bladerf_fpga_size *size);
510 
521 int CALL_CONV bladerf_get_fpga_bytes(struct bladerf *dev, size_t *size);
522 
537 int CALL_CONV bladerf_get_flash_size(struct bladerf *dev,
538  uint32_t *size,
539  bool *is_guess);
540 
551 int CALL_CONV bladerf_fw_version(struct bladerf *dev,
552  struct bladerf_version *version);
553 
563 int CALL_CONV bladerf_is_fpga_configured(struct bladerf *dev);
564 
574 int CALL_CONV bladerf_fpga_version(struct bladerf *dev,
575  struct bladerf_version *version);
576 
592 int CALL_CONV bladerf_get_fpga_source(struct bladerf *dev,
593  bladerf_fpga_source *source);
594 
604 
614 const char *CALL_CONV bladerf_get_board_name(struct bladerf *dev);
615 
649 typedef int bladerf_channel;
650 
664 #define BLADERF_CHANNEL_RX(ch) (bladerf_channel)(((ch) << 1) | 0x0)
665 
679 #define BLADERF_CHANNEL_TX(ch) (bladerf_channel)(((ch) << 1) | 0x1)
680 
684 #define BLADERF_CHANNEL_INVALID (bladerf_channel)(-1)
685 
687 #define BLADERF_DIRECTION_MASK (0x1)
691 /* Backwards compatible mapping to `bladerf_module`. */
692 typedef bladerf_channel bladerf_module;
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)
702 
706 typedef enum {
710 
714 typedef enum {
720 
730 size_t CALL_CONV bladerf_get_channel_count(struct bladerf *dev,
731  bladerf_direction dir);
732 
748 typedef int bladerf_gain;
749 
760 typedef enum {
770 
776 
783 
790 
798 
800 #define BLADERF_GAIN_AUTOMATIC BLADERF_GAIN_DEFAULT
802 #define BLADERF_GAIN_MANUAL BLADERF_GAIN_MGC
803 
808  const char *name;
810 };
811 
838 int CALL_CONV bladerf_set_gain(struct bladerf *dev,
839  bladerf_channel ch,
840  bladerf_gain gain);
841 
852 int CALL_CONV bladerf_get_gain(struct bladerf *dev,
853  bladerf_channel ch,
854  bladerf_gain *gain);
855 
875 int CALL_CONV bladerf_set_gain_mode(struct bladerf *dev,
876  bladerf_channel ch,
877  bladerf_gain_mode mode);
878 
893 int CALL_CONV bladerf_get_gain_mode(struct bladerf *dev,
894  bladerf_channel ch,
895  bladerf_gain_mode *mode);
896 
916 int CALL_CONV bladerf_get_gain_modes(struct bladerf *dev,
917  bladerf_channel ch,
918  const struct bladerf_gain_modes **modes);
919 
933 int CALL_CONV bladerf_get_gain_range(struct bladerf *dev,
934  bladerf_channel ch,
935  const struct bladerf_range **range);
936 
950 int CALL_CONV bladerf_set_gain_stage(struct bladerf *dev,
951  bladerf_channel ch,
952  const char *stage,
953  bladerf_gain gain);
954 
968 int CALL_CONV bladerf_get_gain_stage(struct bladerf *dev,
969  bladerf_channel ch,
970  const char *stage,
971  bladerf_gain *gain);
972 
990 int CALL_CONV bladerf_get_gain_stage_range(struct bladerf *dev,
991  bladerf_channel ch,
992  const char *stage,
993  const struct bladerf_range **range);
994 
1009 API_EXPORT
1010 int CALL_CONV bladerf_get_gain_stages(struct bladerf *dev,
1011  bladerf_channel ch,
1012  const char **stages,
1013  size_t count);
1014 
1031 typedef unsigned int bladerf_sample_rate;
1032 
1042  uint64_t integer;
1043  uint64_t num;
1044  uint64_t den;
1046 };
1047 
1065 API_EXPORT
1066 int CALL_CONV bladerf_set_sample_rate(struct bladerf *dev,
1067  bladerf_channel ch,
1068  bladerf_sample_rate rate,
1069  bladerf_sample_rate *actual);
1070 
1085 API_EXPORT
1086 int CALL_CONV
1088  bladerf_channel ch,
1089  struct bladerf_rational_rate *rate,
1090  struct bladerf_rational_rate *actual);
1100 API_EXPORT
1101 int CALL_CONV bladerf_get_sample_rate(struct bladerf *dev,
1102  bladerf_channel ch,
1103  bladerf_sample_rate *rate);
1104 
1114 API_EXPORT
1116  bladerf_channel ch,
1117  const struct bladerf_range **range);
1118 
1128 API_EXPORT
1129 int CALL_CONV
1131  bladerf_channel ch,
1132  struct bladerf_rational_rate *rate);
1133 
1151 typedef unsigned int bladerf_bandwidth;
1152 
1171 API_EXPORT
1172 int CALL_CONV bladerf_set_bandwidth(struct bladerf *dev,
1173  bladerf_channel ch,
1174  bladerf_bandwidth bandwidth,
1175  bladerf_bandwidth *actual);
1176 
1186 API_EXPORT
1187 int CALL_CONV bladerf_get_bandwidth(struct bladerf *dev,
1188  bladerf_channel ch,
1189  bladerf_bandwidth *bandwidth);
1190 
1200 API_EXPORT
1201 int CALL_CONV bladerf_get_bandwidth_range(struct bladerf *dev,
1202  bladerf_channel ch,
1203  const struct bladerf_range **range);
1204 
1229 typedef uint64_t bladerf_frequency;
1230 
1232 #define BLADERF_PRIuFREQ PRIu64
1234 #define BLADERF_PRIxFREQ PRIx64
1236 #define BLADERF_SCNuFREQ SCNu64
1238 #define BLADERF_SCNxFREQ SCNx64
1239 
1258 API_EXPORT
1259 int CALL_CONV bladerf_select_band(struct bladerf *dev,
1260  bladerf_channel ch,
1261  bladerf_frequency frequency);
1262 
1286 API_EXPORT
1287 int CALL_CONV bladerf_set_frequency(struct bladerf *dev,
1288  bladerf_channel ch,
1289  bladerf_frequency frequency);
1299 API_EXPORT
1300 int CALL_CONV bladerf_get_frequency(struct bladerf *dev,
1301  bladerf_channel ch,
1302  bladerf_frequency *frequency);
1303 
1313 API_EXPORT
1314 int CALL_CONV bladerf_get_frequency_range(struct bladerf *dev,
1315  bladerf_channel ch,
1316  const struct bladerf_range **range);
1317 
1338 typedef enum {
1341 
1344 
1347 
1350 
1353 
1356 
1362 
1368 
1374 
1378 
1383  const char *name;
1385 };
1386 
1402 API_EXPORT
1404  struct bladerf *dev, const struct bladerf_loopback_modes **modes);
1405 
1415  struct bladerf *dev, bladerf_loopback mode);
1416 
1430 API_EXPORT
1431 int CALL_CONV bladerf_set_loopback(struct bladerf *dev, bladerf_loopback lb);
1432 
1441 API_EXPORT
1442 int CALL_CONV bladerf_get_loopback(struct bladerf *dev, bladerf_loopback *lb);
1443 
1567 typedef enum {
1570 
1576 
1582 
1590 
1606 typedef enum {
1621 
1633  uint64_t options;
1635 };
1636 
1652 API_EXPORT
1653 int CALL_CONV bladerf_trigger_init(struct bladerf *dev,
1654  bladerf_channel ch,
1655  bladerf_trigger_signal signal,
1656  struct bladerf_trigger *trigger);
1657 
1678 API_EXPORT
1679 int CALL_CONV bladerf_trigger_arm(struct bladerf *dev,
1680  const struct bladerf_trigger *trigger,
1681  bool arm,
1682  uint64_t resv1,
1683  uint64_t resv2);
1684 
1696 API_EXPORT
1697 int CALL_CONV bladerf_trigger_fire(struct bladerf *dev,
1698  const struct bladerf_trigger *trigger);
1699 
1719 API_EXPORT
1720 int CALL_CONV bladerf_trigger_state(struct bladerf *dev,
1721  const struct bladerf_trigger *trigger,
1722  bool *is_armed,
1723  bool *has_fired,
1724  bool *fire_requested,
1725  uint64_t *resv1,
1726  uint64_t *resv2);
1727 
1744 typedef enum {
1747 
1750 
1757 
1764 
1765  /* RX_MUX setting 0x3 is reserved for future use */
1766 
1769 } bladerf_rx_mux;
1770 
1772 /* Backwards compatible mapping for `bladerf_rx_mux`. */
1773 #define BLADERF_RX_MUX_BASEBAND_LMS BLADERF_RX_MUX_BASEBAND
1784 API_EXPORT
1785 int CALL_CONV bladerf_set_rx_mux(struct bladerf *dev, bladerf_rx_mux mux);
1786 
1795 API_EXPORT
1796 int CALL_CONV bladerf_get_rx_mux(struct bladerf *dev, bladerf_rx_mux *mode);
1797 
1818 typedef uint64_t bladerf_timestamp;
1819 
1824 #define BLADERF_RETUNE_NOW (bladerf_timestamp)0
1825 
1836  union {
1837  /* bladeRF1 quick tune parameters */
1838  struct {
1839  uint8_t freqsel;
1840  uint8_t vcocap;
1841  uint16_t nint;
1842  uint32_t nfrac;
1843  uint8_t flags;
1844  uint8_t xb_gpio;
1845  };
1846  /* bladeRF2 quick tune parameters */
1847  struct {
1848  uint16_t nios_profile;
1849  uint8_t rffe_profile;
1850  uint8_t port;
1851  uint8_t spdt;
1852  };
1853  };
1854 };
1855 
1884 API_EXPORT
1885 int CALL_CONV bladerf_schedule_retune(struct bladerf *dev,
1886  bladerf_channel ch,
1887  bladerf_timestamp timestamp,
1888  bladerf_frequency frequency,
1889  struct bladerf_quick_tune *quick_tune);
1890 
1903 API_EXPORT
1905  bladerf_channel ch);
1906 
1927 API_EXPORT
1928 int CALL_CONV bladerf_get_quick_tune(struct bladerf *dev,
1929  bladerf_channel ch,
1930  struct bladerf_quick_tune *quick_tune);
1931 
1953 
1963 typedef enum {
1969 
1975 
1981 
1988 
1990 /* Backwards compatible mapping to `bladerf_correction`. */
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
2010 API_EXPORT
2011 int CALL_CONV bladerf_set_correction(struct bladerf *dev,
2012  bladerf_channel ch,
2013  bladerf_correction corr,
2014  bladerf_correction_value value);
2015 
2026 API_EXPORT
2027 int CALL_CONV bladerf_get_correction(struct bladerf *dev,
2028  bladerf_channel ch,
2029  bladerf_correction corr,
2030  bladerf_correction_value *value);
2031 
2045 #define BLADERF_PRIuTS PRIu64
2047 #define BLADERF_PRIxTS PRIx64
2049 #define BLADERF_SCNuTS SCNu64
2051 #define BLADERF_SCNxTS SCNx64
2052 
2064 typedef enum {
2121 
2162 
2203 } bladerf_format;
2204 
2211 /*
2212  * Metadata status bits
2213  *
2214  * These are used in conjunction with the bladerf_metadata structure's `status`
2215  * field.
2216  */
2217 
2224 #define BLADERF_META_STATUS_OVERRUN (1 << 0)
2225 
2234 #define BLADERF_META_STATUS_UNDERRUN (1 << 1)
2235 
2236 /*
2237  * Metadata flags
2238  *
2239  * These are used in conjunction with the bladerf_metadata structure's `flags`
2240  * field.
2241  */
2242 
2257 #define BLADERF_META_FLAG_TX_BURST_START (1 << 0)
2258 
2285 #define BLADERF_META_FLAG_TX_BURST_END (1 << 1)
2286 
2295 #define BLADERF_META_FLAG_TX_NOW (1 << 2)
2296 
2315 #define BLADERF_META_FLAG_TX_UPDATE_TIMESTAMP (1 << 3)
2316 
2322 #define BLADERF_META_FLAG_RX_NOW (1 << 31)
2323 
2328 #define BLADERF_META_FLAG_RX_HW_UNDERFLOW (1 << 0)
2329 
2334 #define BLADERF_META_FLAG_RX_HW_MINIEXP1 (1 << 16)
2335 
2340 #define BLADERF_META_FLAG_RX_HW_MINIEXP2 (1 << 17)
2341 
2355 
2368  uint32_t flags;
2369 
2377  uint32_t status;
2378 
2392  unsigned int actual_count;
2393 
2398  uint8_t reserved[32];
2399 };
2400 
2447 API_EXPORT
2449  bladerf_format format,
2450  unsigned int buffer_size,
2451  void *samples);
2452 
2475 API_EXPORT
2477  bladerf_format format,
2478  unsigned int buffer_size,
2479  void *samples);
2480 
2503 API_EXPORT
2504 int CALL_CONV bladerf_enable_module(struct bladerf *dev,
2505  bladerf_channel ch,
2506  bool enable);
2507 
2549 API_EXPORT
2550 int CALL_CONV bladerf_get_timestamp(struct bladerf *dev,
2551  bladerf_direction dir,
2552  bladerf_timestamp *timestamp);
2553 
2623 API_EXPORT
2624 int CALL_CONV bladerf_sync_config(struct bladerf *dev,
2625  bladerf_channel_layout layout,
2626  bladerf_format format,
2627  unsigned int num_buffers,
2628  unsigned int buffer_size,
2629  unsigned int num_transfers,
2630  unsigned int stream_timeout);
2631 
2665 API_EXPORT
2666 int CALL_CONV bladerf_sync_tx(struct bladerf *dev,
2667  const void *samples,
2668  unsigned int num_samples,
2669  struct bladerf_metadata *metadata,
2670  unsigned int timeout_ms);
2671 
2705 API_EXPORT
2706 int CALL_CONV bladerf_sync_rx(struct bladerf *dev,
2707  void *samples,
2708  unsigned int num_samples,
2709  struct bladerf_metadata *metadata,
2710  unsigned int timeout_ms);
2711 
2712 
2735 #define BLADERF_STREAM_SHUTDOWN (NULL)
2736 
2742 #define BLADERF_STREAM_NO_DATA ((void *)(-1))
2743 
2745 struct bladerf_stream;
2746 
2794 typedef void *(*bladerf_stream_cb)(struct bladerf *dev,
2795  struct bladerf_stream *stream,
2796  struct bladerf_metadata *meta,
2797  void *samples,
2798  size_t num_samples,
2799  void *user_data);
2800 
2863 API_EXPORT
2865  struct bladerf *dev,
2866  bladerf_stream_cb callback,
2867  void ***buffers,
2868  size_t num_buffers,
2869  bladerf_format format,
2870  size_t samples_per_buffer,
2871  size_t num_transfers,
2872  void *user_data);
2873 
2894 API_EXPORT
2896  bladerf_channel_layout layout);
2897 
2925 API_EXPORT
2927  void *buffer,
2928  unsigned int timeout_ms);
2929 
2947 API_EXPORT
2949  void *buffer);
2950 
2951 
2963 API_EXPORT
2965 
2975 API_EXPORT
2976 int CALL_CONV bladerf_set_stream_timeout(struct bladerf *dev,
2977  bladerf_direction dir,
2978  unsigned int timeout);
2979 
2990 API_EXPORT
2991 int CALL_CONV bladerf_get_stream_timeout(struct bladerf *dev,
2992  bladerf_direction dir,
2993  unsigned int *timeout);
2994 
3024 API_EXPORT
3025 int CALL_CONV bladerf_flash_firmware(struct bladerf *dev, const char *firmware);
3026 
3037 API_EXPORT
3038 int CALL_CONV bladerf_load_fpga(struct bladerf *dev, const char *fpga);
3039 
3050 API_EXPORT
3051 int CALL_CONV bladerf_flash_fpga(struct bladerf *dev, const char *fpga_image);
3052 
3060 API_EXPORT
3061 int CALL_CONV bladerf_erase_stored_fpga(struct bladerf *dev);
3062 
3070 API_EXPORT
3071 int CALL_CONV bladerf_device_reset(struct bladerf *dev);
3072 
3082 API_EXPORT
3083 int CALL_CONV bladerf_get_fw_log(struct bladerf *dev, const char *filename);
3084 
3095 API_EXPORT
3096 int CALL_CONV bladerf_jump_to_bootloader(struct bladerf *dev);
3097 
3113 API_EXPORT
3115 
3139 API_EXPORT
3140 int CALL_CONV bladerf_load_fw_from_bootloader(const char *device_identifier,
3141  bladerf_backend backend,
3142  uint8_t bus,
3143  uint8_t addr,
3144  const char *file);
3145 
3160 typedef enum {
3175 
3177 #define BLADERF_IMAGE_MAGIC_LEN 7
3178 
3180 #define BLADERF_IMAGE_CHECKSUM_LEN 32
3181 
3183 #define BLADERF_IMAGE_RESERVED_LEN 128
3184 
3205 
3211 
3217  struct bladerf_version version;
3218 
3220  uint64_t timestamp;
3221 
3231 
3236 
3241 
3246  uint32_t address;
3247 
3249  uint32_t length;
3250 
3252  uint8_t *data;
3253 };
3254 
3278 API_EXPORT
3279 struct bladerf_image *CALL_CONV bladerf_alloc_image(struct bladerf *dev,
3281  uint32_t address,
3282  uint32_t length);
3283 
3297 API_EXPORT
3299  struct bladerf *dev, bladerf_fpga_size fpga_size, uint16_t vctcxo_trim);
3300 
3308 API_EXPORT
3310 
3326 API_EXPORT
3327 int CALL_CONV bladerf_image_write(struct bladerf *dev,
3328  struct bladerf_image *image,
3329  const char *file);
3330 
3352 API_EXPORT
3353 int CALL_CONV bladerf_image_read(struct bladerf_image *image, const char *file);
3354 
3386 typedef enum {
3389 
3392 
3395 
3399 
3408 API_EXPORT
3411 
3422 API_EXPORT
3425 
3446 API_EXPORT
3447 int CALL_CONV bladerf_get_vctcxo_trim(struct bladerf *dev, uint16_t *trim);
3448 
3459 API_EXPORT
3460 int CALL_CONV bladerf_trim_dac_write(struct bladerf *dev, uint16_t val);
3461 
3476 API_EXPORT
3477 int CALL_CONV bladerf_trim_dac_read(struct bladerf *dev, uint16_t *val);
3478 
3510 typedef enum {
3513 
3519 
3523 
3533 API_EXPORT
3534 int CALL_CONV bladerf_set_tuning_mode(struct bladerf *dev,
3535  bladerf_tuning_mode mode);
3536 
3545 API_EXPORT
3546 int CALL_CONV bladerf_get_tuning_mode(struct bladerf *dev,
3547  bladerf_tuning_mode *mode);
3548 
3571 #define BLADERF_TRIGGER_REG_ARM ((uint8_t)(1 << 0))
3572 
3582 #define BLADERF_TRIGGER_REG_FIRE ((uint8_t)(1 << 1))
3583 
3592 #define BLADERF_TRIGGER_REG_MASTER ((uint8_t)(1 << 2))
3593 
3600 #define BLADERF_TRIGGER_REG_LINE ((uint8_t)(1 << 3))
3601 
3614 API_EXPORT
3615 int CALL_CONV bladerf_read_trigger(struct bladerf *dev,
3616  bladerf_channel ch,
3617  bladerf_trigger_signal signal,
3618  uint8_t *val);
3619 
3631 API_EXPORT
3632 int CALL_CONV bladerf_write_trigger(struct bladerf *dev,
3633  bladerf_channel ch,
3634  bladerf_trigger_signal signal,
3635  uint8_t val);
3636 
3659 API_EXPORT
3660 int CALL_CONV bladerf_wishbone_master_read(struct bladerf *dev, uint32_t addr, uint32_t *data);
3661 
3672 API_EXPORT
3673 int CALL_CONV bladerf_wishbone_master_write(struct bladerf *dev, uint32_t addr, uint32_t val);
3674 
3697 API_EXPORT
3698 int CALL_CONV bladerf_config_gpio_read(struct bladerf *dev, uint32_t *val);
3699 
3712 API_EXPORT
3713 int CALL_CONV bladerf_config_gpio_write(struct bladerf *dev, uint32_t val);
3714 
3750 API_EXPORT
3751 int CALL_CONV bladerf_erase_flash(struct bladerf *dev,
3752  uint32_t erase_block,
3753  uint32_t count);
3754 
3768 API_EXPORT
3769 int CALL_CONV bladerf_erase_flash_bytes(struct bladerf *dev,
3770  uint32_t address,
3771  uint32_t length);
3772 
3792 API_EXPORT
3793 int CALL_CONV bladerf_read_flash(struct bladerf *dev,
3794  uint8_t *buf,
3795  uint32_t page,
3796  uint32_t count);
3797 
3813 API_EXPORT
3814 int CALL_CONV bladerf_read_flash_bytes(struct bladerf *dev,
3815  uint8_t *buf,
3816  uint32_t address,
3817  uint32_t bytes);
3818 
3837 API_EXPORT
3838 int CALL_CONV bladerf_write_flash(struct bladerf *dev,
3839  const uint8_t *buf,
3840  uint32_t page,
3841  uint32_t count);
3842 
3857 API_EXPORT
3858 int CALL_CONV bladerf_write_flash_bytes(struct bladerf *dev,
3859  const uint8_t *buf,
3860  uint32_t address,
3861  uint32_t length);
3862 
3873 API_EXPORT
3874 int CALL_CONV bladerf_lock_otp(struct bladerf *dev);
3875 
3888 API_EXPORT
3889 int CALL_CONV bladerf_read_otp(struct bladerf *dev,
3890  uint8_t *buf);
3891 
3904 API_EXPORT
3905 int CALL_CONV bladerf_write_otp(struct bladerf *dev,
3906  uint8_t *buf);
3907 
3930 API_EXPORT
3931 int CALL_CONV bladerf_set_rf_port(struct bladerf *dev,
3932  bladerf_channel ch,
3933  const char *port);
3934 
3944 API_EXPORT
3945 int CALL_CONV bladerf_get_rf_port(struct bladerf *dev,
3946  bladerf_channel ch,
3947  const char **port);
3948 
3963 API_EXPORT
3964 int CALL_CONV bladerf_get_rf_ports(struct bladerf *dev,
3965  bladerf_channel ch,
3966  const char **ports,
3967  unsigned int count);
3968 
3994 typedef enum {
3996  BLADERF_XB_100,
4003 
4012 API_EXPORT
4013 int CALL_CONV bladerf_expansion_attach(struct bladerf *dev, bladerf_xb xb);
4014 
4023 API_EXPORT
4025  bladerf_xb *xb);
4026 
4043 typedef enum {
4052 
4061 API_EXPORT
4063 
4077 API_EXPORT
4079 
4098 // clang-format off
4099 #define BLADERF_ERR_UNEXPECTED (-1)
4100 #define BLADERF_ERR_RANGE (-2)
4101 #define BLADERF_ERR_INVAL (-3)
4102 #define BLADERF_ERR_MEM (-4)
4103 #define BLADERF_ERR_IO (-5)
4104 #define BLADERF_ERR_TIMEOUT (-6)
4105 #define BLADERF_ERR_NODEV (-7)
4106 #define BLADERF_ERR_UNSUPPORTED (-8)
4107 #define BLADERF_ERR_MISALIGNED (-9)
4108 #define BLADERF_ERR_CHECKSUM (-10)
4109 #define BLADERF_ERR_NO_FILE (-11)
4110 #define BLADERF_ERR_UPDATE_FPGA (-12)
4111 #define BLADERF_ERR_UPDATE_FW (-13)
4112 #define BLADERF_ERR_TIME_PAST (-14)
4113 #define BLADERF_ERR_QUEUE_FULL (-15)
4115 #define BLADERF_ERR_FPGA_OP (-16)
4116 #define BLADERF_ERR_PERMISSION (-17)
4118 #define BLADERF_ERR_WOULD_BLOCK (-18)
4123 #define BLADERF_ERR_NOT_INIT (-19)
4125 // clang-format on
4126 
4134 API_EXPORT
4135 const char *CALL_CONV bladerf_strerror(int error);
4136 
4139 #include <bladeRF1.h>
4140 #include <bladeRF2.h>
4141 
4142 #ifdef __cplusplus
4143 }
4144 #endif
4145 
4146 #endif /* LIBBLADERF_H_ */
bladeRF1-specific API
bladeRF2-specific API
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_get_bandwidth(struct bladerf *dev, bladerf_channel ch, bladerf_bandwidth *bandwidth)
API_EXPORT int CALL_CONV bladerf_get_bandwidth_range(struct bladerf *dev, bladerf_channel ch, const struct bladerf_range **range)
unsigned int bladerf_bandwidth
Definition: libbladeRF.h:1151
bladerf_channel_layout
Definition: libbladeRF.h:714
API_EXPORT size_t CALL_CONV bladerf_get_channel_count(struct bladerf *dev, bladerf_direction dir)
int bladerf_channel
Definition: libbladeRF.h:649
bladerf_direction
Definition: libbladeRF.h:706
@ BLADERF_RX_X1
Definition: libbladeRF.h:715
@ BLADERF_RX_X2
Definition: libbladeRF.h:717
@ BLADERF_TX_X2
Definition: libbladeRF.h:718
@ BLADERF_TX_X1
Definition: libbladeRF.h:716
@ BLADERF_TX
Definition: libbladeRF.h:708
@ BLADERF_RX
Definition: libbladeRF.h:707
API_EXPORT int CALL_CONV bladerf_config_gpio_read(struct bladerf *dev, uint32_t *val)
API_EXPORT int CALL_CONV bladerf_config_gpio_write(struct bladerf *dev, uint32_t val)
API_EXPORT int CALL_CONV bladerf_set_correction(struct bladerf *dev, bladerf_channel ch, bladerf_correction corr, bladerf_correction_value value)
bladerf_correction
Definition: libbladeRF.h:1963
API_EXPORT int CALL_CONV bladerf_get_correction(struct bladerf *dev, bladerf_channel ch, bladerf_correction corr, bladerf_correction_value *value)
int16_t bladerf_correction_value
Definition: libbladeRF.h:1952
@ BLADERF_CORR_DCOFF_Q
Definition: libbladeRF.h:1974
@ BLADERF_CORR_PHASE
Definition: libbladeRF.h:1980
@ BLADERF_CORR_GAIN
Definition: libbladeRF.h:1986
@ BLADERF_CORR_DCOFF_I
Definition: libbladeRF.h:1968
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_set_gain_mode(struct bladerf *dev, bladerf_channel ch, bladerf_gain_mode mode)
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_set_gain_stage(struct bladerf *dev, bladerf_channel ch, const char *stage, bladerf_gain gain)
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_gain_stages(struct bladerf *dev, bladerf_channel ch, const char **stages, size_t count)
API_EXPORT int CALL_CONV bladerf_get_gain_range(struct bladerf *dev, bladerf_channel ch, const struct bladerf_range **range)
int bladerf_gain
Definition: libbladeRF.h:748
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_set_gain(struct bladerf *dev, bladerf_channel ch, bladerf_gain gain)
bladerf_gain_mode
Definition: libbladeRF.h:760
API_EXPORT int CALL_CONV bladerf_get_gain(struct bladerf *dev, bladerf_channel ch, bladerf_gain *gain)
@ BLADERF_GAIN_SLOWATTACK_AGC
Definition: libbladeRF.h:789
@ BLADERF_GAIN_DEFAULT
Definition: libbladeRF.h:769
@ BLADERF_GAIN_MGC
Definition: libbladeRF.h:775
@ BLADERF_GAIN_FASTATTACK_AGC
Definition: libbladeRF.h:782
@ BLADERF_GAIN_HYBRID_AGC
Definition: libbladeRF.h:796
API_EXPORT int CALL_CONV bladerf_image_read(struct bladerf_image *image, const char *file)
API_EXPORT struct bladerf_image *CALL_CONV bladerf_alloc_image(struct bladerf *dev, bladerf_image_type type, uint32_t address, uint32_t length)
bladerf_image_type
Definition: libbladeRF.h:3160
API_EXPORT int CALL_CONV bladerf_image_write(struct bladerf *dev, struct bladerf_image *image, const char *file)
#define BLADERF_IMAGE_RESERVED_LEN
Definition: libbladeRF.h:3183
API_EXPORT void CALL_CONV bladerf_free_image(struct bladerf_image *image)
#define BLADERF_IMAGE_MAGIC_LEN
Definition: libbladeRF.h:3177
API_EXPORT struct bladerf_image *CALL_CONV bladerf_alloc_cal_image(struct bladerf *dev, bladerf_fpga_size fpga_size, uint16_t vctcxo_trim)
#define BLADERF_IMAGE_CHECKSUM_LEN
Definition: libbladeRF.h:3180
@ BLADERF_IMAGE_TYPE_FIRMWARE
Definition: libbladeRF.h:3163
@ BLADERF_IMAGE_TYPE_CALIBRATION
Definition: libbladeRF.h:3168
@ BLADERF_IMAGE_TYPE_RX_IQ_CAL
Definition: libbladeRF.h:3171
@ BLADERF_IMAGE_TYPE_INVALID
Definition: libbladeRF.h:3161
@ BLADERF_IMAGE_TYPE_FPGA_40KLE
Definition: libbladeRF.h:3164
@ BLADERF_IMAGE_TYPE_RX_DC_CAL
Definition: libbladeRF.h:3169
@ BLADERF_IMAGE_TYPE_TX_IQ_CAL
Definition: libbladeRF.h:3172
@ BLADERF_IMAGE_TYPE_TX_DC_CAL
Definition: libbladeRF.h:3170
@ BLADERF_IMAGE_TYPE_FPGA_A9
Definition: libbladeRF.h:3167
@ BLADERF_IMAGE_TYPE_FPGA_A5
Definition: libbladeRF.h:3173
@ BLADERF_IMAGE_TYPE_RAW
Definition: libbladeRF.h:3162
@ BLADERF_IMAGE_TYPE_FPGA_A4
Definition: libbladeRF.h:3166
@ BLADERF_IMAGE_TYPE_FPGA_115KLE
Definition: libbladeRF.h:3165
API_EXPORT int CALL_CONV bladerf_get_fpga_source(struct bladerf *dev, bladerf_fpga_source *source)
API_EXPORT int CALL_CONV bladerf_get_serial_struct(struct bladerf *dev, struct bladerf_serial *serial)
bladerf_fpga_size
Definition: libbladeRF.h:424
API_EXPORT int CALL_CONV bladerf_get_serial(struct bladerf *dev, char *serial)
API_EXPORT int CALL_CONV bladerf_is_fpga_configured(struct bladerf *dev)
bladerf_dev_speed
Definition: libbladeRF.h:437
API_EXPORT int CALL_CONV bladerf_get_fpga_bytes(struct bladerf *dev, size_t *size)
API_EXPORT int CALL_CONV bladerf_fw_version(struct bladerf *dev, struct bladerf_version *version)
API_EXPORT int CALL_CONV bladerf_get_fpga_size(struct bladerf *dev, bladerf_fpga_size *size)
API_EXPORT int CALL_CONV bladerf_get_flash_size(struct bladerf *dev, uint32_t *size, bool *is_guess)
API_EXPORT int CALL_CONV bladerf_fpga_version(struct bladerf *dev, struct bladerf_version *version)
API_EXPORT const char *CALL_CONV bladerf_get_board_name(struct bladerf *dev)
bladerf_fpga_source
Definition: libbladeRF.h:449
API_EXPORT bladerf_dev_speed CALL_CONV bladerf_device_speed(struct bladerf *dev)
@ BLADERF_FPGA_UNKNOWN
Definition: libbladeRF.h:425
@ BLADERF_FPGA_A5
Definition: libbladeRF.h:429
@ BLADERF_FPGA_A4
Definition: libbladeRF.h:428
@ BLADERF_FPGA_40KLE
Definition: libbladeRF.h:426
@ BLADERF_FPGA_115KLE
Definition: libbladeRF.h:427
@ BLADERF_FPGA_A9
Definition: libbladeRF.h:430
@ BLADERF_FPGA_SOURCE_HOST
Definition: libbladeRF.h:452
@ BLADERF_FPGA_SOURCE_UNKNOWN
Definition: libbladeRF.h:450
@ BLADERF_FPGA_SOURCE_FLASH
Definition: libbladeRF.h:451
API_EXPORT void CALL_CONV bladerf_set_usb_reset_on_open(bool enabled)
API_EXPORT void CALL_CONV bladerf_free_device_list(struct bladerf_devinfo *devices)
API_EXPORT int CALL_CONV bladerf_get_devinfo(struct bladerf *dev, struct bladerf_devinfo *info)
API_EXPORT int CALL_CONV bladerf_get_device_list(struct bladerf_devinfo **devices)
bladerf_backend
Definition: libbladeRF.h:112
API_EXPORT void CALL_CONV bladerf_init_devinfo(struct bladerf_devinfo *info)
#define BLADERF_DESCRIPTION_LENGTH
Definition: libbladeRF.h:122
API_EXPORT int CALL_CONV bladerf_get_backendinfo(struct bladerf *dev, struct bladerf_backendinfo *info)
API_EXPORT int CALL_CONV bladerf_get_devinfo_from_str(const char *devstr, struct bladerf_devinfo *info)
#define BLADERF_SERIAL_LENGTH
Definition: libbladeRF.h:125
API_EXPORT void CALL_CONV bladerf_close(struct bladerf *device)
API_EXPORT const char *CALL_CONV bladerf_backend_str(bladerf_backend backend)
API_EXPORT bool CALL_CONV bladerf_devstr_matches(const char *dev_str, struct bladerf_devinfo *info)
API_EXPORT int CALL_CONV bladerf_open(struct bladerf **device, const char *device_identifier)
API_EXPORT int CALL_CONV bladerf_open_with_devinfo(struct bladerf **device, struct bladerf_devinfo *devinfo)
API_EXPORT bool CALL_CONV bladerf_devinfo_matches(const struct bladerf_devinfo *a, const struct bladerf_devinfo *b)
@ BLADERF_BACKEND_ANY
Definition: libbladeRF.h:113
@ BLADERF_BACKEND_LIBUSB
Definition: libbladeRF.h:116
@ BLADERF_BACKEND_LINUX
Definition: libbladeRF.h:115
@ BLADERF_BACKEND_CYPRESS
Definition: libbladeRF.h:117
@ BLADERF_BACKEND_DUMMY
Definition: libbladeRF.h:118
API_EXPORT void CALL_CONV bladerf_version(struct bladerf_version *version)
API_EXPORT void CALL_CONV bladerf_log_set_verbosity(bladerf_log_level level)
bladerf_log_level
Definition: libbladeRF.h:4043
@ BLADERF_LOG_LEVEL_ERROR
Definition: libbladeRF.h:4048
@ BLADERF_LOG_LEVEL_SILENT
Definition: libbladeRF.h:4050
@ BLADERF_LOG_LEVEL_INFO
Definition: libbladeRF.h:4046
@ BLADERF_LOG_LEVEL_WARNING
Definition: libbladeRF.h:4047
@ BLADERF_LOG_LEVEL_VERBOSE
Definition: libbladeRF.h:4044
@ BLADERF_LOG_LEVEL_DEBUG
Definition: libbladeRF.h:4045
@ BLADERF_LOG_LEVEL_CRITICAL
Definition: libbladeRF.h:4049
bladerf_loopback
Definition: libbladeRF.h:1338
API_EXPORT bool CALL_CONV bladerf_is_loopback_mode_supported(struct bladerf *dev, bladerf_loopback mode)
API_EXPORT int CALL_CONV bladerf_set_loopback(struct bladerf *dev, bladerf_loopback lb)
API_EXPORT int CALL_CONV bladerf_get_loopback_modes(struct bladerf *dev, const struct bladerf_loopback_modes **modes)
API_EXPORT int CALL_CONV bladerf_get_loopback(struct bladerf *dev, bladerf_loopback *lb)
@ BLADERF_LB_RFIC_BIST
Definition: libbladeRF.h:1376
@ BLADERF_LB_BB_TXVGA1_RXVGA2
Definition: libbladeRF.h:1349
@ BLADERF_LB_BB_TXLPF_RXVGA2
Definition: libbladeRF.h:1346
@ BLADERF_LB_BB_TXLPF_RXLPF
Definition: libbladeRF.h:1352
@ BLADERF_LB_RF_LNA2
Definition: libbladeRF.h:1367
@ BLADERF_LB_RF_LNA3
Definition: libbladeRF.h:1373
@ BLADERF_LB_BB_TXVGA1_RXLPF
Definition: libbladeRF.h:1355
@ BLADERF_LB_NONE
Definition: libbladeRF.h:1340
@ BLADERF_LB_FIRMWARE
Definition: libbladeRF.h:1343
@ BLADERF_LB_RF_LNA1
Definition: libbladeRF.h:1361
API_EXPORT int CALL_CONV bladerf_get_fw_log(struct bladerf *dev, const char *filename)
API_EXPORT int CALL_CONV bladerf_load_fpga(struct bladerf *dev, const char *fpga)
API_EXPORT int CALL_CONV bladerf_flash_firmware(struct bladerf *dev, const char *firmware)
API_EXPORT int CALL_CONV bladerf_jump_to_bootloader(struct bladerf *dev)
API_EXPORT int CALL_CONV bladerf_get_bootloader_list(struct bladerf_devinfo **list)
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_device_reset(struct bladerf *dev)
API_EXPORT int CALL_CONV bladerf_erase_stored_fpga(struct bladerf *dev)
API_EXPORT int CALL_CONV bladerf_flash_fpga(struct bladerf *dev, const char *fpga_image)
API_EXPORT int CALL_CONV bladerf_get_rx_mux(struct bladerf *dev, bladerf_rx_mux *mode)
API_EXPORT int CALL_CONV bladerf_set_rx_mux(struct bladerf *dev, bladerf_rx_mux mux)
bladerf_rx_mux
Definition: libbladeRF.h:1744
@ BLADERF_RX_MUX_DIGITAL_LOOPBACK
Definition: libbladeRF.h:1768
@ BLADERF_RX_MUX_12BIT_COUNTER
Definition: libbladeRF.h:1756
@ BLADERF_RX_MUX_32BIT_COUNTER
Definition: libbladeRF.h:1763
@ BLADERF_RX_MUX_INVALID
Definition: libbladeRF.h:1746
@ BLADERF_RX_MUX_BASEBAND
Definition: libbladeRF.h:1749
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_rf_port(struct bladerf *dev, bladerf_channel ch, const char **port)
API_EXPORT int CALL_CONV bladerf_set_rf_port(struct bladerf *dev, bladerf_channel ch, const char *port)
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_sample_rate(struct bladerf *dev, bladerf_channel ch, bladerf_sample_rate *rate)
unsigned int bladerf_sample_rate
Definition: libbladeRF.h:1031
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_set_rational_sample_rate(struct bladerf *dev, bladerf_channel ch, struct bladerf_rational_rate *rate, struct bladerf_rational_rate *actual)
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 int CALL_CONV bladerf_get_quick_tune(struct bladerf *dev, bladerf_channel ch, struct bladerf_quick_tune *quick_tune)
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 int CALL_CONV bladerf_cancel_scheduled_retunes(struct bladerf *dev, bladerf_channel ch)
API_EXPORT int CALL_CONV bladerf_erase_flash_bytes(struct bladerf *dev, uint32_t address, uint32_t length)
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_read_otp(struct bladerf *dev, uint8_t *buf)
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_flash_bytes(struct bladerf *dev, uint8_t *buf, uint32_t address, uint32_t bytes)
API_EXPORT int CALL_CONV bladerf_erase_flash(struct bladerf *dev, uint32_t erase_block, uint32_t count)
API_EXPORT int CALL_CONV bladerf_write_otp(struct bladerf *dev, uint8_t *buf)
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_lock_otp(struct bladerf *dev)
API_EXPORT int CALL_CONV bladerf_submit_stream_buffer_nb(struct bladerf_stream *stream, void *buffer)
API_EXPORT void CALL_CONV bladerf_deinit_stream(struct bladerf_stream *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)
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:2794
API_EXPORT int CALL_CONV bladerf_get_stream_timeout(struct bladerf *dev, bladerf_direction dir, unsigned int *timeout)
API_EXPORT int CALL_CONV bladerf_stream(struct bladerf_stream *stream, bladerf_channel_layout layout)
API_EXPORT int CALL_CONV bladerf_set_stream_timeout(struct bladerf *dev, bladerf_direction dir, unsigned int timeout)
API_EXPORT int CALL_CONV bladerf_submit_stream_buffer(struct bladerf_stream *stream, void *buffer, unsigned int timeout_ms)
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_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_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_write_trigger(struct bladerf *dev, bladerf_channel ch, bladerf_trigger_signal signal, uint8_t val)
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_arm(struct bladerf *dev, const struct bladerf_trigger *trigger, bool arm, uint64_t resv1, uint64_t resv2)
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_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_trigger_fire(struct bladerf *dev, const struct bladerf_trigger *trigger)
bladerf_trigger_role
Definition: libbladeRF.h:1567
bladerf_trigger_signal
Definition: libbladeRF.h:1606
@ BLADERF_TRIGGER_ROLE_INVALID
Definition: libbladeRF.h:1569
@ BLADERF_TRIGGER_ROLE_MASTER
Definition: libbladeRF.h:1581
@ BLADERF_TRIGGER_ROLE_DISABLED
Definition: libbladeRF.h:1575
@ BLADERF_TRIGGER_ROLE_SLAVE
Definition: libbladeRF.h:1588
@ BLADERF_TRIGGER_USER_4
Definition: libbladeRF.h:1616
@ BLADERF_TRIGGER_USER_1
Definition: libbladeRF.h:1613
@ BLADERF_TRIGGER_USER_5
Definition: libbladeRF.h:1617
@ BLADERF_TRIGGER_USER_2
Definition: libbladeRF.h:1614
@ BLADERF_TRIGGER_USER_7
Definition: libbladeRF.h:1619
@ BLADERF_TRIGGER_MINI_EXP_1
Definition: libbladeRF.h:1610
@ BLADERF_TRIGGER_USER_0
Definition: libbladeRF.h:1612
@ BLADERF_TRIGGER_USER_3
Definition: libbladeRF.h:1615
@ BLADERF_TRIGGER_J51_1
Definition: libbladeRF.h:1609
@ BLADERF_TRIGGER_USER_6
Definition: libbladeRF.h:1618
@ BLADERF_TRIGGER_J71_4
Definition: libbladeRF.h:1608
@ BLADERF_TRIGGER_INVALID
Definition: libbladeRF.h:1607
API_EXPORT int CALL_CONV bladerf_set_tuning_mode(struct bladerf *dev, bladerf_tuning_mode mode)
bladerf_tuning_mode
Definition: libbladeRF.h:3510
API_EXPORT int CALL_CONV bladerf_get_tuning_mode(struct bladerf *dev, bladerf_tuning_mode *mode)
@ BLADERF_TUNING_MODE_FPGA
Definition: libbladeRF.h:3521
@ BLADERF_TUNING_MODE_INVALID
Definition: libbladeRF.h:3512
@ BLADERF_TUNING_MODE_HOST
Definition: libbladeRF.h:3518
API_EXPORT int CALL_CONV bladerf_get_frequency(struct bladerf *dev, bladerf_channel ch, bladerf_frequency *frequency)
API_EXPORT int CALL_CONV bladerf_set_frequency(struct bladerf *dev, bladerf_channel ch, bladerf_frequency frequency)
uint64_t bladerf_frequency
Definition: libbladeRF.h:1229
API_EXPORT int CALL_CONV bladerf_select_band(struct bladerf *dev, bladerf_channel ch, bladerf_frequency frequency)
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_set_vctcxo_tamer_mode(struct bladerf *dev, bladerf_vctcxo_tamer_mode mode)
API_EXPORT int CALL_CONV bladerf_get_vctcxo_tamer_mode(struct bladerf *dev, bladerf_vctcxo_tamer_mode *mode)
bladerf_vctcxo_tamer_mode
Definition: libbladeRF.h:3386
@ BLADERF_VCTCXO_TAMER_DISABLED
Definition: libbladeRF.h:3391
@ BLADERF_VCTCXO_TAMER_INVALID
Definition: libbladeRF.h:3388
@ BLADERF_VCTCXO_TAMER_1_PPS
Definition: libbladeRF.h:3394
@ BLADERF_VCTCXO_TAMER_10_MHZ
Definition: libbladeRF.h:3397
API_EXPORT int CALL_CONV bladerf_trim_dac_read(struct bladerf *dev, uint16_t *val)
API_EXPORT int CALL_CONV bladerf_trim_dac_write(struct bladerf *dev, uint16_t val)
API_EXPORT int CALL_CONV bladerf_get_vctcxo_trim(struct bladerf *dev, uint16_t *trim)
API_EXPORT int CALL_CONV bladerf_wishbone_master_read(struct bladerf *dev, uint32_t addr, uint32_t *data)
API_EXPORT int CALL_CONV bladerf_wishbone_master_write(struct bladerf *dev, uint32_t addr, uint32_t val)
API_EXPORT int CALL_CONV bladerf_expansion_attach(struct bladerf *dev, bladerf_xb xb)
API_EXPORT int CALL_CONV bladerf_expansion_get_attached(struct bladerf *dev, bladerf_xb *xb)
bladerf_xb
Definition: libbladeRF.h:3994
@ BLADERF_XB_200
Definition: libbladeRF.h:4000
@ BLADERF_XB_NONE
Definition: libbladeRF.h:3995
@ BLADERF_XB_300
Definition: libbladeRF.h:4001
@ BLADERF_XB_100
Definition: libbladeRF.h:3996
API_EXPORT const char *CALL_CONV bladerf_strerror(int error)
API_EXPORT int CALL_CONV bladerf_interleave_stream_buffer(bladerf_channel_layout layout, bladerf_format format, unsigned int buffer_size, void *samples)
bladerf_format
Definition: libbladeRF.h:2064
API_EXPORT int CALL_CONV bladerf_deinterleave_stream_buffer(bladerf_channel_layout layout, bladerf_format format, unsigned int buffer_size, void *samples)
@ BLADERF_FORMAT_SC16_Q11_META
Definition: libbladeRF.h:2161
@ BLADERF_FORMAT_PACKET_META
Definition: libbladeRF.h:2202
@ BLADERF_FORMAT_SC16_Q11
Definition: libbladeRF.h:2120
uint64_t bladerf_timestamp
Definition: libbladeRF.h:1818
API_EXPORT int CALL_CONV bladerf_enable_module(struct bladerf *dev, bladerf_channel ch, bool enable)
API_EXPORT int CALL_CONV bladerf_get_timestamp(struct bladerf *dev, bladerf_direction dir, bladerf_timestamp *timestamp)
#define API_EXPORT
Definition: libbladeRF.h:82
#define CALL_CONV
Definition: libbladeRF.h:85
unsigned int instance
Definition: libbladeRF.h:136
uint8_t usb_addr
Definition: libbladeRF.h:135
char product[BLADERF_DESCRIPTION_LENGTH]
Definition: libbladeRF.h:140
bladerf_backend backend
Definition: libbladeRF.h:131
char serial[BLADERF_SERIAL_LENGTH]
Definition: libbladeRF.h:133
char manufacturer[BLADERF_DESCRIPTION_LENGTH]
Definition: libbladeRF.h:139
uint8_t usb_bus
Definition: libbladeRF.h:134
const char * name
Definition: libbladeRF.h:808
bladerf_gain_mode mode
Definition: libbladeRF.h:809
char reserved[BLADERF_IMAGE_RESERVED_LEN]
Definition: libbladeRF.h:3235
struct bladerf_version version
Definition: libbladeRF.h:3217
uint64_t timestamp
Definition: libbladeRF.h:3220
uint8_t checksum[BLADERF_IMAGE_CHECKSUM_LEN]
Definition: libbladeRF.h:3210
char magic[BLADERF_IMAGE_MAGIC_LEN+1]
Definition: libbladeRF.h:3204
char serial[BLADERF_SERIAL_LENGTH+1]
Definition: libbladeRF.h:3230
uint8_t * data
Definition: libbladeRF.h:3252
uint32_t address
Definition: libbladeRF.h:3246
uint32_t length
Definition: libbladeRF.h:3249
bladerf_image_type type
Definition: libbladeRF.h:3240
bladerf_loopback mode
Definition: libbladeRF.h:1384
unsigned int actual_count
Definition: libbladeRF.h:2392
uint8_t reserved[32]
Definition: libbladeRF.h:2398
bladerf_timestamp timestamp
Definition: libbladeRF.h:2354
uint16_t nios_profile
Definition: libbladeRF.h:1848
int64_t max
Definition: libbladeRF.h:395
int64_t step
Definition: libbladeRF.h:396
int64_t min
Definition: libbladeRF.h:394
char serial[BLADERF_SERIAL_LENGTH]
Definition: libbladeRF.h:404
bladerf_trigger_signal signal
Definition: libbladeRF.h:1632
bladerf_trigger_role role
Definition: libbladeRF.h:1631
bladerf_channel channel
Definition: libbladeRF.h:1630
uint64_t options
Definition: libbladeRF.h:1633
uint16_t major
Definition: libbladeRF.h:411
const char * describe
Definition: libbladeRF.h:414
uint16_t minor
Definition: libbladeRF.h:412
uint16_t patch
Definition: libbladeRF.h:413