diff options
author | Vito Caputo <vcaputo@gnugeneration.com> | 2014-09-14 10:30:13 -0700 |
---|---|---|
committer | Vito Caputo <vcaputo@gnugeneration.com> | 2014-09-14 10:30:13 -0700 |
commit | 7bcde781975ddf4a5ce266a9214ba26f563ed063 (patch) | |
tree | 46d39444ab8c0e6137c50e5d4f87bad66ae3863d /libvmon/bitmap.h | |
parent | c9554e3a6a27802aea1206ec492727d616f23a0a (diff) |
Import of vwm3 changes from published source tgz
Major changes from vwm2 include:
- Introduction of integrated X client process and descendants
monitoring in the form of per-window composited overlays.
The rendering is done using the Composite, Damage, and Render
extensions. When the monitors are visible, vwm3 is a compositing
manager. When invisible, vwm3 continues to be an immediate-mode
classic X11 minimalist window manager.
Monitors are toggled via Mod1-;, Mod1-LeftArrow and Mod1-RightArrow
may be used to decrease and increase the sampling frequency,
respectively. Mod1-' clears the monitored tasks history for the
focused window when monitoring is visible.
This feature depends on the CONFIG_CHECKPOINT_RESTORE kernel
configuration option for the discovery of descendant processes.
Without this kernel option enabled, you'll only get a single process
monitored per window; the X client process as indicated by the
_NET_WM_PID atom of the window.
A library called libvmon has been introduced for the abstraction of
lightweight system and process statistics sampling.
Since vwm2 received backported features unrelated to monitoring or
compositing while vwm3 was developed, there isn't really much
difference between the two outside the monitoring context.
This isn't to say there isn't much activity in the code, the addition
of compositing and monitoring requires a substantial amount of code
relative to the scale of vwm[12].
Diffstat (limited to 'libvmon/bitmap.h')
-rw-r--r-- | libvmon/bitmap.h | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/libvmon/bitmap.h b/libvmon/bitmap.h new file mode 100644 index 0000000..eacb97d --- /dev/null +++ b/libvmon/bitmap.h @@ -0,0 +1,15 @@ +#ifndef _BITMAP_H +#define _BITMAP_H + +/* simple implementation of general-purpose bitmap macros taken from the comp.lang.c FAQ */ + +#include <limits.h> /* for CHAR_BIT */ + +#define BITMASK(b) (1 << ((b) % CHAR_BIT)) +#define BITSLOT(b) ((b) / CHAR_BIT) +#define BITSET(a, b) ((a)[BITSLOT(b)] |= BITMASK(b)) +#define BITCLEAR(a, b) ((a)[BITSLOT(b)] &= ~BITMASK(b)) +#define BITTEST(a, b) ((a)[BITSLOT(b)] & BITMASK(b)) +#define BITNSLOTS(nb) ((nb + CHAR_BIT - 1) / CHAR_BIT) + +#endif |