Browse Source

Fix NetBSD APM support

NetBSD APM is supported other than i386 too, emulate API,
so change to detect with MI support header.
Additionally, catch up support codes to others.

Signed-off-by: OBATA Akio <obache@wizdas.com>
pull/9/head
OBATA Akio 1 year ago
parent
commit
f8424834b6
4 changed files with 55 additions and 6 deletions
  1. +1
    -0
      CMakeLists.txt
  2. +4
    -0
      ConfigureChecks.cmake
  3. +6
    -0
      config.h.cmake
  4. +44
    -6
      klaptopdaemon/portable.cpp

+ 1
- 0
CMakeLists.txt View File

@@ -24,6 +24,7 @@ set( VERSION R14.1.0 )

include( FindPkgConfig )
include( CheckIncludeFile )
include( CheckIncludeFiles )
include( CheckLibraryExists )
include( CheckSymbolExists )
include( CheckFunctionExists )


+ 4
- 0
ConfigureChecks.cmake View File

@@ -80,6 +80,10 @@ if( BUILD_KLAPTOPDAEMON )
tde_message_fatal( "stdint.h header is required, but was not found on your system" )
endif( NOT HAVE_STDINT_H )

# NetBSD apm support
check_include_files( "unistd.h;machine/apm_bios.h" HAVE_MACHINE_APM_BIOS_H )
check_include_files( "unistd.h;dev/apm/apmio.h" HAVE_DEV_APM_APMIO_H )

# xtest
pkg_search_module( XTEST xtst )
if( XTEST_FOUND )


+ 6
- 0
config.h.cmake View File

@@ -60,6 +60,12 @@
#if !defined( HAVE_STDINT_H )
#cmakedefine HAVE_STDINT_H
#endif // HAVE_STDINT_H
#if !defined( HAVE_MACHINE_APM_BIOS_H )
#cmakedefine HAVE_MACHINE_APM_BIOS_H
#endif // HAVE_MACHIE_APM_BIOS_H
#if !defined( HAVE_DEV_APM_APMIO_H )
#cmakedefine HAVE_DEV_APM_APMIO_H
#endif // HAVE_DEV_APM_APMIO_H

#cmakedefine HAVE_XSCREENSAVER
#cmakedefine HAVE_DPMS


+ 44
- 6
klaptopdaemon/portable.cpp View File

@@ -39,7 +39,7 @@
//
// Linux (#if __linux__)
// FreeBSD (#elif __FreeBSD__)
// NetBSD (#elif __NetBSD_APM__)
// NetBSD (#elif __NetBSD__)
// generic nothing (#else)
//
//
@@ -2429,7 +2429,7 @@ laptop_portable::software_suspend_set_mask(bool /*hibernate*/)
}


#elif defined(__NetBSD_APM__)
#elif defined(__NetBSD__) && defined(HAVE_DEV_APM_APMIO_H)

#include <errno.h>
#include <fcntl.h>
@@ -2437,11 +2437,16 @@ laptop_portable::software_suspend_set_mask(bool /*hibernate*/)
#include <stdlib.h>
#include <sys/ioctl.h>
#include <sys/stat.h>
#include <machine/apmvar.h>
#include <iostream.h>
#include <dev/apm/apmbios.h>
#include <dev/apm/apmio.h>
#include <iostream>
#include <tqpushbutton.h>
#include <tqobject.h>
#include <kactivelabel.h>
#include <kprocess.h>

//
// klaptopdeamon interface to NetBSD 1.5 apm.
// Klaptopdeamon interface to NetBSD 1.5 apm.
// Scott Presnell, srp@zgi.com, srp@tworoads.net
// Fri Jun 29 17:21:25 PDT 2001
// Tested on Dell I4K running NetBSD 1.5R
@@ -2463,6 +2468,7 @@ laptop_portable::has_power_management()
}

struct apm_power_info info;
memset(&info, 0, sizeof(info));
ret=ioctl(fd, APM_IOC_GETPOWER, &info);
::close(fd);

@@ -2490,6 +2496,7 @@ int laptop_portable::has_battery_time()
return 0;

struct apm_power_info info;
memset(&info, 0, sizeof(info));
ret=ioctl(fd, APM_IOC_GETPOWER, &info);
::close(fd);

@@ -2660,6 +2667,15 @@ laptop_portable::apm_set_mask(bool , bool )
}


//
// adds extra widgets to the battery panel
//
void
laptop_portable::extra_config(TQWidget *parent, TDEConfig *config, TQVBoxLayout *layout)
{
}


//
// return current battery state
//
@@ -2674,6 +2690,7 @@ struct power_result laptop_portable::poll_battery_state()
goto bad;

struct apm_power_info info;
memset(&info, 0, sizeof(info));
ret=ioctl(fd, APM_IOC_GETPOWER, &info);
::close(fd);
@@ -2736,7 +2753,16 @@ laptop_portable::get_brightness()
}

bool
laptop_portable::get_system_throttling(bool, int &current, TQStringList &s) // do something to help get system throttling data from places like ACPI
laptop_portable::get_system_performance(bool, int &current, TQStringList &s, bool *&) // do something to help get system profiles from places like ACPI
{
// INSERT HERE
current = 0;
s.clear();
return(0); // if no profiles are available
}

bool
laptop_portable::get_system_throttling(bool, int &current, TQStringList &s, bool *&) // do something to help get system throttling data from places like ACPI
{
// INSERT HERE
current = 0;
@@ -2794,6 +2820,18 @@ laptop_portable::get_battery_status(int &num_batteries, TQStringList &names, TQS
values.append(s);
}

bool
laptop_portable::has_software_suspend(int /*type*/)
{
return false; // (::has_software_suspend(type));
}

void
laptop_portable::software_suspend_set_mask(bool hibernate)
{
// software_suspend_is_preferred =hibernate;
}

#else

/*


Loading…
Cancel
Save