# TODO

- pstring tests.
- add /proc/cmdline?
  - could create a kernel category?:
    kernel:
      version: 
      headers version: 3.19.8
      bits: 64
      cmdline: ...

- XXX: Sort *all* output values.
  - sort network interfaces.
  - Sort output of show_mounts().
  - add tests to ensure they remain sorted.

- "--path" ? which shows:

	path:
	  _POSIX_PATH_MAX: 256 (absolute)
	  PATH_MAX: 4096 (relative)
	  MAXPATHLEN: 4096
- LSM
  - add details for SMACK and TOMOYO (available in Centos 7).
  - move into a new --security section?
- --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.
- --cpu:
  - change 'number' to 'index' and make it zero-based for consistency
    with affinity list
  - XXX: bump 'format-version' !!
- Add YAML output format?
- 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.
- 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 process arguments to show_proc_branch()?
- 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.
