Include zero-copy logging kernel module
This is basically borrowed from the Tizen TV, where the kernel module
was called vlog. Hence the attribution in the MODULE_AUTHOR field. In
our version, the module is called zlogger instead. There is also a
number of changes from the original:
- we support direct writing to the module (similar to the stdout
redirection support in the logger module), which includes the write
operation, various ioctl commands and the test vlog_stdout program,
- the thread block table (g_threads) works slightly differently. It is
no longer a table, but a hashtable. This also removes a limitation on
the max TID (previously such a limitation has been needed, as the
table was indexed using the TID),
- the thread block table is no longer mmapable. Instead, the userspace
is supposed to cache the received block number using thread-local
storage, and check if it still has the block by verifying the TID
field in the block header, which is reset when the block is lost.
Change-Id: Ia04f1add0a4904bfd92b156022c704bc62495931