Use nanosleep() instead of usleep()
PATCH 1/1 Use nanosleep() instead of usleep()
POSIX.1-2001 declares usleep() function obsolete and POSIX.1-2008 removes it. Converted the calls to nanosleep().
--- extras/modem-modeswitch/ma8280p_us.c | 335 +++++++++++++++++----------------- extras/scsi_id/scsi_serial.c | 8 +- udev/udev-event.c | 9 +- udev/udev-rules.c | 9 +- udev/udevadm-settle.c | 8 +- 5 files changed, 202 insertions(+), 167 deletions(-)
extras/modem-modeswitch/ma8280p_us.c +172 -163
@@ -88,10 +88,19 @@#include <signal.h> #include <ctype.h> #include <usb.h> +#include <time.h> /* nanosleep() */ #include "utils.h" #include "ma8280p_us.h" +int nsleep (useconds_t usec) +{ +struct timespec time; + time.tv_sec = usec /1000000 ; + time.tv_nsec = (usec - (time.tv_sec *1000000 )) *1000 ; +return nanosleep (&time,NULL ); +} +int ma8280p_switch (struct usb_dev_handle *devh,struct usb_device *dev) {int ret =1 ;
@@ -104,11 +113,11 @@ int ma8280p_switch (struct usb_dev_handle *devh, struct usb_device *dev) } ret =usb_get_descriptor (devh,0x0000001 ,0x0000000 , buf,0x0000012 ); -usleep (6 *1000 ); +nsleep (6 *1000 ); ret =usb_get_descriptor (devh,0x0000001 ,0x0000000 , buf,0x0000012 ); -usleep (6 *1000 ); +nsleep (6 *1000 ); ret =usb_get_descriptor (devh,0x0000002 ,0x0000000 , buf,0x0000400 ); -usleep (10 *1000 ); +nsleep (10 *1000 ); ret =usb_release_interface (devh,0 );if (ret !=0 )debug ("%s: failed to release interface before set_configuration: %d" , dev->filename, ret);
@@ -117,335 +126,335 @@ int ma8280p_switch (struct usb_dev_handle *devh, struct usb_device *dev)if (ret !=0 )debug ("%s: claim after set_configuration failed with error %d" , dev->filename, ret);//ret = usb_set_altinterface(devh, 0); -//usleep(33*1000); +//nsleep(33*1000); ret =usb_control_msg (devh,USB_TYPE_CLASS +USB_RECIP_INTERFACE +USB_ENDPOINT_IN ,0x0000001 ,0x0000300 ,0x0000000 , buf,0x0000008 ,1000 ); -usleep (5 *1000 ); +nsleep (5 *1000 );memcpy (buf,"\xb0\x04\x00\x00\x02\x90\x26\x86" ,0x0000008 ); ret =usb_control_msg (devh,USB_TYPE_CLASS +USB_RECIP_INTERFACE ,0x0000009 ,0x0000300 ,0x0000000 , buf,0x0000008 ,1000 ); -usleep (4 *1000 ); +nsleep (4 *1000 );memcpy (buf,"\xb0\x04\x00\x00\x02\x90\x26\x86" ,0x0000008 ); ret =usb_control_msg (devh,USB_TYPE_CLASS +USB_RECIP_INTERFACE ,0x0000009 ,0x0000300 ,0x0000000 , buf,0x0000008 ,1000 ); -usleep (4 *1000 ); +nsleep (4 *1000 ); -usleep (4 *1000 ); +nsleep (4 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (6 *1000 ); +nsleep (6 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (1 *1000 ); +nsleep (1 *1000 );//URB_FUNCTION_GET_STATUS_FROM_ENDPOINT skipped -usleep (4 *1000 ); +nsleep (4 *1000 );memcpy (buf,"\x37\x01\xfe\xdb\xc1\x33\x1f\x83" ,0x0000008 ); ret =usb_interrupt_write (devh,0x00000002 , buf,0x0000008 ,1000 ); -usleep (3 *1000 ); +nsleep (3 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (1 *1000 ); +nsleep (1 *1000 );memcpy (buf,"\x37\x0e\xb5\x9d\x3b\x8a\x91\x51" ,0x0000008 ); ret =usb_interrupt_write (devh,0x00000002 , buf,0x0000008 ,1000 ); -usleep (7 *1000 ); +nsleep (7 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (1 *1000 ); +nsleep (1 *1000 );memcpy (buf,"\x34\x87\xba\x0d\xfc\x8a\x91\x51" ,0x0000008 ); ret =usb_interrupt_write (devh,0x00000002 , buf,0x0000008 ,1000 ); -usleep (7 *1000 ); +nsleep (7 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (2 *1000 ); +nsleep (2 *1000 );//URB_FUNCTION_GET_STATUS_FROM_ENDPOINT skipped -usleep (4 *1000 ); +nsleep (4 *1000 );memcpy (buf,"\x37\x01\xfe\xdb\xc1\x33\x1f\x83" ,0x0000008 ); ret =usb_interrupt_write (devh,0x00000002 , buf,0x0000008 ,1000 ); -usleep (2 *1000 ); +nsleep (2 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (1 *1000 ); +nsleep (1 *1000 );memcpy (buf,"\x37\x0e\xb5\x9d\x3b\x8a\x91\x51" ,0x0000008 ); ret =usb_interrupt_write (devh,0x00000002 , buf,0x0000008 ,1000 ); -usleep (7 *1000 ); +nsleep (7 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (1 *1000 ); +nsleep (1 *1000 );memcpy (buf,"\x34\x87\xba\x0d\xfc\x8a\x91\x51" ,0x0000008 ); ret =usb_interrupt_write (devh,0x00000002 , buf,0x0000008 ,1000 ); -usleep (7 *1000 ); +nsleep (7 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +nsleep (8 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (1 *1000 ); +nsleep (1 *1000 );//URB_FUNCTION_GET_STATUS_FROM_ENDPOINT skipped -usleep (4 *1000 ); +nsleep (4 *1000 );memcpy (buf,"\x33\x04\xfe\x00\xf4\x6c\x1f\xf0" ,0x0000008 ); ret =usb_interrupt_write (devh,0x00000002 , buf,0x0000008 ,1000 ); -usleep (3 *1000 ); +nsleep (3 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (1 *1000 ); +nsleep (1 *1000 );//URB_FUNCTION_GET_STATUS_FROM_ENDPOINT skipped -usleep (4 *1000 ); +nsleep (4 *1000 );memcpy (buf,"\x32\x07\xfe\xf0\x29\xb9\x3a\xf0" ,0x0000008 ); ret =usb_interrupt_write (devh,0x00000002 , buf,0x0000008 ,1000 ); -usleep (3 *1000 ); +nsleep (3 *1000 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 );if (buf)
extras/scsi_id/scsi_serial.c +7 -1
@@ -27,6 +27,7 @@#include <scsi/scsi.h> #include <scsi/sg.h> #include <linux/types.h> +#include <time.h> /* nanosleep() */ /* #include <linux/bsg.h> */ #include "bsg.h"
@@ -846,13 +847,18 @@ int scsi_get_serial(struct udev *udev,memset (dev_scsi->serial,0 , len);dbg (udev,"opening %s\n" , devname);while (--cnt) { +struct timespec time; + fd =open (devname,O_RDONLY |O_NONBLOCK );if (fd >=0 )break ;info (udev,"%s: cannot open %s: %s\n" , dev_scsi->kernel, devname,strerror (errno));if (errno !=EBUSY )break ; -usleep (500000 + (rand () %100000 ) ); + + time.tv_sec =0 ; + time.tv_nsec =500000000 + (rand () %100000000 ); +nanosleep (&time,NULL ); }if (fd <0 )return 1 ;
udev/udev-event.c +8 -1
@@ -27,6 +27,7 @@#include <sys/socket.h> #include <net/if.h> #include <linux/sockios.h> +#include <time.h> /* nanosleep() */ #include "udev.h"
@@ -505,6 +506,8 @@ static int rename_netif(struct udev_event *event)util_strscpy (ifr.ifr_newname,IFNAMSIZ , event->name); loop =90 *20 ;while (loop--) { +struct timespec time; + err =ioctl (sk,SIOCSIFNAME , &ifr);if (err ==0 ) {rename_netif_kernel_log (ifr);
@@ -518,7 +521,11 @@ static int rename_netif(struct udev_event *event) }dbg (event->udev,"wait for netif '%s' to become free, loop=%i\n" , event->name, (90 *20 ) - loop); -usleep (1000 *1000 /20 ); + + time.tv_sec =0 ; + time.tv_nsec =1000 *1000 *1000 /20 ; + +nanosleep (&time,NULL ); } } exit:
udev/udev-rules.c +8 -1
@@ -27,6 +27,7 @@#include <errno.h> #include <dirent.h> #include <fnmatch.h> +#include <time.h> /* nanosleep() */ #include "udev.h"
@@ -814,6 +815,8 @@ static int wait_for_file(struct udev_device *dev, const char *file, int timeout)dbg (udev,"will wait %i sec for '%s'\n" , timeout, file);while (--loop) { +struct timespec time; +/* lookup file */ if (stat (file, &stats) ==0 ) {info (udev,"file '%s' appeared after %i loops\n" , file, (timeout *WAIT_LOOP_PER_SECOND ) - loop-1 );
@@ -825,7 +828,11 @@ static int wait_for_file(struct udev_device *dev, const char *file, int timeout)return -2 ; }info (udev,"wait for '%s' for %i mseconds\n" , file,1000 /WAIT_LOOP_PER_SECOND ); -usleep (1000 *1000 /WAIT_LOOP_PER_SECOND ); + + time.tv_sec =0 ; + time.tv_nsec =1000 *1000 *1000 /WAIT_LOOP_PER_SECOND ; + +nanosleep (&time,NULL ); }info (udev,"waiting for '%s' failed\n" , file);return -1 ;
udev/udevadm-settle.c +7 -1
@@ -30,6 +30,7 @@#include <signal.h> #include <sys/stat.h> #include <sys/types.h> +#include <time.h> /* nanosleep() */ #include "udev.h"
@@ -162,6 +163,7 @@ int udevadm_settle(struct udev *udev, int argc, char *argv[])/* guarantee that the udev daemon isn't pre-processing */ if (getuid () ==0 ) {struct udev_ctrl *uctrl; +struct timespec time; uctrl =udev_ctrl_new_from_socket (udev,UDEV_CTRL_SOCK_PATH );if (uctrl !=NULL ) {
@@ -180,6 +182,7 @@ int udevadm_settle(struct udev *udev, int argc, char *argv[])while (1 ) {struct stat statbuf; +struct timespec time;if (exists !=NULL &&stat (exists, &statbuf) ==0 ) { rc =0 ;
@@ -203,7 +206,10 @@ int udevadm_settle(struct udev *udev, int argc, char *argv[])if (is_timeout)break ; -usleep (1000 *1000 /LOOP_PER_SECOND ); + time.tv_sec =0 ; + time.tv_nsec =1000 *1000 *1000 /LOOP_PER_SECOND ; + +nanosleep (&time,NULL ); }/* if we reached the timeout, print the list of remaining events */
Quoted 3 lines · Daniel Mierswa
POSIX.1-2001 Â declares
usleep()function obsolete and POSIX.1-2008 removes it. Converted the calls tonanosleep().
+++ b/extras/modem-modeswitch/ma8280p_us.c
@@ -88,10 +88,19 @@
#include <signal.h>
#include <ctype.h>
#include <usb.h>
+#include <time.h> /* nanosleep() */
Please drop such comments.
#include "utils.h"
#include "ma8280p_us.h"
+int nsleep(useconds_t usec)
This needs a better name. We better don't pass usecs to a function called nsleep. :)
@@ -162,6 +163,7 @@ int udevadm_settle(struct udev *udev, int argc, char *argv[])
/* guarantee that the udev daemon isn't pre-processing */ if (getuid() = 0) {
struct udev_ctrl *uctrl;
+ struct timespec time;
Is this used?
@@ -203,7 +206,10 @@ int udevadm_settle(struct udev *udev, int argc, char *argv[])
if (is_timeout)
break;
- usleep(1000 * 1000 / LOOP_PER_SECOND);
+ time.tv_sec = 0;
+ time.tv_nsec = 1000 * 1000 * 1000 / LOOP_PER_SECOND;
+
+ nanosleep(&time, NULL);
Please remove the newline in the middle of the logical block (several occurences).
Thanks,
Kay
Quoted 1 line · Kay Sievers
Please drop such comments.
Done.
Quoted 2 lines
This needs a better name. We better don't pass usecs to a function called nsleep. :)
I did a conditional replacement now with the same name.
Quoted 2 lines
Please remove the newline in the middle of the logical block (several occurences).
Done too.
Reattached a new patch.
Signature · 4 lines
Mierswa, Daniel
If you still don't like it, that's ok: that's why I'm boss. I simply know better than you do.
--- Linus Torvalds, comp.os.linux.advocacy, 1996/07/22From 1c9936d92b2f9e80832180661aabcd7a4d93a2d7 Mon Sep 17 00:00:00 2001
From: Daniel Mierswa <[email protected]>
Date: Mon, 17 Aug 2009 16:02:59 +0200
Subject: [PATCH] Use nanosleep() instead of usleep()
POSIX.1-2001 declares usleep() function obsolete and POSIX.1-2008 removes it. If usleep() is no longer present on a system, we use nanosleep() instead.
--- configure.ac | 1 + extras/modem-modeswitch/ma8280p_us.c | 1 + libudev/libudev-private.h | 11 +++++++++++ 3 files changed, 13 insertions(+), 0 deletions(-)
configure.ac +1 -0
@@ -11,6 +11,7 @@ AC_PROG_AWK GTK_DOC_CHECK(1.10) AC_PREFIX_DEFAULT([/usr]) AC_PATH_PROG([XSLTPROC], [xsltproc]) +AC_CHECK_FUNCS([usleep]) AC_ARG_WITH([rootlibdir], AS_HELP_STRING([--with-rootlibdir=DIR], [rootfs directory to install shared libraries]),
extras/modem-modeswitch/ma8280p_us.c +1 -0
@@ -91,6 +91,7 @@#include "utils.h" #include "ma8280p_us.h" +#include "libudev-private.h" int ma8280p_switch (struct usb_dev_handle *devh,struct usb_device *dev) {
libudev/libudev-private.h +11 -0
@@ -15,6 +15,17 @@#include <syslog.h> #include "libudev.h" +#ifndef HAVE_USLEEP +# include <time.h> +# define usleep (usec) \ + do { \ + struct timespec time; \ + time.tv_sec = usec / 1000000; \ + time.tv_nsec = (usec - (time.tv_sec * 1000000)) * 1000; \ + return nanosleep(&time, NULL); \ + } while (0) +#endif +#define ARRAY_SIZE (x) (sizeof(x) / sizeof((x)[0]))#define READ_END 0#define WRITE_END 1
Signature · 1 line
1.6.4
Quoted 3 lines · Daniel Mierswa
POSIX.1-2001 Â declares
usleep()function obsolete and POSIX.1-2008 removes it. Ifusleep()is no longer present on a system, we usenanosleep()instead.
What's the point doing that wrapping? Will usleep() ever be removed from glibc?
Kay
Quoted 1 line · Kay Sievers
What's the point doing that wrapping? Will
usleep()ever be removed from glibc?
Well POSIX.1-2008 removes the specification and if you disable UCLIBC_SUSV3_LEGACY in uClibc (which is default) you will get undefined references. I don't think it's too big of a problem to replace it for the cases where the C library doesn't offer it, is it?
Signature · 5 lines
Mierswa, Daniel
If you still don't like it, that's ok: that's why I'm boss. I simply
know better than you do.
--- Linus Torvalds, comp.os.linux.advocacy, 1996/07/22Quoted 7 lines · Daniel Mierswa
Quoted 1 line · Kay Sievers
What's the point doing that wrapping? Will
usleep()ever be removed from glibc?Well POSIX.1-2008 removes the specification and if you disable
UCLIBC_SUSV3_LEGACYin uClibc (which is default) you will get undefined references. I don't think it's too big of a problem to replace it for the cases where the C library doesn't offer it, is it?
Why not just use nanosleep() unconditionally?
Scott
Signature · 2 lines
Scott James Remnant [email protected]
Quoted 1 line · Scott James Remnant
Why not just use
nanosleep()unconditionally?
Here we go, reworked patch with unconditional replacement.
From d44a17fc464b973f0c60843a97464b5722d32bdd Mon Sep 17 00:00:00 2001
From: Daniel Mierswa <[email protected]>
Date: Mon, 17 Aug 2009 16:02:59 +0200
Subject: [PATCH] Use nanosleep() instead of usleep()
POSIX.1-2001 declares usleep() function obsolete and POSIX.1-2008 removes it. Replace all usleep code with nanosleep equivalent.
--- extras/modem-modeswitch/ma8280p_us.c | 333 +++++++++++++++++----------------- extras/scsi_id/scsi_serial.c | 5 +- udev/udev-event.c | 5 +- udev/udev-rules.c | 5 +- udev/udevadm-settle.c | 5 +- 5 files changed, 186 insertions(+), 167 deletions(-)
extras/modem-modeswitch/ma8280p_us.c +170 -163
@@ -92,6 +92,13 @@#include "utils.h" #include "ma8280p_us.h" +/* suspend the process execution for msec milliseconds */ +static void msuspend (unsigned short msec) +{ +struct timespec duration = {0 , msec *1000 *1000 }; +nanosleep (&duration,NULL ); +} +int ma8280p_switch (struct usb_dev_handle *devh,struct usb_device *dev) {int ret =1 ;
@@ -104,11 +111,11 @@ int ma8280p_switch (struct usb_dev_handle *devh, struct usb_device *dev) } ret =usb_get_descriptor (devh,0x0000001 ,0x0000000 , buf,0x0000012 ); -usleep (6 *1000 ); +msuspend (6 ); ret =usb_get_descriptor (devh,0x0000001 ,0x0000000 , buf,0x0000012 ); -usleep (6 *1000 ); +msuspend (6 ); ret =usb_get_descriptor (devh,0x0000002 ,0x0000000 , buf,0x0000400 ); -usleep (10 *1000 ); +msuspend (10 ); ret =usb_release_interface (devh,0 );if (ret !=0 )debug ("%s: failed to release interface before set_configuration: %d" , dev->filename, ret);
@@ -117,335 +124,335 @@ int ma8280p_switch (struct usb_dev_handle *devh, struct usb_device *dev)if (ret !=0 )debug ("%s: claim after set_configuration failed with error %d" , dev->filename, ret);//ret = usb_set_altinterface(devh, 0); -//usleep(33*1000); +//msuspend(33); ret =usb_control_msg (devh,USB_TYPE_CLASS +USB_RECIP_INTERFACE +USB_ENDPOINT_IN ,0x0000001 ,0x0000300 ,0x0000000 , buf,0x0000008 ,1000 ); -usleep (5 *1000 ); +msuspend (5 );memcpy (buf,"\xb0\x04\x00\x00\x02\x90\x26\x86" ,0x0000008 ); ret =usb_control_msg (devh,USB_TYPE_CLASS +USB_RECIP_INTERFACE ,0x0000009 ,0x0000300 ,0x0000000 , buf,0x0000008 ,1000 ); -usleep (4 *1000 ); +msuspend (4 );memcpy (buf,"\xb0\x04\x00\x00\x02\x90\x26\x86" ,0x0000008 ); ret =usb_control_msg (devh,USB_TYPE_CLASS +USB_RECIP_INTERFACE ,0x0000009 ,0x0000300 ,0x0000000 , buf,0x0000008 ,1000 ); -usleep (4 *1000 ); +msuspend (4 ); -usleep (4 *1000 ); +msuspend (4 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (6 *1000 ); +msuspend (6 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (1 *1000 ); +msuspend (1 );//URB_FUNCTION_GET_STATUS_FROM_ENDPOINT skipped -usleep (4 *1000 ); +msuspend (4 );memcpy (buf,"\x37\x01\xfe\xdb\xc1\x33\x1f\x83" ,0x0000008 ); ret =usb_interrupt_write (devh,0x00000002 , buf,0x0000008 ,1000 ); -usleep (3 *1000 ); +msuspend (3 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (1 *1000 ); +msuspend (1 );memcpy (buf,"\x37\x0e\xb5\x9d\x3b\x8a\x91\x51" ,0x0000008 ); ret =usb_interrupt_write (devh,0x00000002 , buf,0x0000008 ,1000 ); -usleep (7 *1000 ); +msuspend (7 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (1 *1000 ); +msuspend (1 );memcpy (buf,"\x34\x87\xba\x0d\xfc\x8a\x91\x51" ,0x0000008 ); ret =usb_interrupt_write (devh,0x00000002 , buf,0x0000008 ,1000 ); -usleep (7 *1000 ); +msuspend (7 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (2 *1000 ); +msuspend (2 );//URB_FUNCTION_GET_STATUS_FROM_ENDPOINT skipped -usleep (4 *1000 ); +msuspend (4 );memcpy (buf,"\x37\x01\xfe\xdb\xc1\x33\x1f\x83" ,0x0000008 ); ret =usb_interrupt_write (devh,0x00000002 , buf,0x0000008 ,1000 ); -usleep (2 *1000 ); +msuspend (2 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (1 *1000 ); +msuspend (1 );memcpy (buf,"\x37\x0e\xb5\x9d\x3b\x8a\x91\x51" ,0x0000008 ); ret =usb_interrupt_write (devh,0x00000002 , buf,0x0000008 ,1000 ); -usleep (7 *1000 ); +msuspend (7 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (1 *1000 ); +msuspend (1 );memcpy (buf,"\x34\x87\xba\x0d\xfc\x8a\x91\x51" ,0x0000008 ); ret =usb_interrupt_write (devh,0x00000002 , buf,0x0000008 ,1000 ); -usleep (7 *1000 ); +msuspend (7 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (8 *1000 ); +msuspend (8 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (1 *1000 ); +msuspend (1 );//URB_FUNCTION_GET_STATUS_FROM_ENDPOINT skipped -usleep (4 *1000 ); +msuspend (4 );memcpy (buf,"\x33\x04\xfe\x00\xf4\x6c\x1f\xf0" ,0x0000008 ); ret =usb_interrupt_write (devh,0x00000002 , buf,0x0000008 ,1000 ); -usleep (3 *1000 ); +msuspend (3 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 ); -usleep (1 *1000 ); +msuspend (1 );//URB_FUNCTION_GET_STATUS_FROM_ENDPOINT skipped -usleep (4 *1000 ); +msuspend (4 );memcpy (buf,"\x32\x07\xfe\xf0\x29\xb9\x3a\xf0" ,0x0000008 ); ret =usb_interrupt_write (devh,0x00000002 , buf,0x0000008 ,1000 ); -usleep (3 *1000 ); +msuspend (3 ); ret =usb_interrupt_read (devh,0x00000081 , buf,0x0000008 ,1000 );if (buf)
extras/scsi_id/scsi_serial.c +4 -1
@@ -852,7 +852,10 @@ int scsi_get_serial(struct udev *udev,info (udev,"%s: cannot open %s: %s\n" , dev_scsi->kernel, devname,strerror (errno));if (errno !=EBUSY )break ; -usleep (500000 + (rand () %100000 ) ); + { +struct timespec duration = {0 ,500 *1000 *1000 + (rand () % (100 *1000 *1000 )) }; +nanosleep (&duration,NULL ); + } }if (fd <0 )return 1 ;
udev/udev-event.c +4 -1
@@ -518,7 +518,10 @@ static int rename_netif(struct udev_event *event) }dbg (event->udev,"wait for netif '%s' to become free, loop=%i\n" , event->name, (90 *20 ) - loop); -usleep (1000 *1000 /20 ); + { +struct timespec duration = {0 ,1000 *1000 *1000 /20 }; +nanosleep (&duration,NULL ); + } } } exit:
udev/udev-rules.c +4 -1
@@ -825,7 +825,10 @@ static int wait_for_file(struct udev_device *dev, const char *file, int timeout)return -2 ; }info (udev,"wait for '%s' for %i mseconds\n" , file,1000 /WAIT_LOOP_PER_SECOND ); -usleep (1000 *1000 /WAIT_LOOP_PER_SECOND ); + { +struct timespec duration = {0 ,1000 *1000 *1000 /WAIT_LOOP_PER_SECOND }; +nanosleep (&duration,NULL ); + } }info (udev,"waiting for '%s' failed\n" , file);return -1 ;
udev/udevadm-settle.c +4 -1
@@ -203,7 +203,10 @@ int udevadm_settle(struct udev *udev, int argc, char *argv[])if (is_timeout)break ; -usleep (1000 *1000 /LOOP_PER_SECOND ); + { +struct timespec duration = {0 ,1000 *1000 *1000 /LOOP_PER_SECOND }; +nanosleep (&duration,NULL ); + } }/* if we reached the timeout, print the list of remaining events */
Signature · 1 line
1.6.4.1