| SYSMON_PSWITCH(9) | Kernel Developer's Manual | SYSMON_PSWITCH(9) | 
NAME
 sysmon_pswitch — framework for power switches
SYNOPSIS
 #include <dev/sysmon/sysmonvar.h>
int
sysmon_pswitch_register(struct sysmon_pswitch *smpsw);
void
sysmon_pswitch_unregister(struct sysmon_pswitch *smpsw);
void
sysmon_pswitch_event(struct sysmon_pswitch *smpsw, int event);
 
DESCRIPTION
 The machine-independent 
sysmon_pswitch provides a framework for power management. The interface has been largely superceded by the 
pmf(9) framework, but 
sysmon_pswitch is still used to manage power switches as well as related mechanical adapters and buttons. These are encapsulated in the following structure:
struct sysmon_pswitch { 
	const char *smpsw_name;		/* power switch name */ 
	int smpsw_type;			/* power switch type */ 
 
	LIST_ENTRY(sysmon_pswitch) smpsw_list; 
};
Unsurprisingly, smpsw_name specifies the name of the power switch and smpsw_type defines the type of it. The following types are defined:
- 
PSWITCH_TYPE_POWER
- 
- 
PSWITCH_TYPE_SLEEP
- 
- 
PSWITCH_TYPE_LID
- 
- 
PSWITCH_TYPE_RESET
- 
- 
PSWITCH_TYPE_ACADAPTER
- 
- 
PSWITCH_TYPE_HOTKEY
- 
If the type is PSWITCH_TYPE_HOTKEY, there are few predefined names that can be used for smpsw_name:
- 
PSWITCH_HK_DISPLAY_CYCLE
- 
display-cycle
- 
PSWITCH_HK_LOCK_SCREEN
- 
lock-screen
- 
PSWITCH_HK_BATTERY_INFO
- 
battery-info
- 
PSWITCH_HK_EJECT_BUTTON
- 
eject-button
- 
PSWITCH_HK_ZOOM_BUTTON
- 
zoom-button
- 
PSWITCH_HK_VENDOR_BUTTON
- 
vendor-button
Once a power switch event has been proceeded, sysmon_pswitch will inform the user space powerd(8), which will possibly execute a script matching the type of the power switch.
 
FUNCTIONS
 After the 
sysmon_pswitch structure has been initialized, a new power switch device can be registered by using 
sysmon_pswitch_register(). The device can be detached from the framework by 
sysmon_pswitch_unregister().
The sysmon_pswitch_event() is used to signal a new power switch event. There are two possibilities for the value of event:
- 
PSWITCH_EVENT_PRESSED
- 
A button has been pressed, the lid has been closed, the AC adapter is off, etc.
- 
PSWITCH_EVENT_RELEASED
- 
A button has been released, the lid is open, the AC adapter is on, etc.
The corresponding events in powerd(8) are pressed and released.
 
AUTHORS
 Jason R. Thorpe <thorpej@NetBSD.org>