platform_info_t is used to pass platform-specific information from the
kernel into the vmm. On aarch64, this is used to map the serial
peripheral and pass the resulting virtual address.
Closes#527
Signed-off-by: Chris Pavlina <pavlinac@ainfosec.com>
This patch converts the hypervisor to use delegates, dramatically
reducing the complexity of the hypervisor, while also providing a
cleaner interface for extensions.
[RFC]: https://github.com/Bareflank/hypervisor/issues/602
Signed-off-by: “rianquinn” <“rianquinn@gmail.com”>
This patch addresses several bugs with the build system:
- Lack of Windows support
- Clang Tidy was not working properly
- Making modifications to the source code would compile, but would not
re-link resulting in issues
- Removed excess file copying
- Make clean now works
- Removed unused or confusing folders in the build folder as part of the
build process. It is now much easier to traverse the build folder for
dependencies
- The targets didn't work with extensions. This has been fixed.
In addition, the following was also done under this patch
- Intrinsics was moved to the top level and out of the VMM
- Platform files are now in a folder called "platform" instead of
"arch"
- All subprojects have the same include/src/tests files structure
- All intel specific code is properly organized to match intended
namespacing
- Removed dead code
- A small part of the VMCS was converted to use the delegate pattern
- All dependencies are now downloaded at configure time instead of
compile time.
- The cache directory is now cached by Travis CI
- CMake output better matches old build system
- Added make rebuild and separate clean targets to remove various parts
of the build depending on needs.
- Added targets for Clean, Tidy, Rebuild and Format for each subproject
- Re-organized the cmake logic so that macros are not spread out
- New validation removes unneeded complexity
- Removed the need for the compiler wrapper, and in doing so, we now
provide a simpilar set of toolchain files
- Removed the need for Git repos. All external dependencies are
downloaded using a zip or tarball
- Libcxx and Libcxxabi are now in their own files. Much similar logic
- Unit test CMake files have been greatly simplified
- Each subproject is unaware of it's prefix and no long use VMM,
USERSPACE or TEST variables in their cmake files
- Fixed bugs with the flags
- Renamed the varbiables in the default.cmake config to be more
consistent and easier to follow in the rest of the code
Signed-off-by: “rianquinn” <“rianquinn@gmail.com”>
Redesigned the cmake build system to support more flexible build
configurations. Major changes include: new and renamed build configuration
parameters, configuration validation and rule checking, more granular
support for choosing which projects/unit tests to build, updated
external dependency management, restructuring of compiler flags, support
for ninja, and support for cmake-gui/ccmake.
Co-author: cpavlina <pavlinac@ainfosec.com>
[RFC] #498
Signed-off-by: JaredWright <jared.wright12@gmail.com>
Signed-off-by: cpavlina <pavlinac@ainfosec.com>
This patch cleans up the headers of each file, and removes the
authors fields as they are not needed and are confusing.
Signed-off-by: rianquinn <“rianquinn@gmail.com”>
Completes the BFM source code and finishes it's unit tests. This
also addresses issues with the build system.
Signed-off-by: Rian Quinn <“rianquinn@gmail.com”>
This PR mereges all of the repos into a single repo for simplificty. It
also adds static / shared library build types, release / debug builds,
and ensures parallel builds work properly.
Signed-off-by: Rian Quinn <“rianquinn@gmail.com”>