diff options
author | Pete Batard <pbatard@gmail.com> | 2010-04-13 23:32:45 +0100 |
---|---|---|
committer | Pete Batard <pbatard@gmail.com> | 2010-04-13 23:32:45 +0100 |
commit | 511f5b9fdf032fc6b3d4b926538705fe96db1d4f (patch) | |
tree | a892839a85f674177475dd49e374a6cc47372bba /libusb/libusb.h | |
parent | 26a0c962b13088896a91052e78a23303aa085260 (diff) | |
download | libusb-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.h | 146 |
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); |