libbladeRF  1.7.2
Nuand bladeRF library
libbladeRF.h
Go to the documentation of this file.
1 
22 #ifndef BLADERF_H_
23 #define BLADERF_H_
24 
25 #include <stdint.h>
26 #include <stdlib.h>
27 
53 #define LIBBLADERF_API_VERSION (0x01070200)
54 
55 #ifdef __cplusplus
56 extern "C" {
57 #else
58 /* stdbool.h is not applicable for C++ programs, as the language inherently
59  * provides the bool type.
60  *
61  * Users of Visual Studio 2012 and earlier will need to supply a stdbool.h
62  * implementation, as it is not included with the toolchain. One is provided
63  * with the bladeRF source code. Visual Studio 2013 onward supplies this header.
64  */
65 #include <stdbool.h>
66 #endif
67 
68 #if defined _WIN32 || defined __CYGWIN__
69 # include <windows.h>
70 # define CALL_CONV __cdecl
71 # ifdef __GNUC__
72 # define API_EXPORT __attribute__ ((dllexport))
73 # else
74 # define API_EXPORT __declspec(dllexport)
75 # endif
76 #elif defined _DOXYGEN_ONLY_ || defined MATLAB_LINUX_THUNK_BUILD_
77 
79 # define API_EXPORT
80 
82 # define CALL_CONV
83 #else
84 # define API_EXPORT __attribute__ ((visibility ("default")))
85 # define CALL_CONV
86 #endif
87 
104 struct bladerf;
105 
106 
110 typedef enum {
117 
119 #define BLADERF_SERIAL_LENGTH 33
120 
127  uint8_t usb_bus;
128  uint8_t usb_addr;
129  unsigned int instance;
130 };
131 
142 
150 
160 
172 int CALL_CONV bladerf_get_devinfo(struct bladerf *dev,
173  struct bladerf_devinfo *info);
174 
189 int CALL_CONV bladerf_get_devinfo_from_str(const char *devstr,
190  struct bladerf_devinfo *info);
191 
198  const struct bladerf_devinfo *b);
199 
212 bool CALL_CONV bladerf_devstr_matches(const char *dev_str,
213  struct bladerf_devinfo *info);
214 
237 int CALL_CONV bladerf_open_with_devinfo(struct bladerf **device,
238  struct bladerf_devinfo *devinfo);
239 
298 int CALL_CONV bladerf_open(struct bladerf **device,
299  const char *device_identifier);
300 
312 void CALL_CONV bladerf_close(struct bladerf *device);
313 
328 void CALL_CONV bladerf_set_usb_reset_on_open(bool enabled);
329 
347  uint16_t major;
348  uint16_t minor;
349  uint16_t patch;
350  const char *describe;
355 };
356 
360 typedef enum {
365 
370 typedef enum {
371  BLADERF_DEVICE_SPEED_UNKNOWN,
372  BLADERF_DEVICE_SPEED_HIGH,
373  BLADERF_DEVICE_SPEED_SUPER,
375 
389 int CALL_CONV bladerf_get_serial(struct bladerf *dev, char *serial);
390 
401 int CALL_CONV bladerf_get_vctcxo_trim(struct bladerf *dev, uint16_t *trim);
402 
413 int CALL_CONV bladerf_get_fpga_size(struct bladerf *dev,
414  bladerf_fpga_size *size);
415 
426 int CALL_CONV bladerf_fw_version(struct bladerf *dev,
427  struct bladerf_version *version);
428 
439 int CALL_CONV bladerf_is_fpga_configured(struct bladerf *dev);
440 
450 int CALL_CONV bladerf_fpga_version(struct bladerf *dev,
451  struct bladerf_version *version);
452 
460 bladerf_dev_speed CALL_CONV bladerf_device_speed(struct bladerf *dev);
461 
481 typedef enum
482 {
487 
488 
510 int CALL_CONV bladerf_enable_module(struct bladerf *dev,
511  bladerf_module m, bool enable);
512 
533 #define BLADERF_RXVGA1_GAIN_MIN 5
534 
536 #define BLADERF_RXVGA1_GAIN_MAX 30
537 
539 #define BLADERF_RXVGA2_GAIN_MIN 0
540 
542 #define BLADERF_RXVGA2_GAIN_MAX 30
543 
545 #define BLADERF_TXVGA1_GAIN_MIN (-35)
546 
548 #define BLADERF_TXVGA1_GAIN_MAX (-4)
549 
551 #define BLADERF_TXVGA2_GAIN_MIN 0
552 
554 #define BLADERF_TXVGA2_GAIN_MAX 25
555 
559 typedef enum {
565 
566 #define BLADERF_LNA_GAIN_MID_DB 3
567 #define BLADERF_LNA_GAIN_MAX_DB 6
581 API_EXPORT
582 int CALL_CONV bladerf_set_txvga2(struct bladerf *dev, int gain);
583 
592 API_EXPORT int
593 CALL_CONV bladerf_get_txvga2(struct bladerf *dev, int *gain);
594 
608 int CALL_CONV bladerf_set_txvga1(struct bladerf *dev, int gain);
609 
619 int CALL_CONV bladerf_get_txvga1(struct bladerf *dev, int *gain);
620 
630 int CALL_CONV bladerf_set_lna_gain(struct bladerf *dev, bladerf_lna_gain gain);
631 
639 int CALL_CONV bladerf_get_lna_gain(struct bladerf *dev, bladerf_lna_gain *gain);
640 
654 int CALL_CONV bladerf_set_rxvga1(struct bladerf *dev, int gain);
655 
663 int CALL_CONV bladerf_get_rxvga1(struct bladerf *dev, int *gain);
664 
678 int CALL_CONV bladerf_set_rxvga2(struct bladerf *dev, int gain);
679 
687 int CALL_CONV bladerf_get_rxvga2(struct bladerf *dev, int *gain);
688 
705 int CALL_CONV bladerf_set_gain(struct bladerf *dev, bladerf_module mod, int gain);
706 
721 #define BLADERF_SAMPLERATE_MIN 80000u
722 
733 #define BLADERF_SAMPLERATE_REC_MAX 40000000u
734 
741 typedef enum {
746 
752 
759 
766 
767  /* RX_MUX setting 0x3 is reserved for future use */
768 
773 
775 
780  uint64_t integer;
781  uint64_t num;
782  uint64_t den;
784 };
785 
789 typedef enum {
794 
816 int CALL_CONV bladerf_set_sample_rate(struct bladerf *dev,
817  bladerf_module module,
818  unsigned int rate,
819  unsigned int *actual);
820 
842  struct bladerf *dev,
843  bladerf_module module,
844  struct bladerf_rational_rate *rate,
845  struct bladerf_rational_rate *actual);
856 int CALL_CONV bladerf_get_sample_rate(struct bladerf *dev,
857  bladerf_module module,
858  unsigned int *rate);
859 
871  struct bladerf *dev,
872  bladerf_module module,
873  struct bladerf_rational_rate *rate);
874 
887 int CALL_CONV bladerf_set_sampling(struct bladerf *dev,
888  bladerf_sampling sampling);
889 
899 int CALL_CONV bladerf_set_rx_mux(struct bladerf *dev, bladerf_rx_mux mux);
900 
901 
911 int CALL_CONV bladerf_get_rx_mux(struct bladerf *dev, bladerf_rx_mux *mode);
912 
923 int CALL_CONV bladerf_get_sampling(struct bladerf *dev,
924  bladerf_sampling *sampling);
925 
945 #define BLADERF_BANDWIDTH_MIN 1500000u
946 
948 #define BLADERF_BANDWIDTH_MAX 28000000u
949 
953 typedef enum {
958 
980 int CALL_CONV bladerf_set_bandwidth(struct bladerf *dev, bladerf_module module,
981  unsigned int bandwidth,
982  unsigned int *actual);
983 
994 int CALL_CONV bladerf_get_bandwidth(struct bladerf *dev, bladerf_module module,
995  unsigned int *bandwidth);
996 
1006 API_EXPORT
1007 int CALL_CONV bladerf_set_lpf_mode(struct bladerf *dev, bladerf_module module,
1008  bladerf_lpf_mode mode);
1009 
1019 API_EXPORT
1020 int CALL_CONV bladerf_get_lpf_mode(struct bladerf *dev, bladerf_module module,
1021  bladerf_lpf_mode *mode);
1022 
1023 
1047 #define BLADERF_FREQUENCY_MIN_XB200 0u
1048 
1050 #define BLADERF_FREQUENCY_MIN 237500000u
1051 
1053 #define BLADERF_FREQUENCY_MAX 3800000000u
1054 
1059 #define BLADERF_RETUNE_NOW 0
1060 
1078 typedef enum {
1081 
1087 
1094 
1103  uint8_t freqsel;
1104  uint8_t vcocap;
1105  uint16_t nint;
1106  uint32_t nfrac;
1107  uint8_t flags;
1108 };
1109 
1129 API_EXPORT
1130 int CALL_CONV bladerf_select_band(struct bladerf *dev, bladerf_module module,
1131  unsigned int frequency);
1132 
1152 API_EXPORT
1153 int CALL_CONV bladerf_set_frequency(struct bladerf *dev,
1154  bladerf_module module,
1155  unsigned int frequency);
1156 
1189 API_EXPORT
1190 int CALL_CONV bladerf_schedule_retune(struct bladerf *dev,
1191  bladerf_module module,
1192  uint64_t timestamp,
1193  unsigned int frequency,
1194  struct bladerf_quick_tune *quick_tune);
1195 
1208 API_EXPORT
1209 int CALL_CONV bladerf_cancel_scheduled_retunes(struct bladerf *dev,
1210  bladerf_module module);
1211 
1221 API_EXPORT
1222 int CALL_CONV bladerf_get_frequency(struct bladerf *dev,
1223  bladerf_module module,
1224  unsigned int *frequency);
1225 
1244 API_EXPORT
1245 int CALL_CONV bladerf_get_quick_tune(struct bladerf *dev,
1246  bladerf_module module,
1247  struct bladerf_quick_tune *quick_tune);
1248 
1258 API_EXPORT
1259 int CALL_CONV bladerf_set_tuning_mode(struct bladerf *dev,
1260  bladerf_tuning_mode mode);
1261 
1262 
1283 typedef enum {
1284 
1289 
1294 
1299 
1304 
1309 
1315 
1316 
1322 
1328 
1333 
1335 
1349 API_EXPORT
1350 int CALL_CONV bladerf_set_loopback(struct bladerf *dev, bladerf_loopback l);
1351 
1352 
1361 API_EXPORT
1362 int CALL_CONV bladerf_get_loopback(struct bladerf *dev, bladerf_loopback *l);
1363 
1393 #define BLADERF_SMB_FREQUENCY_MAX 200000000u
1394 
1398 #define BLADERF_SMB_FREQUENCY_MIN ((38400000u * 66u) / (32 * 567))
1399 
1400 
1404 typedef enum {
1431 
1448 API_EXPORT
1449 int CALL_CONV bladerf_set_smb_mode(struct bladerf *dev, bladerf_smb_mode mode);
1450 
1459 API_EXPORT
1460 int CALL_CONV bladerf_get_smb_mode(struct bladerf *dev, bladerf_smb_mode *mode);
1461 
1482 API_EXPORT
1484  struct bladerf *dev,
1485  struct bladerf_rational_rate *rate,
1486  struct bladerf_rational_rate *actual);
1487 
1510 API_EXPORT
1511 int CALL_CONV bladerf_set_smb_frequency(struct bladerf *dev,
1512  uint32_t rate, uint32_t *actual);
1513 
1522 API_EXPORT
1524  struct bladerf *dev,
1525  struct bladerf_rational_rate *rate);
1526 
1535 API_EXPORT
1536 int CALL_CONV bladerf_get_smb_frequency(struct bladerf *dev,
1537  unsigned int *rate);
1538 
1661 typedef enum {
1684 
1697 typedef enum {
1710 
1719 {
1720  bladerf_module module;
1721  bladerf_trigger_role role;
1722  bladerf_trigger_signal signal;
1723  uint64_t options;
1726 };
1727 
1743 API_EXPORT
1744 int CALL_CONV bladerf_trigger_init(struct bladerf *dev,
1745  bladerf_module module,
1746  bladerf_trigger_signal signal,
1747  struct bladerf_trigger *trigger);
1748 
1770 API_EXPORT
1771 int CALL_CONV bladerf_trigger_arm(struct bladerf *dev,
1772  const struct bladerf_trigger *trigger,
1773  bool arm, uint64_t resv1, uint64_t resv2);
1774 
1786 API_EXPORT
1787 int CALL_CONV bladerf_trigger_fire(struct bladerf *dev,
1788  const struct bladerf_trigger *trigger);
1789 
1815 API_EXPORT
1816 int CALL_CONV bladerf_trigger_state(struct bladerf *dev,
1817  const struct bladerf_trigger *trigger,
1818  bool *is_armed,
1819  bool *has_fired,
1820  bool *fire_requested,
1821  uint64_t *resv1,
1822  uint64_t *resv2);
1823 
1844 typedef enum {
1845  BLADERF_DC_CAL_INVALID = -1,
1846  BLADERF_DC_CAL_LPF_TUNING,
1847  BLADERF_DC_CAL_TX_LPF,
1848  BLADERF_DC_CAL_RX_LPF,
1849  BLADERF_DC_CAL_RXVGA2
1851 
1861 typedef enum {
1868 
1875 
1881 
1888 
1902 typedef enum {
1905 
1908 
1911 
1915 
1929 API_EXPORT
1930 int CALL_CONV bladerf_set_correction(struct bladerf *dev, bladerf_module module,
1931  bladerf_correction corr, int16_t value);
1932 
1943 API_EXPORT
1944 int CALL_CONV bladerf_get_correction(struct bladerf *dev, bladerf_module module,
1945  bladerf_correction corr, int16_t *value);
1946 
1947 
1956 API_EXPORT
1957 int CALL_CONV bladerf_set_vctcxo_tamer_mode(struct bladerf *dev,
1959 
1970 API_EXPORT
1971 int CALL_CONV bladerf_get_vctcxo_tamer_mode(struct bladerf *dev,
1973 
1984 API_EXPORT
1985 int CALL_CONV bladerf_dac_write(struct bladerf *dev, uint16_t val);
1986 
2002 API_EXPORT
2003 int CALL_CONV bladerf_dac_read(struct bladerf *dev, uint16_t *val);
2004 
2028 typedef enum {
2036 } bladerf_xb;
2037 
2041 typedef enum {
2044 
2047 
2054 
2069 
2077 
2086 
2090 typedef enum {
2094 
2098 typedef enum {
2104 
2108 typedef enum {
2114 
2123 API_EXPORT
2124 int CALL_CONV bladerf_expansion_attach(struct bladerf *dev, bladerf_xb xb);
2125 
2134 API_EXPORT
2135 int CALL_CONV bladerf_expansion_get_attached(struct bladerf *dev, bladerf_xb *xb);
2136 
2146 API_EXPORT
2147 int CALL_CONV bladerf_xb200_set_filterbank(struct bladerf *dev,
2148  bladerf_module mod,
2149  bladerf_xb200_filter filter);
2150 
2161 API_EXPORT
2162 int CALL_CONV bladerf_xb200_get_filterbank(struct bladerf *dev,
2163  bladerf_module module,
2164  bladerf_xb200_filter *filter);
2165 
2175 API_EXPORT
2176 int CALL_CONV bladerf_xb200_set_path(struct bladerf *dev,
2177  bladerf_module module,
2178  bladerf_xb200_path path);
2179 
2189 API_EXPORT
2190 int CALL_CONV bladerf_xb200_get_path(struct bladerf *dev,
2191  bladerf_module module,
2192  bladerf_xb200_path *path);
2193 
2202 API_EXPORT
2203 int CALL_CONV bladerf_xb300_set_trx(struct bladerf *dev,
2204  bladerf_xb300_trx trx);
2213 API_EXPORT
2214 int CALL_CONV bladerf_xb300_get_trx(struct bladerf *dev,
2215  bladerf_xb300_trx *trx);
2225 API_EXPORT
2226 int CALL_CONV bladerf_xb300_set_amplifier_enable(struct bladerf *dev,
2227  bladerf_xb300_amplifier amp,
2228  bool enable);
2238 API_EXPORT
2239 int CALL_CONV bladerf_xb300_get_amplifier_enable(struct bladerf *dev,
2240  bladerf_xb300_amplifier amp,
2241  bool *enable);
2250 API_EXPORT
2251 int CALL_CONV bladerf_xb300_get_output_power(struct bladerf *dev, float *val);
2252 
2253 
2269 #define BLADERF_XB_GPIO(n) (1 << (n-1))
2270 
2272 #define BLADERF_XB_DIR_OUTPUT(pin) (pin)
2273 
2275 #define BLADERF_XB_DIR_INPUT(pin) (0)
2276 
2278 #define BLADERF_XB_GPIO_01 BLADERF_XB_GPIO(1)
2279 
2281 #define BLADERF_XB_GPIO_02 BLADERF_XB_GPIO(2)
2282 
2284 #define BLADERF_XB_GPIO_03 BLADERF_XB_GPIO(3)
2285 
2287 #define BLADERF_XB_GPIO_04 BLADERF_XB_GPIO(4)
2288 
2290 #define BLADERF_XB_GPIO_05 BLADERF_XB_GPIO(5)
2291 
2293 #define BLADERF_XB_GPIO_06 BLADERF_XB_GPIO(6)
2294 
2296 #define BLADERF_XB_GPIO_07 BLADERF_XB_GPIO(7)
2297 
2299 #define BLADERF_XB_GPIO_08 BLADERF_XB_GPIO(8)
2300 
2302 #define BLADERF_XB_GPIO_09 BLADERF_XB_GPIO(9)
2303 
2305 #define BLADERF_XB_GPIO_10 BLADERF_XB_GPIO(10)
2306 
2308 #define BLADERF_XB_GPIO_11 BLADERF_XB_GPIO(11)
2309 
2311 #define BLADERF_XB_GPIO_12 BLADERF_XB_GPIO(12)
2312 
2314 #define BLADERF_XB_GPIO_13 BLADERF_XB_GPIO(13)
2315 
2317 #define BLADERF_XB_GPIO_14 BLADERF_XB_GPIO(14)
2318 
2320 #define BLADERF_XB_GPIO_15 BLADERF_XB_GPIO(15)
2321 
2323 #define BLADERF_XB_GPIO_16 BLADERF_XB_GPIO(16)
2324 
2326 #define BLADERF_XB_GPIO_17 BLADERF_XB_GPIO(17)
2327 
2329 #define BLADERF_XB_GPIO_18 BLADERF_XB_GPIO(18)
2330 
2332 #define BLADERF_XB_GPIO_19 BLADERF_XB_GPIO(19)
2333 
2335 #define BLADERF_XB_GPIO_20 BLADERF_XB_GPIO(20)
2336 
2338 #define BLADERF_XB_GPIO_21 BLADERF_XB_GPIO(21)
2339 
2341 #define BLADERF_XB_GPIO_22 BLADERF_XB_GPIO(22)
2342 
2344 #define BLADERF_XB_GPIO_23 BLADERF_XB_GPIO(23)
2345 
2347 #define BLADERF_XB_GPIO_24 BLADERF_XB_GPIO(24)
2348 
2350 #define BLADERF_XB_GPIO_25 BLADERF_XB_GPIO(25)
2351 
2353 #define BLADERF_XB_GPIO_26 BLADERF_XB_GPIO(26)
2354 
2356 #define BLADERF_XB_GPIO_27 BLADERF_XB_GPIO(27)
2357 
2359 #define BLADERF_XB_GPIO_28 BLADERF_XB_GPIO(28)
2360 
2362 #define BLADERF_XB_GPIO_29 BLADERF_XB_GPIO(29)
2363 
2365 #define BLADERF_XB_GPIO_30 BLADERF_XB_GPIO(30)
2366 
2368 #define BLADERF_XB_GPIO_31 BLADERF_XB_GPIO(31)
2369 
2371 #define BLADERF_XB_GPIO_32 BLADERF_XB_GPIO(32)
2372 
2373 
2375 #define BLADERF_XB200_PIN_J7_1 BLADERF_XB_GPIO_10
2376 
2378 #define BLADERF_XB200_PIN_J7_2 BLADERF_XB_GPIO_11
2379 
2381 #define BLADERF_XB200_PIN_J7_5 BLADERF_XB_GPIO_08
2382 
2384 #define BLADERF_XB200_PIN_J7_6 BLADERF_XB_GPIO_09
2385 
2387 #define BLADERF_XB200_PIN_J13_1 BLADERF_XB_GPIO_17
2388 
2390 #define BLADERF_XB200_PIN_J13_2 BLADERF_XB_GPIO_18
2391 
2392 /* XB-200 J13 Pin 6 is actually reserved for SPI */
2393 
2395 #define BLADERF_XB200_PIN_J16_1 BLADERF_XB_GPIO_31
2396 
2398 #define BLADERF_XB200_PIN_J16_2 BLADERF_XB_GPIO_32
2399 
2401 #define BLADERF_XB200_PIN_J16_3 BLADERF_XB_GPIO_19
2402 
2404 #define BLADERF_XB200_PIN_J16_4 BLADERF_XB_GPIO_20
2405 
2407 #define BLADERF_XB200_PIN_J16_5 BLADERF_XB_GPIO_21
2408 
2410 #define BLADERF_XB200_PIN_J16_6 BLADERF_XB_GPIO_24
2411 
2413 #define BLADERF_XB100_PIN_J2_3 BLADERF_XB_GPIO_07
2414 
2416 #define BLADERF_XB100_PIN_J2_4 BLADERF_XB_GPIO_08
2417 
2419 #define BLADERF_XB100_PIN_J3_3 BLADERF_XB_GPIO_09
2420 
2422 #define BLADERF_XB100_PIN_J3_4 BLADERF_XB_GPIO_10
2423 
2425 #define BLADERF_XB100_PIN_J4_3 BLADERF_XB_GPIO_11
2426 
2428 #define BLADERF_XB100_PIN_J4_4 BLADERF_XB_GPIO_12
2429 
2431 #define BLADERF_XB100_PIN_J5_3 BLADERF_XB_GPIO_13
2432 
2434 #define BLADERF_XB100_PIN_J5_4 BLADERF_XB_GPIO_14
2435 
2437 #define BLADERF_XB100_PIN_J11_2 BLADERF_XB_GPIO_05
2438 
2440 #define BLADERF_XB100_PIN_J11_3 BLADERF_XB_GPIO_04
2441 
2443 #define BLADERF_XB100_PIN_J11_4 BLADERF_XB_GPIO_03
2444 
2446 #define BLADERF_XB100_PIN_J11_5 BLADERF_XB_GPIO_06
2447 
2449 #define BLADERF_XB100_PIN_J12_2 BLADERF_XB_GPIO_01
2450 
2451 /* XB-100 header J12, pins 3 and 4 are reserved for SPI */
2452 
2454 #define BLADERF_XB100_PIN_J12_5 BLADERF_XB_GPIO_02
2455 
2457 #define BLADERF_XB100_LED_D1 BLADERF_XB_GPIO_24
2458 
2460 #define BLADERF_XB100_LED_D2 BLADERF_XB_GPIO_32
2461 
2463 #define BLADERF_XB100_LED_D3 BLADERF_XB_GPIO_30
2464 
2466 #define BLADERF_XB100_LED_D4 BLADERF_XB_GPIO_28
2467 
2469 #define BLADERF_XB100_LED_D5 BLADERF_XB_GPIO_23
2470 
2472 #define BLADERF_XB100_LED_D6 BLADERF_XB_GPIO_25
2473 
2475 #define BLADERF_XB100_LED_D7 BLADERF_XB_GPIO_31
2476 
2478 #define BLADERF_XB100_LED_D8 BLADERF_XB_GPIO_29
2479 
2481 #define BLADERF_XB100_TLED_RED BLADERF_XB_GPIO_22
2482 
2484 #define BLADERF_XB100_TLED_GREEN BLADERF_XB_GPIO_21
2485 
2487 #define BLADERF_XB100_TLED_BLUE BLADERF_XB_GPIO_20
2488 
2490 #define BLADERF_XB100_DIP_SW1 BLADERF_XB_GPIO_27
2491 
2493 #define BLADERF_XB100_DIP_SW2 BLADERF_XB_GPIO_26
2494 
2496 #define BLADERF_XB100_DIP_SW3 BLADERF_XB_GPIO_16
2497 
2499 #define BLADERF_XB100_DIP_SW4 BLADERF_XB_GPIO_15
2500 
2502 #define BLADERF_XB100_BTN_J6 BLADERF_XB_GPIO_19
2503 
2505 #define BLADERF_XB100_BTN_J7 BLADERF_XB_GPIO_18
2506 
2508 #define BLADERF_XB100_BTN_J8 BLADERF_XB_GPIO_17
2509 
2510 /* XB-100 buttons J9 and J10 are not mapped to the GPIO register,
2511  * but instead to reserved SPI pins. FPGA modifications are needed to
2512  * use these. */
2513 
2522 API_EXPORT
2523 int CALL_CONV bladerf_expansion_gpio_read(struct bladerf *dev, uint32_t *val);
2524 
2539 API_EXPORT
2540 int CALL_CONV bladerf_expansion_gpio_write(struct bladerf *dev, uint32_t val);
2541 
2572 API_EXPORT
2573 int CALL_CONV bladerf_expansion_gpio_masked_write(struct bladerf *dev,
2574  uint32_t mask,
2575  uint32_t value);
2576 
2586 API_EXPORT
2587 int CALL_CONV bladerf_expansion_gpio_dir_read(struct bladerf *dev,
2588  uint32_t *outputs);
2589 
2605 API_EXPORT
2606 int CALL_CONV bladerf_expansion_gpio_dir_write(struct bladerf *dev,
2607  uint32_t outputs);
2608 
2642 API_EXPORT
2643 int CALL_CONV bladerf_expansion_gpio_dir_masked_write(struct bladerf *dev,
2644  uint32_t mask,
2645  uint32_t outputs);
2646 
2663 typedef enum {
2672 
2682 API_EXPORT
2684 
2685 
2691 API_EXPORT
2692 void CALL_CONV bladerf_version(struct bladerf_version *version);
2693 
2701 API_EXPORT
2702 void CALL_CONV bladerf_log_set_verbosity(bladerf_log_level level);
2703 
2713 API_EXPORT
2714 int CALL_CONV bladerf_get_fw_log(struct bladerf *dev, const char *filename);
2715 
2729 typedef enum {
2751 
2787 } bladerf_format;
2788 
2789 /*
2790  * Metadata status bits
2791  *
2792  * These are used in conjunction with the bladerf_metadata structure's
2793  * `status` field.
2794  */
2795 
2800 #define BLADERF_META_STATUS_OVERRUN (1 << 0)
2801 
2808 #define BLADERF_META_STATUS_UNDERRUN (1 << 1)
2809 
2810 
2811 
2812 /*
2813  * Metadata flags
2814  *
2815  * These are used in conjunction with the bladerf_metadata structure's
2816  * `flags` field.
2817  */
2818 
2832 #define BLADERF_META_FLAG_TX_BURST_START (1 << 0)
2833 
2862 #define BLADERF_META_FLAG_TX_BURST_END (1 << 1)
2863 
2872 #define BLADERF_META_FLAG_TX_NOW (1 << 2)
2873 
2892 #define BLADERF_META_FLAG_TX_UPDATE_TIMESTAMP (1 << 3)
2893 
2899 #define BLADERF_META_FLAG_RX_NOW (1 << 31)
2900 
2909 
2913  uint64_t timestamp;
2914 
2926  uint32_t flags;
2927 
2936  uint32_t status;
2937 
2951  unsigned int actual_count;
2952 
2957  uint8_t reserved[32];
2958 };
2959 
3001 API_EXPORT
3002 int CALL_CONV bladerf_get_timestamp(struct bladerf *dev, bladerf_module mod,
3003  uint64_t *value);
3004 
3028 #define BLADERF_STREAM_SHUTDOWN (NULL)
3029 
3035 #define BLADERF_STREAM_NO_DATA ((void*)(-1))
3036 
3038 struct bladerf_stream;
3039 
3088 typedef void *(*bladerf_stream_cb)(struct bladerf *dev,
3089  struct bladerf_stream *stream,
3090  struct bladerf_metadata *meta,
3091  void *samples,
3092  size_t num_samples,
3093  void *user_data);
3094 
3167 API_EXPORT
3168 int CALL_CONV bladerf_init_stream(struct bladerf_stream **stream,
3169  struct bladerf *dev,
3170  bladerf_stream_cb callback,
3171  void ***buffers,
3172  size_t num_buffers,
3173  bladerf_format format,
3174  size_t samples_per_buffer,
3175  size_t num_transfers,
3176  void *user_data);
3177 
3197 API_EXPORT
3198 int CALL_CONV bladerf_stream(struct bladerf_stream *stream,
3199  bladerf_module module);
3200 
3228 API_EXPORT
3230  void *buffer,
3231  unsigned int timeout_ms);
3232 
3250 API_EXPORT
3252  void *buffer);
3253 
3254 
3265 API_EXPORT
3266 void CALL_CONV bladerf_deinit_stream(struct bladerf_stream *stream);
3267 
3277 API_EXPORT
3278 int CALL_CONV bladerf_set_stream_timeout(struct bladerf *dev,
3279  bladerf_module module,
3280  unsigned int timeout);
3281 
3282 
3293 API_EXPORT
3294 int CALL_CONV bladerf_get_stream_timeout(struct bladerf *dev,
3295  bladerf_module module,
3296  unsigned int *timeout);
3297 
3386 API_EXPORT
3387 int CALL_CONV bladerf_sync_config(struct bladerf *dev,
3388  bladerf_module module,
3389  bladerf_format format,
3390  unsigned int num_buffers,
3391  unsigned int buffer_size,
3392  unsigned int num_transfers,
3393  unsigned int stream_timeout);
3394 
3432 API_EXPORT
3433 int CALL_CONV bladerf_sync_tx(struct bladerf *dev,
3434  void *samples, unsigned int num_samples,
3435  struct bladerf_metadata *metadata,
3436  unsigned int timeout_ms);
3437 
3476 API_EXPORT
3477 int CALL_CONV bladerf_sync_rx(struct bladerf *dev,
3478  void *samples, unsigned int num_samples,
3479  struct bladerf_metadata *metadata,
3480  unsigned int timeout_ms);
3481 
3482 
3504 API_EXPORT
3505 int CALL_CONV bladerf_flash_firmware(struct bladerf *dev,
3506  const char *firmware);
3507 
3517 API_EXPORT
3518 int CALL_CONV bladerf_load_fpga(struct bladerf *dev, const char *fpga);
3519 
3530 API_EXPORT
3531 int CALL_CONV bladerf_flash_fpga(struct bladerf *dev,
3532  const char *fpga_image);
3533 
3539 API_EXPORT
3540 int CALL_CONV bladerf_erase_stored_fpga(struct bladerf *dev);
3541 
3549 API_EXPORT
3550 int CALL_CONV bladerf_device_reset(struct bladerf *dev);
3551 
3562 API_EXPORT
3563 int CALL_CONV bladerf_jump_to_bootloader(struct bladerf *dev);
3564 
3596 API_EXPORT
3598 
3628 API_EXPORT
3629 int CALL_CONV bladerf_load_fw_from_bootloader(const char *device_identifier,
3631  uint8_t bus, uint8_t addr,
3632  const char *file);
3633 
3649 typedef enum {
3661 
3665 #define BLADERF_IMAGE_MAGIC_LEN 7
3666 
3670 #define BLADERF_IMAGE_CHECKSUM_LEN 32
3671 
3675 #define BLADERF_IMAGE_RESERVED_LEN 128
3676 
3689 
3697  char magic[BLADERF_IMAGE_MAGIC_LEN + 1];
3698 
3703  uint8_t checksum[BLADERF_IMAGE_CHECKSUM_LEN];
3704 
3710  struct bladerf_version version;
3711 
3713  uint64_t timestamp;
3714 
3723  char serial[BLADERF_SERIAL_LENGTH + 1];
3724 
3729 
3733  bladerf_image_type type;
3734 
3739  uint32_t address;
3740 
3742  uint32_t length;
3743 
3745  uint8_t *data;
3746 };
3747 
3770 API_EXPORT
3771 struct bladerf_image * CALL_CONV bladerf_alloc_image(bladerf_image_type type,
3772  uint32_t address,
3773  uint32_t length);
3774 
3786 API_EXPORT
3788  bladerf_fpga_size fpga_size,
3789  uint16_t vctcxo_trim);
3790 
3795 API_EXPORT
3796 void CALL_CONV bladerf_free_image(struct bladerf_image *image);
3797 
3798 
3813 API_EXPORT
3814 int CALL_CONV bladerf_image_write(struct bladerf_image *image,
3815  const char *file);
3816 
3840 API_EXPORT
3841 int CALL_CONV bladerf_image_read(struct bladerf_image *image, const char *file);
3842 
3872 API_EXPORT
3873 int CALL_CONV bladerf_si5338_read(struct bladerf *dev,
3874  uint8_t address, uint8_t *val);
3875 
3885 API_EXPORT
3886 int CALL_CONV bladerf_si5338_write(struct bladerf *dev,
3887  uint8_t address, uint8_t val);
3888 
3897 {
3898  int16_t lpf_tuning;
3899  int16_t tx_lpf_i;
3900  int16_t tx_lpf_q;
3901  int16_t rx_lpf_i;
3902  int16_t rx_lpf_q;
3903  int16_t dc_ref;
3904  int16_t rxvga2a_i;
3905  int16_t rxvga2a_q;
3906  int16_t rxvga2b_i;
3907  int16_t rxvga2b_q;
3908 };
3909 
3919 API_EXPORT
3920 int CALL_CONV bladerf_lms_read(struct bladerf *dev,
3921  uint8_t address, uint8_t *val);
3922 
3932 API_EXPORT
3933 int CALL_CONV bladerf_lms_write(struct bladerf *dev,
3934  uint8_t address, uint8_t val);
3935 
3948 API_EXPORT
3949 int CALL_CONV bladerf_lms_set_dc_cals(struct bladerf *dev,
3950  const struct bladerf_lms_dc_cals *dc_cals);
3951 
3960 API_EXPORT
3961 int CALL_CONV bladerf_lms_get_dc_cals(struct bladerf *dev,
3962  struct bladerf_lms_dc_cals *dc_cals);
3963 
3969 #define BLADERF_GPIO_LMS_RX_ENABLE (1 << 1)
3970 
3976 #define BLADERF_GPIO_LMS_TX_ENABLE (1 << 2)
3977 
3983 #define BLADERF_GPIO_TX_LB_ENABLE (2 << 3)
3984 
3990 #define BLADERF_GPIO_TX_HB_ENABLE (1 << 3)
3991 
4001 #define BLADERF_GPIO_COUNTER_ENABLE (1 << 9)
4002 
4003 
4009 #define BLADERF_GPIO_RX_MUX_MASK (0x7 << BLADERF_GPIO_RX_MUX_SHIFT)
4010 
4014 #define BLADERF_GPIO_RX_MUX_SHIFT 8
4015 
4021 #define BLADERF_GPIO_RX_LB_ENABLE (2 << 5)
4022 
4028 #define BLADERF_GPIO_RX_HB_ENABLE (1 << 5)
4029 
4040 #define BLADERF_GPIO_FEATURE_SMALL_DMA_XFER (1 << 7)
4041 
4045 #define BLADERF_GPIO_TIMESTAMP (1 << 16)
4046 
4063 #define BLADERF_GPIO_TIMESTAMP_DIV2 (1 << 17)
4064 
4073 API_EXPORT
4074 int CALL_CONV bladerf_config_gpio_read(struct bladerf *dev, uint32_t *val);
4075 
4086 API_EXPORT
4087 int CALL_CONV bladerf_config_gpio_write(struct bladerf *dev, uint32_t val);
4088 
4097 API_EXPORT
4098 int CALL_CONV bladerf_xb_spi_write(struct bladerf *dev, uint32_t val);
4099 
4100 
4109 API_EXPORT
4110 int CALL_CONV bladerf_calibrate_dc(struct bladerf *dev,
4111  bladerf_cal_module module);
4112 
4122 #define BLADERF_TRIGGER_REG_ARM ((uint8_t) (1 << 0))
4123 
4133 #define BLADERF_TRIGGER_REG_FIRE ((uint8_t) (1 << 1))
4134 
4142 #define BLADERF_TRIGGER_REG_MASTER ((uint8_t) (1 << 2))
4143 
4150 #define BLADERF_TRIGGER_REG_LINE ((uint8_t) (1 << 3))
4151 
4164 API_EXPORT
4165 int CALL_CONV bladerf_read_trigger(struct bladerf *dev,
4166  bladerf_module module,
4167  bladerf_trigger_signal signal,
4168  uint8_t *val);
4169 
4181 API_EXPORT
4182 int CALL_CONV bladerf_write_trigger(struct bladerf *dev,
4183  bladerf_module module,
4184  bladerf_trigger_signal signal,
4185  uint8_t val);
4186 
4212 #define BLADERF_FLASH_TOTAL_SIZE (4 * 1024 * 1024)
4213 
4215 #define BLADERF_FLASH_PAGE_SIZE 256
4216 
4218 #define BLADERF_FLASH_EB_SIZE (64 * 1024)
4219 
4221 #define BLADERF_FLASH_NUM_PAGES \
4222  (BLADERF_FLASH_TOTAL_SIZE / BLADERF_FLASH_PAGE_SIZE)
4223 
4225 #define BLADERF_FLASH_NUM_EBS \
4226  (BLADERF_FLASH_TOTAL_SIZE / BLADERF_FLASH_EB_SIZE)
4227 
4228 
4229 
4231 #define BLADERF_FLASH_TO_PAGES(bytes) ((bytes) / BLADERF_FLASH_PAGE_SIZE)
4232 
4234 #define BLADERF_FLASH_TO_EB(bytes) ((bytes) / BLADERF_FLASH_EB_SIZE)
4235 
4236 
4237 
4239 #define BLADERF_FLASH_ADDR_FIRMWARE 0x00000000
4240 
4242 #define BLADERF_FLASH_PAGE_FIRMWARE \
4243  (BLADERF_FLASH_TO_PAGES(BLADERF_FLASH_ADDR_FIRMWARE))
4244 
4246 #define BLADERF_FLASH_EB_FIRMWARE \
4247  (BLADERF_FLASH_TO_EB(BLADERF_FLASH_ADDR_FIRMWARE))
4248 
4250 #define BLADERF_FLASH_BYTE_LEN_FIRMWARE 0x00030000
4251 
4253 #define BLADERF_FLASH_PAGE_LEN_FIRMWARE \
4254  (BLADERF_FLASH_TO_PAGES(BLADERF_FLASH_BYTE_LEN_FIRMWARE))
4255 
4257 #define BLADERF_FLASH_EB_LEN_FIRMWARE \
4258  (BLADERF_FLASH_TO_EB(BLADERF_FLASH_BYTE_LEN_FIRMWARE))
4259 
4260 
4262 #define BLADERF_FLASH_ADDR_CAL 0x00030000
4263 
4265 #define BLADERF_FLASH_PAGE_CAL (BLADERF_FLASH_TO_PAGES(BLADERF_FLASH_ADDR_CAL))
4266 
4268 #define BLADERF_FLASH_EB_CAL (BLADERF_FLASH_TO_EB(BLADERF_FLASH_ADDR_CAL))
4269 
4271 #define BLADERF_FLASH_BYTE_LEN_CAL 0x100
4272 
4274 #define BLADERF_FLASH_PAGE_LEN_CAL \
4275  (BLADERF_FLASH_TO_PAGES(FLASH_BYTE_LEN_CAL))
4276 
4282 #define BLADERF_FLASH_EB_LEN_CAL 1
4283 
4284 
4290 #define BLADERF_FLASH_ADDR_FPGA 0x00040000
4291 
4293 #define BLADERF_FLASH_PAGE_FPGA \
4294  (BLADERF_FLASH_TO_PAGES(BLADERF_FLASH_ADDR_FPGA))
4295 
4297 #define BLADERF_FLASH_EB_FPGA \
4298  (BLADERF_FLASH_TO_EB(BLADERF_FLASH_ADDR_FPGA))
4299 
4301 #define BLADERF_FLASH_BYTE_LEN_FPGA 0x00370000
4302 
4304 #define BLADERF_FLASH_EB_LEN_FPGA \
4305  (BLADERF_FLASH_TO_EB(BLADERF_FLASH_BYTE_LEN_FPGA))
4306 
4319 API_EXPORT
4320 int CALL_CONV bladerf_erase_flash(struct bladerf *dev,
4321  uint32_t erase_block, uint32_t count);
4322 
4338 API_EXPORT
4339 int CALL_CONV bladerf_read_flash(struct bladerf *dev, uint8_t *buf,
4340  uint32_t page, uint32_t count);
4341 
4354 API_EXPORT
4355 int CALL_CONV bladerf_write_flash(struct bladerf *dev, const uint8_t *buf,
4356  uint32_t page, uint32_t count);
4357 
4375 #define BLADERF_ERR_UNEXPECTED (-1)
4376 #define BLADERF_ERR_RANGE (-2)
4377 #define BLADERF_ERR_INVAL (-3)
4378 #define BLADERF_ERR_MEM (-4)
4379 #define BLADERF_ERR_IO (-5)
4380 #define BLADERF_ERR_TIMEOUT (-6)
4381 #define BLADERF_ERR_NODEV (-7)
4382 #define BLADERF_ERR_UNSUPPORTED (-8)
4383 #define BLADERF_ERR_MISALIGNED (-9)
4384 #define BLADERF_ERR_CHECKSUM (-10)
4385 #define BLADERF_ERR_NO_FILE (-11)
4386 #define BLADERF_ERR_UPDATE_FPGA (-12)
4387 #define BLADERF_ERR_UPDATE_FW (-13)
4388 #define BLADERF_ERR_TIME_PAST (-14)
4389 #define BLADERF_ERR_QUEUE_FULL (-15)
4391 #define BLADERF_ERR_FPGA_OP (-16)
4392 #define BLADERF_ERR_PERMISSION (-17)
4394 #define BLADERF_ERR_WOULD_BLOCK (-18)
4408 API_EXPORT
4409 const char * CALL_CONV bladerf_strerror(int error);
4410 
4414 #ifdef __cplusplus
4415 }
4416 #endif
4417 
4418 #endif /* BLADERF_H_ */
uint8_t * data
Definition: libbladeRF.h:3745
API_EXPORT int CALL_CONV bladerf_get_rx_mux(struct bladerf *dev, bladerf_rx_mux *mode)
API_EXPORT int CALL_CONV bladerf_xb300_set_amplifier_enable(struct bladerf *dev, bladerf_xb300_amplifier amp, bool enable)
API_EXPORT int CALL_CONV bladerf_get_vctcxo_trim(struct bladerf *dev, uint16_t *trim)
API_EXPORT int CALL_CONV bladerf_write_trigger(struct bladerf *dev, bladerf_module module, bladerf_trigger_signal signal, uint8_t val)
API_EXPORT int CALL_CONV bladerf_si5338_read(struct bladerf *dev, uint8_t address, uint8_t *val)
API_EXPORT int CALL_CONV bladerf_lms_read(struct bladerf *dev, uint8_t address, uint8_t *val)
API_EXPORT int CALL_CONV bladerf_image_read(struct bladerf_image *image, const char *file)
API_EXPORT int CALL_CONV bladerf_expansion_gpio_dir_masked_write(struct bladerf *dev, uint32_t mask, uint32_t outputs)
API_EXPORT int CALL_CONV bladerf_read_flash(struct bladerf *dev, uint8_t *buf, uint32_t page, uint32_t count)
bladerf_module module
Definition: libbladeRF.h:1720
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_fpga_size(struct bladerf *dev, bladerf_fpga_size *size)
API_EXPORT bool CALL_CONV bladerf_devinfo_matches(const struct bladerf_devinfo *a, const struct bladerf_devinfo *b)
unsigned int instance
Definition: libbladeRF.h:129
bladerf_lpf_mode
Definition: libbladeRF.h:953
API_EXPORT int CALL_CONV bladerf_erase_flash(struct bladerf *dev, uint32_t erase_block, uint32_t count)
API_EXPORT int CALL_CONV bladerf_load_fpga(struct bladerf *dev, const char *fpga)
API_EXPORT int CALL_CONV bladerf_xb200_get_filterbank(struct bladerf *dev, bladerf_module module, bladerf_xb200_filter *filter)
uint16_t minor
Definition: libbladeRF.h:348
API_EXPORT int CALL_CONV bladerf_get_rxvga2(struct bladerf *dev, int *gain)
API_EXPORT void CALL_CONV bladerf_set_usb_reset_on_open(bool enabled)
bladerf_loopback
Definition: libbladeRF.h:1283
API_EXPORT int CALL_CONV bladerf_set_txvga1(struct bladerf *dev, int gain)
API_EXPORT int CALL_CONV bladerf_get_frequency(struct bladerf *dev, bladerf_module module, unsigned int *frequency)
API_EXPORT int CALL_CONV bladerf_expansion_gpio_dir_read(struct bladerf *dev, uint32_t *outputs)
bladerf_trigger_signal signal
Definition: libbladeRF.h:1722
API_EXPORT int CALL_CONV bladerf_xb200_set_filterbank(struct bladerf *dev, bladerf_module mod, bladerf_xb200_filter filter)
API_EXPORT int CALL_CONV bladerf_dac_read(struct bladerf *dev, uint16_t *val)
uint16_t major
Definition: libbladeRF.h:347
API_EXPORT int CALL_CONV bladerf_get_rational_sample_rate(struct bladerf *dev, bladerf_module module, struct bladerf_rational_rate *rate)
API_EXPORT int CALL_CONV bladerf_get_fw_log(struct bladerf *dev, const char *filename)
API_EXPORT bool CALL_CONV bladerf_devstr_matches(const char *dev_str, struct bladerf_devinfo *info)
API_EXPORT int CALL_CONV bladerf_xb300_get_amplifier_enable(struct bladerf *dev, bladerf_xb300_amplifier amp, bool *enable)
uint64_t timestamp
Definition: libbladeRF.h:2913
API_EXPORT int CALL_CONV bladerf_xb_spi_write(struct bladerf *dev, uint32_t val)
API_EXPORT int CALL_CONV bladerf_expansion_gpio_dir_write(struct bladerf *dev, uint32_t outputs)
API_EXPORT int CALL_CONV bladerf_get_rational_smb_frequency(struct bladerf *dev, struct bladerf_rational_rate *rate)
API_EXPORT int CALL_CONV bladerf_is_fpga_configured(struct bladerf *dev)
API_EXPORT int CALL_CONV bladerf_submit_stream_buffer_nb(struct bladerf_stream *stream, void *buffer)
API_EXPORT int CALL_CONV bladerf_set_bandwidth(struct bladerf *dev, bladerf_module module, unsigned int bandwidth, unsigned int *actual)
API_EXPORT int CALL_CONV bladerf_config_gpio_write(struct bladerf *dev, uint32_t val)
API_EXPORT int CALL_CONV bladerf_get_devinfo_from_str(const char *devstr, struct bladerf_devinfo *info)
uint64_t timestamp
Definition: libbladeRF.h:3713
bladerf_tuning_mode
Definition: libbladeRF.h:1078
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 bladerf_dev_speed CALL_CONV bladerf_device_speed(struct bladerf *dev)
API_EXPORT int CALL_CONV bladerf_get_device_list(struct bladerf_devinfo **devices)
API_EXPORT struct bladerf_image *CALL_CONV bladerf_alloc_cal_image(bladerf_fpga_size fpga_size, uint16_t vctcxo_trim)
API_EXPORT const char *CALL_CONV bladerf_strerror(int error)
API_EXPORT int CALL_CONV bladerf_schedule_retune(struct bladerf *dev, bladerf_module module, uint64_t timestamp, unsigned int frequency, struct bladerf_quick_tune *quick_tune)
API_EXPORT int CALL_CONV bladerf_fpga_version(struct bladerf *dev, struct bladerf_version *version)
bladerf_xb
Definition: libbladeRF.h:2028
bladerf_xb300_amplifier
Definition: libbladeRF.h:2108
API_EXPORT const char *CALL_CONV bladerf_backend_str(bladerf_backend backend)
bladerf_vctcxo_tamer_mode
Definition: libbladeRF.h:1902
API_EXPORT int CALL_CONV bladerf_init_stream(struct bladerf_stream **stream, struct bladerf *dev, bladerf_stream_cb callback, void ***buffers, size_t num_buffers, bladerf_format format, size_t samples_per_buffer, size_t num_transfers, void *user_data)
API_EXPORT int CALL_CONV bladerf_get_loopback(struct bladerf *dev, bladerf_loopback *l)
uint8_t usb_bus
Definition: libbladeRF.h:127
uint16_t patch
Definition: libbladeRF.h:349
uint64_t options
Definition: libbladeRF.h:1723
API_EXPORT int CALL_CONV bladerf_get_stream_timeout(struct bladerf *dev, bladerf_module module, unsigned int *timeout)
API_EXPORT int CALL_CONV bladerf_lms_set_dc_cals(struct bladerf *dev, const struct bladerf_lms_dc_cals *dc_cals)
API_EXPORT int CALL_CONV bladerf_set_gain(struct bladerf *dev, bladerf_module mod, int gain)
API_EXPORT int CALL_CONV bladerf_get_bootloader_list(struct bladerf_devinfo **list)
API_EXPORT int CALL_CONV bladerf_set_lna_gain(struct bladerf *dev, bladerf_lna_gain gain)
API_EXPORT int CALL_CONV bladerf_stream(struct bladerf_stream *stream, bladerf_module module)
API_EXPORT int CALL_CONV bladerf_xb300_get_trx(struct bladerf *dev, bladerf_xb300_trx *trx)
bladerf_image_type
Definition: libbladeRF.h:3649
API_EXPORT int CALL_CONV bladerf_xb200_set_path(struct bladerf *dev, bladerf_module module, bladerf_xb200_path path)
API_EXPORT int CALL_CONV bladerf_expansion_gpio_masked_write(struct bladerf *dev, uint32_t mask, uint32_t value)
API_EXPORT int CALL_CONV bladerf_calibrate_dc(struct bladerf *dev, bladerf_cal_module module)
API_EXPORT int CALL_CONV bladerf_trigger_fire(struct bladerf *dev, const struct bladerf_trigger *trigger)
API_EXPORT int CALL_CONV bladerf_jump_to_bootloader(struct bladerf *dev)
bladerf_lna_gain
Definition: libbladeRF.h:559
bladerf_fpga_size
Definition: libbladeRF.h:360
API_EXPORT int CALL_CONV bladerf_flash_firmware(struct bladerf *dev, const char *firmware)
API_EXPORT int CALL_CONV bladerf_expansion_gpio_write(struct bladerf *dev, uint32_t val)
API_EXPORT int CALL_CONV bladerf_get_smb_mode(struct bladerf *dev, bladerf_smb_mode *mode)
API_EXPORT int CALL_CONV bladerf_sync_config(struct bladerf *dev, bladerf_module module, 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_flash_fpga(struct bladerf *dev, const char *fpga_image)
API_EXPORT int CALL_CONV bladerf_enable_module(struct bladerf *dev, bladerf_module m, bool enable)
uint8_t usb_addr
Definition: libbladeRF.h:128
bladerf_backend
Definition: libbladeRF.h:110
bladerf_log_level
Definition: libbladeRF.h:2663
API_EXPORT int CALL_CONV bladerf_get_lna_gain(struct bladerf *dev, bladerf_lna_gain *gain)
API_EXPORT int CALL_CONV bladerf_trigger_init(struct bladerf *dev, bladerf_module module, bladerf_trigger_signal signal, struct bladerf_trigger *trigger)
#define BLADERF_IMAGE_CHECKSUM_LEN
Definition: libbladeRF.h:3670
API_EXPORT int CALL_CONV bladerf_device_reset(struct bladerf *dev)
bladerf_format
Definition: libbladeRF.h:2729
API_EXPORT void CALL_CONV bladerf_deinit_stream(struct bladerf_stream *stream)
bladerf_xb300_trx
Definition: libbladeRF.h:2098
API_EXPORT int CALL_CONV bladerf_get_sample_rate(struct bladerf *dev, bladerf_module module, unsigned int *rate)
API_EXPORT int CALL_CONV bladerf_open(struct bladerf **device, const char *device_identifier)
API_EXPORT int CALL_CONV bladerf_expansion_get_attached(struct bladerf *dev, bladerf_xb *xb)
bladerf_cal_module
Definition: libbladeRF.h:1844
API_EXPORT int CALL_CONV bladerf_xb200_get_path(struct bladerf *dev, bladerf_module module, bladerf_xb200_path *path)
API_EXPORT int CALL_CONV bladerf_get_devinfo(struct bladerf *dev, struct bladerf_devinfo *info)
API_EXPORT void CALL_CONV bladerf_free_image(struct bladerf_image *image)
#define BLADERF_IMAGE_RESERVED_LEN
Definition: libbladeRF.h:3675
API_EXPORT int CALL_CONV bladerf_cancel_scheduled_retunes(struct bladerf *dev, bladerf_module module)
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_set_sampling(struct bladerf *dev, bladerf_sampling sampling)
API_EXPORT struct bladerf_image *CALL_CONV bladerf_alloc_image(bladerf_image_type type, uint32_t address, uint32_t length)
API_EXPORT int CALL_CONV bladerf_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_fw_version(struct bladerf *dev, struct bladerf_version *version)
API_EXPORT int CALL_CONV bladerf_lms_get_dc_cals(struct bladerf *dev, struct bladerf_lms_dc_cals *dc_cals)
bladerf_trigger_signal
Definition: libbladeRF.h:1697
#define CALL_CONV
Definition: libbladeRF.h:82
API_EXPORT void CALL_CONV bladerf_init_devinfo(struct bladerf_devinfo *info)
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_get_correction(struct bladerf *dev, bladerf_module module, bladerf_correction corr, int16_t *value)
bladerf_sampling
Definition: libbladeRF.h:789
API_EXPORT int CALL_CONV bladerf_set_smb_frequency(struct bladerf *dev, uint32_t rate, uint32_t *actual)
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:3088
API_EXPORT int CALL_CONV bladerf_get_rxvga1(struct bladerf *dev, int *gain)
bladerf_xb200_path
Definition: libbladeRF.h:2090
API_EXPORT int CALL_CONV bladerf_get_bandwidth(struct bladerf *dev, bladerf_module module, unsigned int *bandwidth)
API_EXPORT int CALL_CONV bladerf_expansion_gpio_read(struct bladerf *dev, uint32_t *val)
API_EXPORT int CALL_CONV bladerf_lms_write(struct bladerf *dev, uint8_t address, uint8_t val)
bladerf_rx_mux
Definition: libbladeRF.h:741
API_EXPORT int CALL_CONV bladerf_get_serial(struct bladerf *dev, char *serial)
API_EXPORT int CALL_CONV bladerf_set_rational_smb_frequency(struct bladerf *dev, struct bladerf_rational_rate *rate, struct bladerf_rational_rate *actual)
API_EXPORT int CALL_CONV bladerf_erase_stored_fpga(struct bladerf *dev)
API_EXPORT int CALL_CONV bladerf_sync_tx(struct bladerf *dev, void *samples, unsigned int num_samples, struct bladerf_metadata *metadata, unsigned int timeout_ms)
API_EXPORT int CALL_CONV bladerf_set_smb_mode(struct bladerf *dev, bladerf_smb_mode mode)
API_EXPORT int CALL_CONV bladerf_set_tuning_mode(struct bladerf *dev, bladerf_tuning_mode mode)
API_EXPORT void CALL_CONV bladerf_log_set_verbosity(bladerf_log_level level)
bladerf_backend backend
Definition: libbladeRF.h:125
unsigned int actual_count
Definition: libbladeRF.h:2951
uint32_t address
Definition: libbladeRF.h:3739
API_EXPORT void CALL_CONV bladerf_free_device_list(struct bladerf_devinfo *devices)
API_EXPORT int CALL_CONV bladerf_set_rxvga1(struct bladerf *dev, int gain)
bladerf_smb_mode
Definition: libbladeRF.h:1404
#define API_EXPORT
Definition: libbladeRF.h:79
const char * describe
Definition: libbladeRF.h:350
API_EXPORT int CALL_CONV bladerf_dac_write(struct bladerf *dev, uint16_t val)
API_EXPORT int CALL_CONV bladerf_set_rx_mux(struct bladerf *dev, bladerf_rx_mux mux)
API_EXPORT int CALL_CONV bladerf_set_txvga2(struct bladerf *dev, int gain)
API_EXPORT int CALL_CONV bladerf_get_lpf_mode(struct bladerf *dev, bladerf_module module, bladerf_lpf_mode *mode)
API_EXPORT void CALL_CONV bladerf_version(struct bladerf_version *version)
API_EXPORT int CALL_CONV bladerf_image_write(struct bladerf_image *image, const char *file)
bladerf_trigger_role role
Definition: libbladeRF.h:1721
API_EXPORT int CALL_CONV bladerf_read_trigger(struct bladerf *dev, bladerf_module module, bladerf_trigger_signal signal, uint8_t *val)
API_EXPORT int CALL_CONV bladerf_get_txvga1(struct bladerf *dev, int *gain)
#define BLADERF_SERIAL_LENGTH
Definition: libbladeRF.h:119
API_EXPORT int CALL_CONV bladerf_get_smb_frequency(struct bladerf *dev, unsigned int *rate)
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_open_with_devinfo(struct bladerf **device, struct bladerf_devinfo *devinfo)
bladerf_module
Definition: libbladeRF.h:481
API_EXPORT int CALL_CONV bladerf_set_frequency(struct bladerf *dev, bladerf_module module, unsigned int frequency)
API_EXPORT int CALL_CONV bladerf_set_loopback(struct bladerf *dev, bladerf_loopback l)
API_EXPORT int CALL_CONV bladerf_set_sample_rate(struct bladerf *dev, bladerf_module module, unsigned int rate, unsigned int *actual)
API_EXPORT int CALL_CONV bladerf_get_vctcxo_tamer_mode(struct bladerf *dev, bladerf_vctcxo_tamer_mode *mode)
bladerf_dev_speed
Definition: libbladeRF.h:370
API_EXPORT int CALL_CONV bladerf_select_band(struct bladerf *dev, bladerf_module module, unsigned int frequency)
bladerf_trigger_role
Definition: libbladeRF.h:1661
API_EXPORT int CALL_CONV bladerf_set_stream_timeout(struct bladerf *dev, bladerf_module module, unsigned int timeout)
API_EXPORT void CALL_CONV bladerf_close(struct bladerf *device)
API_EXPORT int CALL_CONV bladerf_get_quick_tune(struct bladerf *dev, bladerf_module module, struct bladerf_quick_tune *quick_tune)
bladerf_xb200_filter
Definition: libbladeRF.h:2041
API_EXPORT int CALL_CONV bladerf_set_rxvga2(struct bladerf *dev, int gain)
API_EXPORT int CALL_CONV bladerf_get_timestamp(struct bladerf *dev, bladerf_module mod, uint64_t *value)
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_correction
Definition: libbladeRF.h:1861
API_EXPORT int CALL_CONV bladerf_set_lpf_mode(struct bladerf *dev, bladerf_module module, bladerf_lpf_mode mode)
bladerf_image_type type
Definition: libbladeRF.h:3733
API_EXPORT int CALL_CONV bladerf_set_rational_sample_rate(struct bladerf *dev, bladerf_module module, struct bladerf_rational_rate *rate, struct bladerf_rational_rate *actual)
API_EXPORT int CALL_CONV bladerf_xb300_get_output_power(struct bladerf *dev, float *val)
API_EXPORT int CALL_CONV bladerf_si5338_write(struct bladerf *dev, uint8_t address, uint8_t val)
API_EXPORT int CALL_CONV bladerf_config_gpio_read(struct bladerf *dev, uint32_t *val)
API_EXPORT int CALL_CONV bladerf_get_txvga2(struct bladerf *dev, int *gain)
API_EXPORT int CALL_CONV bladerf_get_sampling(struct bladerf *dev, bladerf_sampling *sampling)
API_EXPORT int CALL_CONV bladerf_set_correction(struct bladerf *dev, bladerf_module module, bladerf_correction corr, int16_t value)
char serial[BLADERF_SERIAL_LENGTH]
Definition: libbladeRF.h:126
API_EXPORT int CALL_CONV bladerf_xb300_set_trx(struct bladerf *dev, bladerf_xb300_trx trx)
uint32_t length
Definition: libbladeRF.h:3742
API_EXPORT int CALL_CONV bladerf_expansion_attach(struct bladerf *dev, bladerf_xb xb)
#define BLADERF_IMAGE_MAGIC_LEN
Definition: libbladeRF.h:3665