summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--libopie/odevice.cpp8
-rw-r--r--libopie/odevice.h2
2 files changed, 1 insertions, 9 deletions
diff --git a/libopie/odevice.cpp b/libopie/odevice.cpp
index 6572fb6..1da8862 100644
--- a/libopie/odevice.cpp
+++ b/libopie/odevice.cpp
@@ -122,43 +122,37 @@ void ODevice::init ( )
ODevice::~ODevice ( )
{
delete d;
}
//#include <linux/apm_bios.h>
//#define APM_IOC_SUSPEND _IO('A',2)
#define APM_IOC_SUSPEND (( 0<<30 ) | ( 'A'<<8 ) | ( 2 ) | ( 0<<16 ))
-
-void ODevice::tstp_sighandler ( int )
-{
-}
-
-
bool ODevice::suspend ( )
{
if ( d-> m_model == OMODEL_Unknown ) // better don't suspend in qvfb / on unkown devices
return false;
int fd;
bool res = false;
if ((( fd = ::open ( "/dev/apm_bios", O_RDWR )) >= 0 ) ||
(( fd = ::open ( "/dev/misc/apm_bios",O_RDWR )) >= 0 )) {
struct timeval tvs, tvn;
- ::signal ( SIGTSTP, tstp_sighandler ); // we don't want to be stopped
+ ::signal ( SIGTSTP, SIG_IGN ); // we don't want to be stopped
::gettimeofday ( &tvs, 0 );
res = ( ::ioctl ( fd, APM_IOC_SUSPEND ) == 0 ); // tell the kernel to "start" suspending
::close ( fd );
if ( res ) {
::kill ( -::getpid ( ), SIGTSTP ); // stop everthing in out process group
do { // wait at most 1.5 sec: either suspend didn't work or the device resumed
::usleep ( 200 * 1000 );
::gettimeofday ( &tvn, 0 );
} while ((( tvn. tv_sec - tvs. tv_sec ) * 1000 + ( tvn. tv_usec - tvs. tv_usec ) / 1000 ) < 1500 );
diff --git a/libopie/odevice.h b/libopie/odevice.h
index cda504a..5009b91 100644
--- a/libopie/odevice.h
+++ b/libopie/odevice.h
@@ -93,19 +93,17 @@ public:
virtual bool setLed ( uint which, OLedState st );
virtual ~ODevice ( );
protected:
ODevice ( );
virtual void init ( );
ODeviceData *d;
private:
ODevice ( const ODevice & );
-
- static void tstp_sighandler ( int );
};
#endif