summaryrefslogtreecommitdiffstats
path: root/usr.sbin/apmd
diff options
context:
space:
mode:
authoruqs <uqs@FreeBSD.org>2010-05-14 14:26:56 +0000
committeruqs <uqs@FreeBSD.org>2010-05-14 14:26:56 +0000
commit53a94c42a63697476de25035db782ee1cbf5d517 (patch)
treed69b00dbdeeccd6914d51ec282d28e46cdf42833 /usr.sbin/apmd
parent7b5ac741d1b4d3eb30f4a0acc8ef3f5576aa8a1d (diff)
downloadFreeBSD-src-53a94c42a63697476de25035db782ee1cbf5d517.zip
FreeBSD-src-53a94c42a63697476de25035db782ee1cbf5d517.tar.gz
Sync apmd(8) with DragonflyBSD, bringing WARNS to 3
Reviewed by: ed (partial, long time ago)
Diffstat (limited to 'usr.sbin/apmd')
-rw-r--r--usr.sbin/apmd/Makefile2
-rw-r--r--usr.sbin/apmd/apmd.86
-rw-r--r--usr.sbin/apmd/apmd.c68
-rw-r--r--usr.sbin/apmd/apmd.h25
-rw-r--r--usr.sbin/apmd/apmdlex.l3
-rw-r--r--usr.sbin/apmd/contrib/pccardq.c4
6 files changed, 68 insertions, 40 deletions
diff --git a/usr.sbin/apmd/Makefile b/usr.sbin/apmd/Makefile
index 5ccf7e6..6f7e066 100644
--- a/usr.sbin/apmd/Makefile
+++ b/usr.sbin/apmd/Makefile
@@ -5,7 +5,7 @@ MAN= apmd.8
MANSUBDIR= /i386
SRCS= apmd.c apmdlex.l apmdparse.y y.tab.h
-WARNS?= 0
+WARNS?= 3
DPADD= ${LIBL}
LDADD= -ll
diff --git a/usr.sbin/apmd/apmd.8 b/usr.sbin/apmd/apmd.8
index f94ea5d..892826c 100644
--- a/usr.sbin/apmd/apmd.8
+++ b/usr.sbin/apmd/apmd.8
@@ -99,7 +99,9 @@ monitored events.
.Pp
If the
.Nm
-process receives a SIGHUP, it will reread its configuration file and
+process receives a
+.Dv SIGHUP ,
+it will reread its configuration file and
notify the APM device driver of any changes to its configuration.
.Pp
The
@@ -166,7 +168,7 @@ The apm_event keyword
.Bd -ragged -offset indent
.Ql apm_event
is the keyword which indicates the start of configuration for
-each events.
+each event.
.Ed
.It
APM events
diff --git a/usr.sbin/apmd/apmd.c b/usr.sbin/apmd/apmd.c
index 67351f8..e728c1d 100644
--- a/usr.sbin/apmd/apmd.c
+++ b/usr.sbin/apmd/apmd.c
@@ -52,8 +52,6 @@ static const char rcsid[] =
#include "apmd.h"
-extern int yyparse(void);
-
int debug_level = 0;
int verbose = 0;
int soft_power_state_change = 0;
@@ -116,14 +114,14 @@ event_cmd_exec_act(void *this)
switch ((pid = fork())) {
case -1:
- (void) warn("cannot fork");
+ warn("cannot fork");
goto out;
case 0:
/* child process */
signal(SIGHUP, SIG_DFL);
signal(SIGCHLD, SIG_DFL);
signal(SIGTERM, SIG_DFL);
- execl(_PATH_BSHELL, "sh", "-c", p->line, (char *)NULL);
+ execl(_PATH_BSHELL, "sh", "-c", p->line, NULL);
_exit(127);
default:
/* parent process */
@@ -170,7 +168,7 @@ struct event_cmd_op event_cmd_exec_ops = {
* reject commad
*/
int
-event_cmd_reject_act(void *this)
+event_cmd_reject_act(void *this __unused)
{
int rc = -1;
@@ -200,7 +198,7 @@ clone_event_cmd_list(struct event_cmd *p)
for ( ;p; p = p->next) {
assert(p->op->clone);
if ((q->next = p->op->clone(p)) == NULL)
- (void) err(1, "out of memory");
+ err(1, "out of memory");
q = q->next;
}
q->next = NULL;
@@ -238,7 +236,7 @@ register_battery_handlers(
struct battery_watch_event *we;
if ((we = malloc(sizeof(struct battery_watch_event))) == NULL)
- (void) err(1, "out of memory");
+ err(1, "out of memory");
we->next = battery_watch_list; /* starts at NULL */
battery_watch_list = we;
@@ -269,7 +267,7 @@ register_apm_event_handlers(
break;
p = events[n].cmdlist;
if ((q = clone_event_cmd_list(cmdlist)) == NULL)
- (void) err(1, "out of memory");
+ err(1, "out of memory");
if (p) {
while (p->next != NULL)
p = p->next;
@@ -315,7 +313,7 @@ exec_event_cmd(struct event_config *ev)
status = exec_run_cmd(ev->cmdlist);
if (status && ev->rejectable) {
syslog(LOG_ERR, "canceled");
- (void) event_cmd_reject_act(NULL);
+ event_cmd_reject_act(NULL);
}
return status;
}
@@ -332,7 +330,7 @@ read_config(void)
int i;
if ((yyin = fopen(apmd_configfile, "r")) == NULL) {
- (void) err(1, "cannot open config file");
+ err(1, "cannot open config file");
}
#ifdef DEBUG
@@ -340,7 +338,7 @@ read_config(void)
#endif
if (yyparse() != 0)
- (void) err(1, "cannot parse config file");
+ err(1, "cannot parse config file");
fclose(yyin);
@@ -349,14 +347,14 @@ read_config(void)
if (events[i].cmdlist) {
u_int event_type = i;
if (write(apmctl_fd, &event_type, sizeof(u_int)) == -1) {
- (void) err(1, "cannot enable event 0x%x", event_type);
+ err(1, "cannot enable event 0x%x", event_type);
}
}
}
}
void
-dump_config()
+dump_config(void)
{
int i;
struct battery_watch_event *q;
@@ -392,7 +390,7 @@ dump_config()
}
void
-destroy_config()
+destroy_config(void)
{
int i;
struct battery_watch_event *q;
@@ -402,7 +400,7 @@ destroy_config()
if (events[i].cmdlist) {
u_int event_type = i;
if (write(apmctl_fd, &event_type, sizeof(u_int)) == -1) {
- (void) err(1, "cannot disable event 0x%x", event_type);
+ err(1, "cannot disable event 0x%x", event_type);
}
}
}
@@ -423,7 +421,7 @@ destroy_config()
}
void
-restart()
+restart(void)
{
destroy_config();
read_config();
@@ -435,7 +433,7 @@ restart()
* write pid file
*/
static void
-write_pid()
+write_pid(void)
{
FILE *fp = fopen(apmd_pidfile, "w");
@@ -454,11 +452,11 @@ void
enque_signal(int sig)
{
if (write(signal_fd[1], &sig, sizeof sig) != sizeof sig)
- (void) err(1, "cannot process signal.");
+ err(1, "cannot process signal.");
}
void
-wait_child()
+wait_child(void)
{
int status;
while (waitpid(-1, &status, WNOHANG) > 0)
@@ -486,7 +484,7 @@ proc_signal(int fd)
wait_child();
break;
default:
- (void) warn("unexpected signal(%d) received.", sig);
+ warn("unexpected signal(%d) received.", sig);
break;
}
}
@@ -515,7 +513,7 @@ proc_apmevent(int fd)
BATTERY_DISCHARGING)
void
-check_battery()
+check_battery(void)
{
static int first_time=1, last_state;
@@ -530,7 +528,7 @@ check_battery()
if (first_time) {
if ( ioctl(apmnorm_fd, APMIO_GETINFO, &pw_info) < 0)
- (void) err(1, "cannot check battery state.");
+ err(1, "cannot check battery state.");
/*
* This next statement isn't entirely true. The spec does not tie AC
* line state to battery charging or not, but this is a bit lazier to do.
@@ -545,7 +543,7 @@ check_battery()
* of smoothing or correction?
*/
if ( ioctl(apmnorm_fd, APMIO_GETINFO, &pw_info) < 0)
- (void) err(1, "cannot check battery state.");
+ err(1, "cannot check battery state.");
/*
* If we're not in the state now that we were in last time,
@@ -565,7 +563,7 @@ check_battery()
if (p -> direction == AC_POWER_STATE &&
!(p -> done) &&
((p -> type == BATTERY_PERCENT &&
- p -> level == pw_info.ai_batt_life) ||
+ p -> level == (int)pw_info.ai_batt_life) ||
(p -> type == BATTERY_MINUTES &&
p -> level == (pw_info.ai_batt_time / 60)))) {
p -> done++;
@@ -621,7 +619,7 @@ event_loop(void)
sigprocmask(SIG_SETMASK, &osigmask, NULL);
if ((res=select(fdmax + 1, &rfds, 0, 0, &to)) < 0) {
if (errno != EINTR)
- (void) err(1, "select");
+ err(1, "select");
}
sigprocmask(SIG_SETMASK, &sigmask, NULL);
@@ -666,7 +664,7 @@ main(int ac, char* av[])
verbose = 1;
break;
default:
- (void) err(1, "unknown option `%c'", ch);
+ err(1, "unknown option `%c'", ch);
}
}
@@ -674,7 +672,7 @@ main(int ac, char* av[])
daemon(0, 0);
#ifdef NICE_INCR
- (void) nice(NICE_INCR);
+ nice(NICE_INCR);
#endif
if (!daemonize)
@@ -686,29 +684,29 @@ main(int ac, char* av[])
syslog(LOG_NOTICE, "start");
if (pipe(signal_fd) < 0)
- (void) err(1, "pipe");
+ err(1, "pipe");
if (fcntl(signal_fd[0], F_SETFL, O_NONBLOCK) < 0)
- (void) err(1, "fcntl");
+ err(1, "fcntl");
if ((apmnorm_fd = open(APM_NORM_DEVICEFILE, O_RDWR)) == -1) {
- (void) err(1, "cannot open device file `%s'", APM_NORM_DEVICEFILE);
+ err(1, "cannot open device file `%s'", APM_NORM_DEVICEFILE);
}
if (fcntl(apmnorm_fd, F_SETFD, 1) == -1) {
- (void) err(1, "cannot set close-on-exec flag for device file '%s'", APM_NORM_DEVICEFILE);
+ err(1, "cannot set close-on-exec flag for device file '%s'", APM_NORM_DEVICEFILE);
}
if ((apmctl_fd = open(APM_CTL_DEVICEFILE, O_RDWR)) == -1) {
- (void) err(1, "cannot open device file `%s'", APM_CTL_DEVICEFILE);
+ err(1, "cannot open device file `%s'", APM_CTL_DEVICEFILE);
}
if (fcntl(apmctl_fd, F_SETFD, 1) == -1) {
- (void) err(1, "cannot set close-on-exec flag for device file '%s'", APM_CTL_DEVICEFILE);
- }
+ err(1, "cannot set close-on-exec flag for device file '%s'", APM_CTL_DEVICEFILE);
+ }
restart();
write_pid();
event_loop();
- exit(EXIT_SUCCESS);
+ exit(EXIT_SUCCESS);
}
diff --git a/usr.sbin/apmd/apmd.h b/usr.sbin/apmd/apmd.h
index 1be5afa..d379feb 100644
--- a/usr.sbin/apmd/apmd.h
+++ b/usr.sbin/apmd/apmd.h
@@ -106,3 +106,28 @@ extern int register_apm_event_handlers(
bitstr_t bit_decl(evlist, EVENT_MAX),
struct event_cmd *cmdlist);
extern void free_event_cmd_list(struct event_cmd *p);
+
+extern int yyparse(void);
+
+void yyerror(const char *);
+int yylex(void);
+
+struct event_cmd *event_cmd_default_clone(void *);
+int event_cmd_exec_act(void *);
+void event_cmd_exec_dump(void *, FILE *);
+struct event_cmd *event_cmd_exec_clone(void *);
+void event_cmd_exec_free(void *);
+int event_cmd_reject_act(void *);
+struct event_cmd *clone_event_cmd_list(struct event_cmd *);
+int exec_run_cmd(struct event_cmd *);
+int exec_event_cmd(struct event_config *);
+void read_config(void);
+void dump_config(void);
+void destroy_config(void);
+void restart(void);
+void enque_signal(int);
+void wait_child(void);
+int proc_signal(int);
+void proc_apmevent(int);
+void check_battery(void);
+void event_loop(void);
diff --git a/usr.sbin/apmd/apmdlex.l b/usr.sbin/apmd/apmdlex.l
index 0e5cff3..0f95574 100644
--- a/usr.sbin/apmd/apmdlex.l
+++ b/usr.sbin/apmd/apmdlex.l
@@ -36,6 +36,9 @@
#include "apmd.h"
#include "y.tab.h"
+/* We don't need it, avoid the warning. */
+#define YY_NO_UNPUT
+
int lineno;
int first_time;
%}
diff --git a/usr.sbin/apmd/contrib/pccardq.c b/usr.sbin/apmd/contrib/pccardq.c
index e619770..aebd1d5 100644
--- a/usr.sbin/apmd/contrib/pccardq.c
+++ b/usr.sbin/apmd/contrib/pccardq.c
@@ -20,7 +20,7 @@ const char *tmp_dir = "/tmp";
unsigned slot_map = ~0;
void
-usage()
+usage(void)
{
fprintf(stderr, "usage: %s [-a] [-n] [-s slot]\n", prog);
}
@@ -223,7 +223,7 @@ get_slot_info(int so, int slot, char **manuf, char **version, char
return rc;
}
-const char *
+const char *
strstate(int state)
{
switch (state) {
OpenPOWER on IntegriCloud