Use more explicit and less confusing error/warning messages.

Change-Id: I6f2e757cb328905d95d39035dae0c8a8cf5d3d77
Signed-off-by: Cédric VINCENT <cedric.vincent@st.com>
Print a detailed help on "-h" + exit with success on "-V" and "-h".

Change-Id: Ic4d9d1bd50677b15a50469425d7c52736985c636
Change the way the verbose level is specified + introduce a quiet mode.

Change-Id: Ic47c92c4837f84b677bd1e9665f2a29f99ac194b
Fix the insertion of an item in the list of host/guest bindings.

The insertion of an unordered item should be equivalent to an
insertion at the beginning of the list: this is less error-prone.
That way, only the insertion of the first item is a special case.

Change-Id: I05f8496867f88ad7c136383182dd3513289259d4
Signed-off-by: Cédric VINCENT <cedric.vincent@st.com>
Return correct errno if a non-final path component isn't a directory/symlink.

The error is "No such file or directory" if this component doesn't
exist, otherwise the error is "Not a directory".  This sanity check is
bypassed if the canonicalization is made in the name of PRoot itself
(pid == 0) since this would return a spurious error during the
creation of "deep" guest binding paths.

Signed-off-by: Cédric VINCENT <cedric.vincent@st.com>
Add initial support to emulate some links in "/proc" correctly.

Currently, only the following links are correctly emulated:

    * /proc/self
    * /proc/<PID>/fd/<FD>

where <PID> is a process monitored by PRoot and <FD> is a file descriptor.
Support for /proc/<PID>/(exe|cwd|root) is almost there.

Change-Id: I9ebc30c58be0df0376b52061c408808b6ede16b3
Signed-off-by: Cédric VINCENT <cedric.vincent@st.com>
Update the roadmap.
Minor changes in two tests.

1. Fedora-17 seems to be shipped without "/bin" (new LSB?)

2. check if a FD created by "exec" (shell built-in) is readable.
Update the list of known syscalls (Linux 3.4.1) for all architectures.

Change-Id: I37a41eeda02dab82d11b483c681179ccb5355373
Raise compiler optimization level + fix "may be used uninitialized" warnings.

One of these warnings was an actual problem.

Change-Id: I606fcdd2c13a847287c78a321ed43f72df20f67e
A traced process is now started only once PRoot knows its parent.

This feature is not used yet, however it is required by some plugins
and to support things like "tracee->(exe|cwd|root)" since these are
inherited from the parent process.

Change-Id: Ice7b27845b99aaadbb4388282a4641e3843015b3
Declare some read-only string parameters as "const char *".

Change-Id: I0835ab38ca8f6c9dc19aa1bcc1c7c1be9e90bad7
Add support for file-system information inheritance + activate /proc/*/exe.

Currently only dereferenced /proc/*/exe emulation is supported, more
to come.

Change-Id: I897a3a966d1f52507a6d74ee0f1263dbaf5d0e54
Add specific "/proc" support to the detranslation mechanism.

This support is based on readlink_proc(), which was moved into a dedicated
module.  Also, there was a bug in this function: SUBSTITUTE() has to use
known_tracee->name instead of tracee->name.

Change-Id: I549478c973bda12419e91ba59b936859de97c54f
Fix the tracee_info allocator: realloc() can't be used anymore here.

The problem was realloc() can't be use to anymore to allocate new
tracee_info because pointers to these structures can live across a
call to realloc().  For instance:

    1. parent_tracee = get_tracee_info(parent_pid, true)
    2. child_tracee = get_tracee_info(child_pid, true)  /!\ reallocation
    3. parent_tracee still points to the old memory area

Now, a chained pool allocation mechanism is used.

Change-Id: I7ca94baa29991651dd78a850df991da93b2268b3