summaryrefslogtreecommitdiff
path: root/libusb/os
diff options
context:
space:
mode:
authorChris Dickens <christopher.a.dickens@gmail.com>2020-03-30 12:38:47 -0700
committerChris Dickens <christopher.a.dickens@gmail.com>2020-03-30 12:38:47 -0700
commit95bbfb6023877ca25720f04203ef2aa2f691e995 (patch)
tree66fab38659c1b0a9cbc3d4ae85b6f5cf3ce79c44 /libusb/os
parent9a1bc8cafb904c20a869c74ad6d657686a1c4bb1 (diff)
downloadlibusb-95bbfb6023877ca25720f04203ef2aa2f691e995.tar.gz
build: Enable additional build errors and warnings
Help catch more errors by enabling additional build errors and warnings. Address some of the warnings seen with these new flags, including moving the libusb_transfer structure back out of the usbi_transfer structure to address 'warning: invalid use of structure with flexible array member'. Apparently a structure ending with a flexible array member is not okay with the compiler as the last member within another structure. Signed-off-by: Chris Dickens <christopher.a.dickens@gmail.com>
Diffstat (limited to 'libusb/os')
-rw-r--r--libusb/os/linux_udev.c6
-rw-r--r--libusb/os/poll_windows.c4
-rw-r--r--libusb/os/windows_common.c5
-rw-r--r--libusb/os/windows_winusb.c43
4 files changed, 47 insertions, 11 deletions
diff --git a/libusb/os/linux_udev.c b/libusb/os/linux_udev.c
index d8851cf..33a9174 100644
--- a/libusb/os/linux_udev.c
+++ b/libusb/os/linux_udev.c
@@ -131,7 +131,7 @@ err:
int linux_udev_stop_event_monitor(void)
{
char dummy = 1;
- int r;
+ ssize_t r;
assert(udev_ctx != NULL);
assert(udev_monitor != NULL);
@@ -176,13 +176,15 @@ static void *linux_udev_event_thread_main(void *arg)
.events = POLLIN},
};
+ UNUSED(arg);
+
#if defined(HAVE_PTHREAD_SETNAME_NP)
r = pthread_setname_np(pthread_self(), "libusb_event");
if (r)
usbi_warn(NULL, "failed to set hotplug event thread name, error=%d", r);
#endif
- usbi_dbg("udev event thread entering.");
+ usbi_dbg("udev event thread entering");
while ((r = poll(fds, 2, -1)) >= 0 || errno == EINTR) {
if (r < 0) {
diff --git a/libusb/os/poll_windows.c b/libusb/os/poll_windows.c
index 490ee7f..5497088 100644
--- a/libusb/os/poll_windows.c
+++ b/libusb/os/poll_windows.c
@@ -222,7 +222,7 @@ static DWORD WINAPI WaitThread(LPVOID lpParam)
DWORD status;
status = WaitForMultipleObjects(thread_data->num_handles, thread_data->handles, FALSE, INFINITE);
- if ((status >= WAIT_OBJECT_0) && (status < (WAIT_OBJECT_0 + thread_data->num_handles))) {
+ if (status < (WAIT_OBJECT_0 + thread_data->num_handles)) {
if (status > WAIT_OBJECT_0) {
// This will wake up all the other waiting threads
SetEvent(notify_event);
@@ -291,7 +291,7 @@ static DWORD poll_wait(const HANDLE *wait_handles, DWORD num_wait_handles, DWORD
}
status = WaitForMultipleObjects(MAXIMUM_WAIT_OBJECTS, handles, FALSE, timeout);
- if ((status >= WAIT_OBJECT_0) && (status < (WAIT_OBJECT_0 + MAXIMUM_WAIT_OBJECTS))) {
+ if (status < (WAIT_OBJECT_0 + MAXIMUM_WAIT_OBJECTS)) {
if (status > WAIT_OBJECT_0) {
// Wake up all the waiting threads
SetEvent(notify_event);
diff --git a/libusb/os/windows_common.c b/libusb/os/windows_common.c
index debff74..418b6b7 100644
--- a/libusb/os/windows_common.c
+++ b/libusb/os/windows_common.c
@@ -565,7 +565,7 @@ static int windows_set_option(struct libusb_context *ctx, enum libusb_option opt
UNUSED(ap);
- switch (option) {
+ switch ((int)option) {
case LIBUSB_OPTION_USE_USBDK:
if (usbdk_available) {
usbi_dbg("switching context %p to use UsbDk backend", ctx);
@@ -832,7 +832,8 @@ int usbi_clock_gettime(int clk_id, struct timespec *tp)
tp->tv_nsec = (long)(((hires_counter.QuadPart % hires_frequency) * hires_ticks_to_ps) / UINT64_C(1000));
return 0;
}
- // Fall through and return real-time if monotonic was not detected @ timer init
+ // Return real-time if monotonic was not detected @ timer init
+ // Fall through
case USBI_CLOCK_REALTIME:
#if defined(_MSC_VER) && (_MSC_VER >= 1900)
if (!timespec_get(tp, TIME_UTC)) {
diff --git a/libusb/os/windows_winusb.c b/libusb/os/windows_winusb.c
index 245df90..67013d6 100644
--- a/libusb/os/windows_winusb.c
+++ b/libusb/os/windows_winusb.c
@@ -1137,7 +1137,7 @@ static int winusb_get_device_list(struct libusb_context *ctx, struct discovered_
unsigned int guid_size = GUID_SIZE_STEP;
unsigned int nb_guids;
// Keep a list of PnP enumerator strings that are found
- char *usb_enumerator[8] = { "USB" };
+ const char *usb_enumerator[8] = { "USB" };
unsigned int nb_usb_enumerators = 1;
unsigned int usb_enum_index = 0;
// Keep a list of newly allocated devs to unref
@@ -1518,7 +1518,7 @@ static int winusb_get_device_list(struct libusb_context *ctx, struct discovered_
// Free any PnP enumerator strings
for (i = 1; i < nb_usb_enumerators; i++)
- free(usb_enumerator[i]);
+ free((void *)usb_enumerator[i]);
// Unref newly allocated devs
for (i = 0; i < unref_cur; i++)
@@ -1835,12 +1835,44 @@ const struct windows_usb_api_backend usb_api_backend[USB_API_MAX] = {
{
USB_API_UNSUPPORTED,
"Unsupported API",
- // No supported operations
+ NULL, /* driver_name_list */
+ 0, /* nb_driver_names */
+ NULL, /* init */
+ NULL, /* exit */
+ NULL, /* open */
+ NULL, /* close */
+ NULL, /* configure_endpoints */
+ NULL, /* claim_interface */
+ NULL, /* set_interface_altsetting */
+ NULL, /* release_interface */
+ NULL, /* clear_halt */
+ NULL, /* reset_device */
+ NULL, /* submit_bulk_transfer */
+ NULL, /* submit_iso_transfer */
+ NULL, /* submit_control_transfer */
+ NULL, /* cancel_transfer */
+ NULL, /* copy_transfer_data */
},
{
USB_API_HUB,
"HUB API",
- // No supported operations
+ NULL, /* driver_name_list */
+ 0, /* nb_driver_names */
+ NULL, /* init */
+ NULL, /* exit */
+ NULL, /* open */
+ NULL, /* close */
+ NULL, /* configure_endpoints */
+ NULL, /* claim_interface */
+ NULL, /* set_interface_altsetting */
+ NULL, /* release_interface */
+ NULL, /* clear_halt */
+ NULL, /* reset_device */
+ NULL, /* submit_bulk_transfer */
+ NULL, /* submit_iso_transfer */
+ NULL, /* submit_control_transfer */
+ NULL, /* cancel_transfer */
+ NULL, /* copy_transfer_data */
},
{
USB_API_COMPOSITE,
@@ -3990,7 +4022,8 @@ static int composite_submit_control_transfer(int sub_api, struct usbi_transfer *
libusb_free_config_descriptor(conf_desc);
break;
}
- // Fall through if not able to determine interface
+ // No break if not able to determine interface
+ // Fall through
default:
iface = -1;
break;