# TODO

- --memory: show physical RAM:
	bytes = (_SC_PHYS_PAGES * _SC_PAGESIZE)
- FreeBSD:
  - MAC: mac_get_file(3), mac(3,4)
- --stat:
  - move current stat details into a stat/self section.
  - add stat details for stat/root.
- move "linux security module" into a new --security section?
- --cpu:
  - change 'number' to 'index' and make it zero-based for consistency
    with affinity list
  - XXX: bump 'format-version' !!
- Tests:
  - check man page options vs. 'procenv --help' to look for
    inconsistencies.
  - --indent=
  - --indent-char=
  - --crumb-separator=
  - --separator=
- XXX: run show_compiler_details *before* build to help diagnose
  failures.
- Add YAML output format?
- Sort *all* output values.
- Introduce "value()" that can take a bare value. This will allow for
  example mount options to be displayed in an output container.
- Non-root queryable hdd attributes?
- Hurd:
  - establish how to determine process ancestry.
- Create a versioned XML schema.
- Restructure code into separate files.
- Use weak symbols/VPATH to avoid ifdefs!
- Display numeric values for all symbols?:
	- limits (RLIMIT_AS)
	- clocks (CLOCK_REALTIME)
	- pathconf (_PC_LINK_MAX)
	- sysconf (ARG_MAX)
  XXX: must be consistent with existing signals (SIGHUP, etc)!!
- BUG: all numbers are displayed as strings in json output.
- Add in ability to specify a platform restriction for certain details by modifying
  section_open() and container_open() to accept string pairs like:

  container_open (const char *name, int count, ...);
                  |
                  V
  container_open (const char *name, 2, "restriction", "linux");
- Networking details
  - IPv6 scope_id.
  - gateway.
- sort network interfaces.
- add to show_sizeof():
  - intN_t group   
- I18N (gettext)
- Don't hide any option that a particular O/S / arch doesn't
  have: show the option with a value of `UNKNOWN_STR'.
- Rework output code to use a cleaner stack-based approach.
- Uptime (using utmp)?
- Text/data/bss/stack details (end(3), sbrk(2))
- mincore(2)?
- Add program arguments to show_misc().
- Add process arguments to show_proc_branch()?
- Sort output of show_mounts().
- Use CPUID instruction to detect XEN environments?
  (http://libcpuid.sourceforge.net/, http://www.etallen.com/cpuid.html)
- Use dlopen to probe for apparmor/selinux. This avoids having to depend
  on the existence of the appropriate libs, but still allows security
  context information to be queried on systems that provide them.
- Add in permissions for /dev/tty and fds 0-2 if they refer to devices.
- ELF details.
