apmd.h revision 48730
148730Siwasaki/*- 248730Siwasaki * APM (Advanced Power Management) Event Dispatcher 348730Siwasaki * 448730Siwasaki * Copyright (c) 1999 Mitsuru IWASAKI <iwasaki@FreeBSD.org> 548730Siwasaki * Copyright (c) 1999 KOIE Hidetaka <koie@suri.co.jp> 648730Siwasaki * All rights reserved. 748730Siwasaki * 848730Siwasaki * Redistribution and use in source and binary forms, with or without 948730Siwasaki * modification, are permitted provided that the following conditions 1048730Siwasaki * are met: 1148730Siwasaki * 1. Redistributions of source code must retain the above copyright 1248730Siwasaki * notice, this list of conditions and the following disclaimer. 1348730Siwasaki * 2. Redistributions in binary form must reproduce the above copyright 1448730Siwasaki * notice, this list of conditions and the following disclaimer in the 1548730Siwasaki * documentation and/or other materials provided with the distribution. 1648730Siwasaki * 1748730Siwasaki * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 1848730Siwasaki * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 1948730Siwasaki * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 2048730Siwasaki * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 2148730Siwasaki * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 2248730Siwasaki * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 2348730Siwasaki * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 2448730Siwasaki * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 2548730Siwasaki * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 2648730Siwasaki * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 2748730Siwasaki * SUCH DAMAGE. 2848730Siwasaki * 2948730Siwasaki * $Id: apmd.h,v 1.1.3.8 1999/06/18 04:07:05 koie Exp $ 3048730Siwasaki */ 3148730Siwasaki 3248730Siwasaki#define APMD_CONFIGFILE "/etc/apmd.conf" 3348730Siwasaki#define APM_CTL_DEVICEFILE "/dev/apmctl" 3448730Siwasaki#define APMD_PIDFILE "/var/run/apmd.pid" 3548730Siwasaki#define NICE_INCR -20 3648730Siwasaki 3748730Siwasakienum { 3848730Siwasaki EVENT_NOEVENT, 3948730Siwasaki EVENT_STANDBYREQ, 4048730Siwasaki EVENT_SUSPENDREQ, 4148730Siwasaki EVENT_NORMRESUME, 4248730Siwasaki EVENT_CRITRESUME, 4348730Siwasaki EVENT_BATTERYLOW, 4448730Siwasaki EVENT_POWERSTATECHANGE, 4548730Siwasaki EVENT_UPDATETIME, 4648730Siwasaki EVENT_CRITSUSPEND, 4748730Siwasaki EVENT_USERSTANDBYREQ, 4848730Siwasaki EVENT_USERSUSPENDREQ, 4948730Siwasaki EVENT_STANDBYRESUME, 5048730Siwasaki EVENT_CAPABILITIESCHANGE, 5148730Siwasaki EVENT_MAX 5248730Siwasaki}; 5348730Siwasaki 5448730Siwasakistruct event_cmd_op { 5548730Siwasaki int (* act) __P((void *this)); 5648730Siwasaki void (* dump) __P((void *this, FILE * fp)); 5748730Siwasaki struct event_cmd * (* clone) __P((void *this)); 5848730Siwasaki void (* free) __P((void *this)); 5948730Siwasaki}; 6048730Siwasakistruct event_cmd { 6148730Siwasaki struct event_cmd * next; 6248730Siwasaki size_t len; 6348730Siwasaki char * name; 6448730Siwasaki struct event_cmd_op * op; 6548730Siwasaki}; 6648730Siwasakistruct event_cmd_exec { 6748730Siwasaki struct event_cmd evcmd; 6848730Siwasaki char * line; /* Command line */ 6948730Siwasaki}; 7048730Siwasakistruct event_cmd_reject { 7148730Siwasaki struct event_cmd evcmd; 7248730Siwasaki}; 7348730Siwasaki 7448730Siwasakistruct event_config { 7548730Siwasaki const char *name; 7648730Siwasaki struct event_cmd * cmdlist; 7748730Siwasaki int rejectable; 7848730Siwasaki}; 7948730Siwasaki 8048730Siwasakiextern struct event_cmd_op event_cmd_exec_ops; 8148730Siwasakiextern struct event_cmd_op event_cmd_reject_ops; 8248730Siwasakiextern struct event_config events[EVENT_MAX]; 8348730Siwasaki 8448730Siwasakiextern int register_apm_event_handlers( 8548730Siwasaki bitstr_t bit_decl(evlist, EVENT_MAX), 8648730Siwasaki struct event_cmd *cmdlist); 8748730Siwasakiextern void free_event_cmd_list(struct event_cmd *p); 88