Fix for C++: 'namespace' renamed to 'name_space'

Renames the 'namespace' parameter to litmus_open_lock() forard
declaration in litmus.h to 'name_space'. This allows litmus.h
to be compiled by a C++ compiler. (Note: Using 'extern "C" {}'
does not work as an alternative solution.)
liblitmus/bin: Use inttypes.h macros for 64-bit integer printing

Fixed build on ARMv7

Signed-off-by: Roy Spliet <rspliet@mpi-sws.org>
liblitmus: Add Doxygen documentation for public APIs
Hook up doxygen as 'make doc'

Also adjust 'make clean' and .gitignore.
Use /proc/litmus/domains to set up affinity masks

This patch replaces the algorithm used to compute CPU affinity masks.
The old algorithm was fragile and would break on systems with multiple
levels of shared caches. (As found on some older Intel chips, and as
one would probably find on a system with hyper-threading enabled.) The
bug stems from fact that Linux enumerates consecutive CPUs in a way
that distributes them across the physical system, thereby reducing
contention resources (e.g., cache).

Cluster size no longer needs to be provided now that cluster/CPU
mappings are explicit in /proc/litmus/domains/.

This keeps the following migration functions, but marks them as
deprecated:
  - be_migrate_to_cluster()
  - cluster_to_first_cpu()
  - partition_to_cpu()

Although the deprecated interfaces are supported, the implementations
for these functions call the new be_migrate_to_domain() and
domain_to_first_cpu() functions.

[bbb: resolved several merge conflicts]
liblitmus/tests: Add PCP-DPCP interleaving test
Add test cases for exiting/mode-changing lock holders

This crashes old versions of the kernel. Kernel patches fixing the
various panics have been merged into the kernel staging tree.
Add missing default param initialization

Make sure new default parameters such as the deadline are taken care
of in the old task creation routines. This fixes a problem with
rt_launch.
Add support for the DFLP

Just add the ID and symbol.
Add add convenience wrapper and tests for the DFLP
Remove invalid CPU parameter test

The LITMUS^RT kernel was changed to no longer test for "invalid" CPU
paramters to allow reuse of the CPU parameter to denote virtual CPUs,
reservations, etc.

This patch removes the corresponding test.
Migration: Support systems with more than 32 CPUs.

This patch improves the cpu bit map parsing used to determine
CPU/cluster mapping. Namely, it supports clusters with more
than 32 CPUs. Prior to this patch, mapping would fail due to
unexpected commas in bitfield data read from /proc (groups
of 32 CPUs are separated by commas).

NOTE: Bug could still be encountered if NR_CPUS > 32.

New CPU limit: 4096.
FIX: Add S_IRUSR to open() for DFLP.

This patch adds S_IRUSR as the third parameter to open()
in the DFLP locking unit test.
Remove over-specification of task parameters from two tests

Don't override the defaults unless required.
Modernize rt_launch; remove internal API cruft

Switch rt_launch to use a more modern way to launch real-time tasks.
This makes rt_launch more flexible, makes it more similar to rtspin,
and also allows to let us get rid of a chunk of old, inflexible code
in liblitmus that wasn't really serving any useful purpose anymore.
Remove unneeded code from domain migration.

This patch removes unneeded code from be_migrate_thread_to_domain().
This function no longer needs to check the number of online
CPUs since the CPU mask for a given domain is now returned directly
from read_mapping().
Cosmetic: Fix error string to match fn name.

Patch cleans up an error message to match the
migrate-to-domain API.
read_mapping() breaks on NR_CPUS not div by 32

This patch fixes a bug in read_mapping(), which is used for
reading CPU and cluster (domain) mappings. read_mapping()
did not account for the case when NR_CPUS is not evenly
divisible by 32 (quite common when NR_CPUS < 32).