[PATCH] acpid: add config file and map file

Denys Vlasenko vda.linux at googlemail.com
Sun Sep 26 10:40:49 UTC 2010


On Sunday 26 September 2010 11:43, Souf Oued wrote:
> Le 25/09/2010 23:57, Denys Vlasenko a écrit :
> > On Monday 20 September 2010 13:27, Souf Oued wrote:
> >    
> >> Le 20/09/2010 13:00, Souf Oued a écrit :
> >> This patch adds these three options to acpid:
> >> 1/ acpid -p pidfile
> >> 2/ acpid -a /etc/acpid.conf
> >> acpid.conf syntax is like this:
> >> KEY ACTION
> >> PWRF    /etc/acpi/power_btn.sh
> >> BAT0    /etc/acpi/battery.sh
> >> ...
> >>
> >> 3/ acpid -M /etc/acpi.map
> >> acpi.map syntax is like this:
> >> #s_type    n_type(hex)    s_code            n_code     value    description
> >> EV_KEY    0x01                KEY_MUTE     113           1
> >> button/mute MUTE 00000080 00000000
> >> EV_KEY    0x01                KEY_POWER   116           1
> >> button/power PWRF 00000080 00000000
> >> ...
> >>
> >> The purpose of these files is to avoid using hard-coded values in acpid
> >> and no longer depend on linux/input.h.
> >> Obviously, if there is not one of these files, acpid ensures a minimum
> >> service, this makes it flexible and
> >> configurable for different needs
> >>      
> > Thanks.
> >
> > function                                             old     new   delta
> > acpid_main                                           434    1161    +727
> > find_action                                            -     204    +204
> > f_evt_tab                                              -      48     +48
> > packed_usage                                       27724   27750     +26
> > f_act_tab                                              -      16     +16
> > process_event                                        126       -    -126
> > ------------------------------------------------------------------------------
> > (add/remove: 3/1 grow/shrink: 2/0 up/down: 1021/-126)         Total: 895 bytes
> >     text    data     bss     dec     hex filename
> >   876755     936   17196  894887   da7a7 busybox_old
> >   877731    1000   17196  895927   dabb7 busybox_unstripped
> >
> > The growthc in data comes from
> >
> > static struct acpi_event f_evt_tab[] = {
> >          {"EV_KEY", 0x01, "KEY_POWER", 116, 1, "button/power PWRF 00000080 00000000"},
> >          {"EV_KEY", 0x01, "KEY_POWER", 116, 1, "button/power PWRB 00000080 00000000"},
> > };
> >
> > static struct acpi_action f_act_tab[] = {
> >          {"PWRF", "PWRF/00000080"},
> >          {"LID0", "LID/00000080"},
> > };
> >
> > Can these objects be made const?
> >
> >
> >          char dev_event[sizeof("/dev/input/event") + sizeof(int)*3];
> > ...
> >          getopt32(argv, "c:e:l:dp:a:M:" IF_FEATURE_ACPID_COMPAT("g:m:s:S:v"),
> >                  &opt_dir,&opt_input,&opt_logfile,&opt_pidfile,&opt_action,&opt_map
> > ...
> >                  sprintf(dev_event, opt_input, (option_mask32&  OPT_e) ? : nfd);
> >
> > Looks like dev_event[] may be easily overflowed with -e LONG_STRING.
> >
> >
> >    
> Ok, I modified, I use xasprintf instead of char 
> dev_event[sizeof("/dev/input/event") + sizeof(int)*3]


cc1: warnings being treated as errors
util-linux/acpid.c: In function 'parse_conf_file':
util-linux/acpid.c:149: warning: assignment discards qualifiers from pointer target type
util-linux/acpid.c: In function 'parse_map_file':
util-linux/acpid.c:174: warning: assignment discards qualifiers from pointer target type
make[1]: *** [util-linux/acpid.o] Error 1


Fixed in and pushed to git.

-- 
vda


More information about the busybox mailing list