summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPete Batard <pbatard@gmail.com>2010-07-29 19:55:45 +0100
committerPete Batard <pbatard@gmail.com>2010-07-29 20:08:12 +0100
commit48e189898075c26438bcf6782323c5525abc19bd (patch)
treed474d670bd0284b7c40378df8bf15fa771239009
parent84d996b482177c70c11070f6317174bdfd407e80 (diff)
downloadlibusb-48e189898075c26438bcf6782323c5525abc19bd.tar.gz
fixed residuals from official for core files
-rw-r--r--libusb/core.c6
-rw-r--r--libusb/descriptor.c1
-rw-r--r--libusb/io.c27
-rw-r--r--libusb/libusbi.h2
4 files changed, 21 insertions, 15 deletions
diff --git a/libusb/core.c b/libusb/core.c
index 6a78c51..5104f68 100644
--- a/libusb/core.c
+++ b/libusb/core.c
@@ -24,6 +24,7 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
+#include <sys/types.h>
#include "libusbi.h"
@@ -1540,6 +1541,11 @@ API_EXPORTED int LIBUSB_API libusb_init(libusb_context **context)
goto err_free_ctx;
}
+ usbi_mutex_init(&ctx->usb_devs_lock, NULL);
+ usbi_mutex_init(&ctx->open_devs_lock, NULL);
+ list_init(&ctx->usb_devs);
+ list_init(&ctx->open_devs);
+
r = usbi_io_init(ctx);
if (r < 0) {
if (usbi_backend->exit)
diff --git a/libusb/descriptor.c b/libusb/descriptor.c
index c713109..c1382fa 100644
--- a/libusb/descriptor.c
+++ b/libusb/descriptor.c
@@ -19,6 +19,7 @@
*/
#include <errno.h>
+#include <stdint.h>
#include <stdlib.h>
#include <string.h>
diff --git a/libusb/io.c b/libusb/io.c
index 8d94400..c9b0ba4 100644
--- a/libusb/io.c
+++ b/libusb/io.c
@@ -1002,7 +1002,7 @@ printf("completed!\n");
int usbi_io_init(struct libusb_context *ctx)
{
- int p, r;
+ int r;
usbi_mutex_init(&ctx->flying_transfers_lock, NULL);
usbi_mutex_init(&ctx->pollfds_lock, NULL);
@@ -1014,15 +1014,15 @@ int usbi_io_init(struct libusb_context *ctx)
list_init(&ctx->pollfds);
/* FIXME should use an eventfd on kernels that support it */
- p = usbi_pipe(ctx->ctrl_pipe);
- if (p < 0) {
+ r = usbi_pipe(ctx->ctrl_pipe);
+ if (r < 0) {
r = LIBUSB_ERROR_OTHER;
goto err;
}
r = usbi_add_pollfd(ctx, ctx->ctrl_pipe[0], POLLIN);
if (r < 0)
- goto err;
+ goto err_close_pipe;
#ifdef USBI_TIMERFD_AVAILABLE
ctx->timerfd = timerfd_create(usbi_backend->get_timerfd_clockid(),
@@ -1030,8 +1030,11 @@ int usbi_io_init(struct libusb_context *ctx)
if (ctx->timerfd >= 0) {
usbi_dbg("using timerfd for timeouts");
r = usbi_add_pollfd(ctx, ctx->timerfd, POLLIN);
- if (r < 0)
- goto err;
+ if (r < 0) {
+ usbi_remove_pollfd(ctx, ctx->ctrl_pipe[0]);
+ close(ctx->timerfd);
+ goto err_close_pipe;
+ }
} else {
usbi_dbg("timerfd not available (code %d error %d)", ctx->timerfd, errno);
ctx->timerfd = -1;
@@ -1040,16 +1043,10 @@ int usbi_io_init(struct libusb_context *ctx)
return 0;
+err_close_pipe:
+ usbi_close(ctx->ctrl_pipe[0]);
+ usbi_close(ctx->ctrl_pipe[1]);
err:
-#ifdef USBI_TIMERFD_AVAILABLE
- if (ctx->timerfd != -1)
- close(ctx->timerfd);
-#endif
- if (0 == p) {
- usbi_remove_pollfd(ctx, ctx->ctrl_pipe[0]);
- usbi_close(ctx->ctrl_pipe[0]);
- usbi_close(ctx->ctrl_pipe[1]);
- }
usbi_mutex_destroy(&ctx->flying_transfers_lock);
usbi_mutex_destroy(&ctx->pollfds_lock);
usbi_mutex_destroy(&ctx->pollfd_modify_lock);
diff --git a/libusb/libusbi.h b/libusb/libusbi.h
index cca5fa0..ef3b20e 100644
--- a/libusb/libusbi.h
+++ b/libusb/libusbi.h
@@ -22,8 +22,10 @@
#define __LIBUSBI_H__
#include <config.h>
+
#include <stddef.h>
#include <stdint.h>
+#include <time.h>
#include <libusb.h>