****************************************************************************
*                            README                                        *
*                                                                          *
* This file provides all the information regarding new CLI commands that   *
* enable using various hardware features of Intel(R) architecture based    *
* processors from LLDB's CLI.                                              *
****************************************************************************


============
Introduction
============
A shared library has been developed to use various hardware features of
Intel(R) architecture based processors through LLDB's command line. The library
currently comprises of hardware features namely Intel(R) Processor Trace and
Intel(R) Memory Protection Extensions.


============
Details
============
A C++ based cli wrapper (cli-wrapper.cpp) has been developed here that
agglomerates all cli commands for various hardware features. This wrapper is
build to generate a shared library (lldbIntelFeatures) to provide all these
commands.

For each hardware feature, separate cli commands have been developed that are
provided by wrappers (cli-wrapper-pt.cpp and cli-wrapper-mpxtable.cpp) residing
in feature specific folders ("intel-pt" and "intel-mpx" respectively).

For details regarding cli commands of each feature, please refer to these
feature specific wrappers.



============
How to Build
============
The shared library (lldbIntelFeatures) has a cmake based build and can be built
while building LLDB with cmake. "cli-wrapper.cpp" file is compiled along with all
the feature specific source files (residing in feature specific folders).

Furthermore, flexibility is provided to the user to include/exclude a particular
feature while building lldbIntelFeatures library. This is done by flags described
below:

  - LLDB_BUILD_INTEL_PT - The flag enables building of Intel(R) Processor Trace
    feature (inside intel-pt folder). This flag defaults to "OFF" meaning the
    feature is excluded while building lldbIntelFeatures library. Set it to "ON"
    in order to include it.

  - LLDB_BUILD_INTEL_MPX - Enables building Intel(R) Memory Protection Extensions
    feature (inside intel-mpx folder). This flag defaults to "ON" meaning
    the feature is excluded while building lldbIntelFeatures library.

Please refer to README files in feature specific folders to know about additional
flags that need to be set in order to build that feature successfully.


============
How to Use
============
All CLI commands provided by this shared library can be used through the LLDB's
CLI by executing "plugin load <shared_lib_name>" on LLDB CLI. shared_lib_name here
is lldbIntelFeatures



============
Description
============
Please refer to README_CLI file of each feature to know about details of CLI
commands.
