From 1fc8f7a47d7d6db0c7ef6f554595670124b319c5 Mon Sep 17 00:00:00 2001 From: Michael Gernoth Date: Tue, 23 Sep 2008 16:23:20 +0200 Subject: [PATCH 1/1] cable sharing for USB needs to overload semop, this adds a disabled stub --- usb-driver.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/usb-driver.c b/usb-driver.c index 26ce16b..e2f275f 100644 --- a/usb-driver.c +++ b/usb-driver.c @@ -39,6 +39,8 @@ #include #include #include +#include +#include #include "usb-driver.h" #include "config.h" #include "xpcu.h" @@ -624,6 +626,29 @@ int access(const char *pathname, int mode) { } } +#if 0 +/* USB cable sharing needs to overload semop, TODO! */ +int semop (int __semid, struct sembuf *__sops, size_t __nsops) { + static int (*func) (int, struct sembuf*, size_t) = NULL; + int i; + + if (!func) + func = (int (*) (int, struct sembuf*, size_t)) dlsym(RTLD_NEXT, "semop"); + + fprintf(stderr,"semop: semid: 0x%X, elements: %d\n", __semid, __nsops); + for (i = 0; i < __nsops; i++) { + fprintf(stderr, " num: %u, op: %d, flg: %d\n", __sops[i].sem_num, __sops[i].sem_op, __sops[i].sem_flg); + if (__sops[i].sem_op < 0) { + fprintf(stderr, "SEMAPHORE LOCK\n"); + } else { + fprintf(stderr, "SEMAPHORE UNLOCK\n"); + } + } + + return (*func)(__semid, __sops, __nsops); +} +#endif + #if __WORDSIZE == 32 int uname (struct utsname *__name) { static int (*func) (struct utsname*); -- 2.39.5