tag 394214 + patch thanks
Hi, What about the following patch? It gets page_size during open and stores it in a global so that sysconf is not called in the fast path. I did not find any better place than pusb_open (is there something like a pusb_init routine defined in pusb-linux.c ?). It builds fine on i386. I didn't have a chance to try building on another arch so far. I also don't have the hardware to test . Brice Index: eciadsl-usermode-0.11/pusb-linux.c =================================================================== --- eciadsl-usermode-0.11/pusb-linux.c 2006-12-29 15:25:26.000000000 +0100 +++ eciadsl-usermode-0.11/pusb-linux.c 2006-12-29 15:33:20.000000000 +0100 @@ -29,7 +29,6 @@ #include <string.h> #include "pusb-linux.h" -#include <asm/page.h> struct pusb_endpoint_t { @@ -217,10 +216,15 @@ return(make_device(fd)); } +/* save page_size at open */ +static unsigned long page_size; + pusb_device_t pusb_open(const char* path) { int fd; + page_size = sysconf(_SC_PAGESIZE); + fd = open(path, O_RDWR); if (fd < 0) { @@ -352,8 +356,8 @@ { bulk.ep = ep; bulk.len = size; - if (bulk.len > PAGE_SIZE) - bulk.len = PAGE_SIZE; + if (bulk.len > page_size) + bulk.len = page_size; bulk.timeout = timeout; bulk.data = buf; -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]