-int session_start(void);
-void session_stop(void);
-void session_bus(struct device *device, struct datafeed_packet *packet);
-void make_metadata(char *filename);
-int session_save(char *filename);
-
-/*--- hwcommon.c ------------------------------------------------------------*/
-
-int ezusb_reset(struct libusb_device_handle *hdl, int set_clear);
-int ezusb_install_firmware(libusb_device_handle *hdl, char *filename);
-int ezusb_upload_firmware(libusb_device *dev, int configuration,
- const char *filename);
-
-GSList *list_serial_ports(void);
-int serial_open(const char *pathname, int flags);
-int serial_close(int fd);
-int serial_flush(int fd);
-int serial_write(int fd, const void *buf, size_t count);
-int serial_read(int fd, void *buf, size_t count);
-void *serial_backup_params(int fd);
-void serial_restore_params(int fd, void *backup);
-int serial_set_params(int fd, int speed, int bits, int parity, int stopbits,
- int flowcontrol);
-
-/* libsigrok/hardware/common/misc.c */
-/* TODO: Should not be public. */
-int opendev2(int device_index, struct sigrok_device_instance **sdi,
- libusb_device *dev, struct libusb_device_descriptor *des,
- int *skip, uint16_t vid, uint16_t pid, int interface);
-int opendev3(struct sigrok_device_instance **sdi, libusb_device *dev,
- struct libusb_device_descriptor *des,
- uint16_t vid, uint16_t pid, int interface);
-
-/*--- datastore.c -----------------------------------------------------------*/
-
-int datastore_new(int unitsize, struct datastore **ds);
-int datastore_destroy(struct datastore *ds);
-void datastore_put(struct datastore *ds, void *data, unsigned int length,
- int in_unitsize, int *probelist);
+SR_API int sr_session_start(void);
+SR_API int sr_session_run(void);
+SR_API int sr_session_halt(void);
+SR_API int sr_session_stop(void);
+SR_API int sr_session_save(const char *filename);
+SR_API int sr_session_source_add(int fd, int events, int timeout,
+ sr_receive_data_callback_t cb, void *cb_data);
+SR_API int sr_session_source_remove(int fd);
+
+/*--- input/input.c ---------------------------------------------------------*/
+
+SR_API struct sr_input_format **sr_input_list(void);
+
+/*--- output/output.c -------------------------------------------------------*/
+
+SR_API struct sr_output_format **sr_output_list(void);
+
+/*--- strutil.c -------------------------------------------------------------*/
+
+SR_API char *sr_samplerate_string(uint64_t samplerate);
+SR_API char *sr_period_string(uint64_t frequency);
+SR_API char *sr_voltage_string(struct sr_rational *voltage);
+SR_API char **sr_parse_triggerstring(struct sr_dev *dev,
+ const char *triggerstring);
+SR_API int sr_parse_sizestring(const char *sizestring, uint64_t *size);
+SR_API uint64_t sr_parse_timestring(const char *timestring);
+SR_API gboolean sr_parse_boolstring(const char *boolstring);
+SR_API int sr_parse_period(const char *periodstr, struct sr_rational *r);
+SR_API int sr_parse_voltage(const char *voltstr, struct sr_rational *r);
+
+/*--- version.c -------------------------------------------------------------*/
+
+SR_API int sr_package_version_major_get(void);
+SR_API int sr_package_version_minor_get(void);
+SR_API int sr_package_version_micro_get(void);
+SR_API const char *sr_package_version_string_get(void);
+
+SR_API int sr_lib_version_current_get(void);
+SR_API int sr_lib_version_revision_get(void);
+SR_API int sr_lib_version_age_get(void);
+SR_API const char *sr_lib_version_string_get(void);