summaryrefslogtreecommitdiff
path: root/libusb/libusb.h
diff options
context:
space:
mode:
authorPete Batard <pbatard@gmail.com>2010-04-13 23:32:45 +0100
committerPete Batard <pbatard@gmail.com>2010-04-13 23:32:45 +0100
commit511f5b9fdf032fc6b3d4b926538705fe96db1d4f (patch)
treea892839a85f674177475dd49e374a6cc47372bba /libusb/libusb.h
parent26a0c962b13088896a91052e78a23303aa085260 (diff)
downloadlibusb-511f5b9fdf032fc6b3d4b926538705fe96db1d4f.tar.gz
set default calling convention for Windows platform (core)
no calling convention is set on non Windows platforms as using __attribute__((cdecl)) is source of potential warnings.
Diffstat (limited to 'libusb/libusb.h')
-rw-r--r--libusb/libusb.h146
1 files changed, 77 insertions, 69 deletions
diff --git a/libusb/libusb.h b/libusb/libusb.h
index 6a455f8..b21a93f 100644
--- a/libusb/libusb.h
+++ b/libusb/libusb.h
@@ -44,6 +44,14 @@
#undef interface
#endif
+#if !defined(LIBUSB_API)
+#if defined(_WINDOWS_)
+#define LIBUSB_API WINAPI
+#else
+#define LIBUSB_API
+#endif
+#endif
+
#ifdef __cplusplus
extern "C" {
#endif
@@ -793,51 +801,51 @@ struct libusb_transfer {
;
};
-int libusb_init(libusb_context **ctx);
-void libusb_exit(libusb_context *ctx);
-void libusb_set_debug(libusb_context *ctx, int level);
-const char* libusb_strerror(enum libusb_error errcode);
+int LIBUSB_API libusb_init(libusb_context **ctx);
+void LIBUSB_API libusb_exit(libusb_context *ctx);
+void LIBUSB_API libusb_set_debug(libusb_context *ctx, int level);
+const char* LIBUSB_API libusb_strerror(enum libusb_error errcode);
-ssize_t libusb_get_device_list(libusb_context *ctx,
+ssize_t LIBUSB_API libusb_get_device_list(libusb_context *ctx,
libusb_device ***list);
-void libusb_free_device_list(libusb_device **list, int unref_devices);
-libusb_device *libusb_ref_device(libusb_device *dev);
-void libusb_unref_device(libusb_device *dev);
+void LIBUSB_API libusb_free_device_list(libusb_device **list, int unref_devices);
+libusb_device* LIBUSB_API libusb_ref_device(libusb_device *dev);
+void LIBUSB_API libusb_unref_device(libusb_device *dev);
-int libusb_get_configuration(libusb_device_handle *dev, int *config);
-int libusb_get_device_descriptor(libusb_device *dev,
+int LIBUSB_API libusb_get_configuration(libusb_device_handle *dev, int *config);
+int LIBUSB_API libusb_get_device_descriptor(libusb_device *dev,
struct libusb_device_descriptor *desc);
-int libusb_get_active_config_descriptor(libusb_device *dev,
+int LIBUSB_API libusb_get_active_config_descriptor(libusb_device *dev,
struct libusb_config_descriptor **config);
-int libusb_get_config_descriptor(libusb_device *dev, uint8_t config_index,
+int LIBUSB_API libusb_get_config_descriptor(libusb_device *dev, uint8_t config_index,
struct libusb_config_descriptor **config);
-int libusb_get_config_descriptor_by_value(libusb_device *dev,
+int LIBUSB_API libusb_get_config_descriptor_by_value(libusb_device *dev,
uint8_t bConfigurationValue, struct libusb_config_descriptor **config);
-void libusb_free_config_descriptor(struct libusb_config_descriptor *config);
-uint8_t libusb_get_bus_number(libusb_device *dev);
-uint8_t libusb_get_device_address(libusb_device *dev);
-int libusb_get_max_packet_size(libusb_device *dev, unsigned char endpoint);
-int libusb_get_max_iso_packet_size(libusb_device *dev, unsigned char endpoint);
+void LIBUSB_API libusb_free_config_descriptor(struct libusb_config_descriptor *config);
+uint8_t LIBUSB_API libusb_get_bus_number(libusb_device *dev);
+uint8_t LIBUSB_API libusb_get_device_address(libusb_device *dev);
+int LIBUSB_API libusb_get_max_packet_size(libusb_device *dev, unsigned char endpoint);
+int LIBUSB_API libusb_get_max_iso_packet_size(libusb_device *dev, unsigned char endpoint);
-int libusb_open(libusb_device *dev, libusb_device_handle **handle);
-void libusb_close(libusb_device_handle *dev_handle);
-libusb_device *libusb_get_device(libusb_device_handle *dev_handle);
+int LIBUSB_API libusb_open(libusb_device *dev, libusb_device_handle **handle);
+void LIBUSB_API libusb_close(libusb_device_handle *dev_handle);
+libusb_device* LIBUSB_API libusb_get_device(libusb_device_handle *dev_handle);
-int libusb_set_configuration(libusb_device_handle *dev, int configuration);
-int libusb_claim_interface(libusb_device_handle *dev, int interface_number);
-int libusb_release_interface(libusb_device_handle *dev, int interface_number);
+int LIBUSB_API libusb_set_configuration(libusb_device_handle *dev, int configuration);
+int LIBUSB_API libusb_claim_interface(libusb_device_handle *dev, int interface_number);
+int LIBUSB_API libusb_release_interface(libusb_device_handle *dev, int interface_number);
-libusb_device_handle *libusb_open_device_with_vid_pid(libusb_context *ctx,
+libusb_device_handle* LIBUSB_API libusb_open_device_with_vid_pid(libusb_context *ctx,
uint16_t vendor_id, uint16_t product_id);
-int libusb_set_interface_alt_setting(libusb_device_handle *dev,
+int LIBUSB_API libusb_set_interface_alt_setting(libusb_device_handle *dev,
int interface_number, int alternate_setting);
-int libusb_clear_halt(libusb_device_handle *dev, unsigned char endpoint);
-int libusb_reset_device(libusb_device_handle *dev);
+int LIBUSB_API libusb_clear_halt(libusb_device_handle *dev, unsigned char endpoint);
+int LIBUSB_API libusb_reset_device(libusb_device_handle *dev);
-int libusb_kernel_driver_active(libusb_device_handle *dev, int interface_number);
-int libusb_detach_kernel_driver(libusb_device_handle *dev, int interface_number);
-int libusb_attach_kernel_driver(libusb_device_handle *dev, int interface_number);
+int LIBUSB_API libusb_kernel_driver_active(libusb_device_handle *dev, int interface_number);
+int LIBUSB_API libusb_detach_kernel_driver(libusb_device_handle *dev, int interface_number);
+int LIBUSB_API libusb_attach_kernel_driver(libusb_device_handle *dev, int interface_number);
/* async I/O */
@@ -853,7 +861,7 @@ int libusb_attach_kernel_driver(libusb_device_handle *dev, int interface_number)
* \param transfer a transfer
* \returns pointer to the first byte of the data section
*/
-static inline unsigned char *libusb_control_transfer_get_data(
+static inline unsigned char* LIBUSB_API libusb_control_transfer_get_data(
struct libusb_transfer *transfer)
{
return transfer->buffer + LIBUSB_CONTROL_SETUP_SIZE;
@@ -871,7 +879,7 @@ static inline unsigned char *libusb_control_transfer_get_data(
* \param transfer a transfer
* \returns a casted pointer to the start of the transfer data buffer
*/
-static inline struct libusb_control_setup *libusb_control_transfer_get_setup(
+static inline struct libusb_control_setup* LIBUSB_API libusb_control_transfer_get_setup(
struct libusb_transfer *transfer)
{
return (struct libusb_control_setup *) transfer->buffer;
@@ -899,7 +907,7 @@ static inline struct libusb_control_setup *libusb_control_transfer_get_setup(
* \ref libusb_control_setup::wLength "wLength" field of
* \ref libusb_control_setup
*/
-static inline void libusb_fill_control_setup(unsigned char *buffer,
+static inline void LIBUSB_API libusb_fill_control_setup(unsigned char *buffer,
uint8_t bmRequestType, uint8_t bRequest, uint16_t wValue, uint16_t wIndex,
uint16_t wLength)
{
@@ -911,10 +919,10 @@ static inline void libusb_fill_control_setup(unsigned char *buffer,
setup->wLength = libusb_cpu_to_le16(wLength);
}
-struct libusb_transfer *libusb_alloc_transfer(int iso_packets);
-int libusb_submit_transfer(struct libusb_transfer *transfer);
-int libusb_cancel_transfer(struct libusb_transfer *transfer);
-void libusb_free_transfer(struct libusb_transfer *transfer);
+struct libusb_transfer* LIBUSB_API libusb_alloc_transfer(int iso_packets);
+int LIBUSB_API libusb_submit_transfer(struct libusb_transfer *transfer);
+int LIBUSB_API libusb_cancel_transfer(struct libusb_transfer *transfer);
+void LIBUSB_API libusb_free_transfer(struct libusb_transfer *transfer);
/** \ingroup asyncio
* Helper function to populate the required \ref libusb_transfer fields
@@ -943,7 +951,7 @@ void libusb_free_transfer(struct libusb_transfer *transfer);
* \param user_data user data to pass to callback function
* \param timeout timeout for the transfer in milliseconds
*/
-static inline void libusb_fill_control_transfer(
+static inline void LIBUSB_API libusb_fill_control_transfer(
struct libusb_transfer *transfer, libusb_device_handle *dev_handle,
unsigned char *buffer, libusb_transfer_cb_fn callback, void *user_data,
unsigned int timeout)
@@ -974,7 +982,7 @@ static inline void libusb_fill_control_transfer(
* \param user_data user data to pass to callback function
* \param timeout timeout for the transfer in milliseconds
*/
-static inline void libusb_fill_bulk_transfer(struct libusb_transfer *transfer,
+static inline void LIBUSB_API libusb_fill_bulk_transfer(struct libusb_transfer *transfer,
libusb_device_handle *dev_handle, unsigned char endpoint,
unsigned char *buffer, int length, libusb_transfer_cb_fn callback,
void *user_data, unsigned int timeout)
@@ -1002,7 +1010,7 @@ static inline void libusb_fill_bulk_transfer(struct libusb_transfer *transfer,
* \param user_data user data to pass to callback function
* \param timeout timeout for the transfer in milliseconds
*/
-static inline void libusb_fill_interrupt_transfer(
+static inline void LIBUSB_API libusb_fill_interrupt_transfer(
struct libusb_transfer *transfer, libusb_device_handle *dev_handle,
unsigned char endpoint, unsigned char *buffer, int length,
libusb_transfer_cb_fn callback, void *user_data, unsigned int timeout)
@@ -1031,7 +1039,7 @@ static inline void libusb_fill_interrupt_transfer(
* \param user_data user data to pass to callback function
* \param timeout timeout for the transfer in milliseconds
*/
-static inline void libusb_fill_iso_transfer(struct libusb_transfer *transfer,
+static inline void LIBUSB_API libusb_fill_iso_transfer(struct libusb_transfer *transfer,
libusb_device_handle *dev_handle, unsigned char endpoint,
unsigned char *buffer, int length, int num_iso_packets,
libusb_transfer_cb_fn callback, void *user_data, unsigned int timeout)
@@ -1055,7 +1063,7 @@ static inline void libusb_fill_iso_transfer(struct libusb_transfer *transfer,
* \param length the length to set in each isochronous packet descriptor
* \see libusb_get_max_packet_size()
*/
-static inline void libusb_set_iso_packet_lengths(
+static inline void LIBUSB_API libusb_set_iso_packet_lengths(
struct libusb_transfer *transfer, unsigned int length)
{
int i;
@@ -1079,7 +1087,7 @@ static inline void libusb_set_iso_packet_lengths(
* or NULL if the packet does not exist.
* \see libusb_get_iso_packet_buffer_simple()
*/
-static inline unsigned char *libusb_get_iso_packet_buffer(
+static inline unsigned char* LIBUSB_API libusb_get_iso_packet_buffer(
struct libusb_transfer *transfer, unsigned int packet)
{
int i;
@@ -1121,7 +1129,7 @@ static inline unsigned char *libusb_get_iso_packet_buffer(
* or NULL if the packet does not exist.
* \see libusb_get_iso_packet_buffer()
*/
-static inline unsigned char *libusb_get_iso_packet_buffer_simple(
+static inline unsigned char* LIBUSB_API libusb_get_iso_packet_buffer_simple(
struct libusb_transfer *transfer, unsigned int packet)
{
int _packet;
@@ -1141,15 +1149,15 @@ static inline unsigned char *libusb_get_iso_packet_buffer_simple(
/* sync I/O */
-int libusb_control_transfer(libusb_device_handle *dev_handle,
+int LIBUSB_API libusb_control_transfer(libusb_device_handle *dev_handle,
uint8_t request_type, uint8_t request, uint16_t value, uint16_t index,
unsigned char *data, uint16_t length, unsigned int timeout);
-int libusb_bulk_transfer(libusb_device_handle *dev_handle,
+int LIBUSB_API libusb_bulk_transfer(libusb_device_handle *dev_handle,
unsigned char endpoint, unsigned char *data, int length,
int *actual_length, unsigned int timeout);
-int libusb_interrupt_transfer(libusb_device_handle *dev_handle,
+int LIBUSB_API libusb_interrupt_transfer(libusb_device_handle *dev_handle,
unsigned char endpoint, unsigned char *data, int length,
int *actual_length, unsigned int timeout);
@@ -1165,7 +1173,7 @@ int libusb_interrupt_transfer(libusb_device_handle *dev_handle,
* \param length size of data buffer
* \returns number of bytes returned in data, or LIBUSB_ERROR code on failure
*/
-static inline int libusb_get_descriptor(libusb_device_handle *dev,
+static inline int LIBUSB_API libusb_get_descriptor(libusb_device_handle *dev,
uint8_t desc_type, uint8_t desc_index, unsigned char *data, int length)
{
return libusb_control_transfer(dev, LIBUSB_ENDPOINT_IN,
@@ -1187,7 +1195,7 @@ static inline int libusb_get_descriptor(libusb_device_handle *dev,
* \returns number of bytes returned in data, or LIBUSB_ERROR code on failure
* \see libusb_get_string_descriptor_ascii()
*/
-static inline int libusb_get_string_descriptor(libusb_device_handle *dev,
+static inline int LIBUSB_API libusb_get_string_descriptor(libusb_device_handle *dev,
uint8_t desc_index, uint16_t langid, unsigned char *data, int length)
{
return libusb_control_transfer(dev, LIBUSB_ENDPOINT_IN,
@@ -1196,25 +1204,25 @@ static inline int libusb_get_string_descriptor(libusb_device_handle *dev,
langid, data, (uint16_t)length, 1000);
}
-int libusb_get_string_descriptor_ascii(libusb_device_handle *dev,
+int LIBUSB_API libusb_get_string_descriptor_ascii(libusb_device_handle *dev,
uint8_t index, unsigned char *data, int length);
/* polling and timeouts */
-int libusb_try_lock_events(libusb_context *ctx);
-void libusb_lock_events(libusb_context *ctx);
-void libusb_unlock_events(libusb_context *ctx);
-int libusb_event_handling_ok(libusb_context *ctx);
-int libusb_event_handler_active(libusb_context *ctx);
-void libusb_lock_event_waiters(libusb_context *ctx);
-void libusb_unlock_event_waiters(libusb_context *ctx);
-int libusb_wait_for_event(libusb_context *ctx, struct timeval *tv);
-
-int libusb_handle_events_timeout(libusb_context *ctx, struct timeval *tv);
-int libusb_handle_events(libusb_context *ctx);
-int libusb_handle_events_locked(libusb_context *ctx, struct timeval *tv);
-int libusb_pollfds_handle_timeouts(libusb_context *ctx);
-int libusb_get_next_timeout(libusb_context *ctx, struct timeval *tv);
+int LIBUSB_API libusb_try_lock_events(libusb_context *ctx);
+void LIBUSB_API libusb_lock_events(libusb_context *ctx);
+void LIBUSB_API libusb_unlock_events(libusb_context *ctx);
+int LIBUSB_API libusb_event_handling_ok(libusb_context *ctx);
+int LIBUSB_API libusb_event_handler_active(libusb_context *ctx);
+void LIBUSB_API libusb_lock_event_waiters(libusb_context *ctx);
+void LIBUSB_API libusb_unlock_event_waiters(libusb_context *ctx);
+int LIBUSB_API libusb_wait_for_event(libusb_context *ctx, struct timeval *tv);
+
+int LIBUSB_API libusb_handle_events_timeout(libusb_context *ctx, struct timeval *tv);
+int LIBUSB_API libusb_handle_events(libusb_context *ctx);
+int LIBUSB_API libusb_handle_events_locked(libusb_context *ctx, struct timeval *tv);
+int LIBUSB_API libusb_pollfds_handle_timeouts(libusb_context *ctx);
+int LIBUSB_API libusb_get_next_timeout(libusb_context *ctx, struct timeval *tv);
/** \ingroup poll
* File descriptor for polling
@@ -1240,7 +1248,7 @@ struct libusb_pollfd {
* libusb_set_pollfd_notifiers() call
* \see libusb_set_pollfd_notifiers()
*/
-typedef void (*libusb_pollfd_added_cb)(int fd, short events, void *user_data);
+typedef void (LIBUSB_API *libusb_pollfd_added_cb)(int fd, short events, void *user_data);
/** \ingroup poll
* Callback function, invoked when a file descriptor should be removed from
@@ -1251,10 +1259,10 @@ typedef void (*libusb_pollfd_added_cb)(int fd, short events, void *user_data);
* libusb_set_pollfd_notifiers() call
* \see libusb_set_pollfd_notifiers()
*/
-typedef void (*libusb_pollfd_removed_cb)(int fd, void *user_data);
+typedef void (LIBUSB_API *libusb_pollfd_removed_cb)(int fd, void *user_data);
-const struct libusb_pollfd **libusb_get_pollfds(libusb_context *ctx);
-void libusb_set_pollfd_notifiers(libusb_context *ctx,
+const struct libusb_pollfd** LIBUSB_API libusb_get_pollfds(libusb_context *ctx);
+void LIBUSB_API libusb_set_pollfd_notifiers(libusb_context *ctx,
libusb_pollfd_added_cb added_cb, libusb_pollfd_removed_cb removed_cb,
void *user_data);