[systemd-devel] [RFC 06/12] gfx: add keyboard layer
Lennart Poettering
lennart at poettering.net
Wed Nov 27 14:17:20 PST 2013
On Wed, 27.11.13 19:48, David Herrmann (dh.herrmann at gmail.com) wrote:
> +
> +enum {
> + SD_GFX__LED_NUML,
> + SD_GFX__LED_CAPSL,
> + SD_GFX__LED_SCROLLL,
> + SD_GFX__LED_COUNT,
> +};
Double underscores?
> +
> +struct sd_gfx_kbd {
> + char *name;
> + struct libevdev *evdev;
> + int fd;
> + struct xkb_state *state;
> + sd_event *ev;
> + sd_event_source *fd_source;
> + sd_event_source *timer;
> + sd_gfx_kbd_event_fn event_fn;
> + void *data;
> + void *fn_data;
> +
> + unsigned int delay;
> + unsigned int rate;
> +
> + unsigned int sym_count;
> + sd_gfx_kbd_event event;
> + sd_gfx_kbd_event repeat;
> +
> + xkb_mod_index_t xkb_mods[SD_GFX__MOD_COUNT];
> + xkb_led_index_t xkb_leds[SD_GFX__LED_COUNT];
> +
> + unsigned int awake : 1;
> + unsigned int need_sync : 1;
> + unsigned int repeating : 1;
If these are bools, then make them bools! C99 bools (i.e. the type
"bool" from stdbool.h) are awesome for bit fields! [ Please use C99 bools
everywhere in internal code, and "int" as bool type for public APIs,
since that's what pre-C99 code usually did, despite the stupidity this
results in when people use bit fields ]
> + if (r < 0) {
> + if (r == -EACCES)
> + log_debug("kbd %s: EACCES on led-update", kbd->name);
> + else
> + log_error("kbd %s: cannot update leds: %d",
> + kbd->name, r);
Please do not log from libraries. (Well, except when that's the primary
purpose of your function, or when you do so on LOG_DEBUG level, since
that is not visible normally anyway.)
Lennart
--
Lennart Poettering, Red Hat
More information about the systemd-devel
mailing list