Commit graph

13 commits

Author SHA1 Message Date
Chris Pavlina
276db173ca Add platform_info_t, support runtime serial port address (#632)
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>
2018-02-28 08:39:45 -07:00
Rian Quinn
01842b4c77
Convert Hypervisor to use Delegates (#610)
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”>
2018-02-14 05:25:49 -07:00
Rian Quinn
aab477a590
Build System Bug Fixes (#575)
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”>
2018-01-22 12:45:07 -07:00
JaredWright
f7e36507be Updated bfdriver to build under WDK10 and VS 2017 2017-12-07 12:46:18 -08:00
Jared Wright
c1c35c7e93 New cmake build system (#532)
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>
2017-11-29 12:05:59 -07:00
Rian Quinn
d88b6c370b Header Updates (#504)
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”>
2017-10-07 13:45:24 -06:00
Rian Quinn
9bea7c4a9f Windows 7 Support (#492)
Signed-off-by: Rian Quinn <“rianquinn@gmail.com”>
2017-09-22 08:39:59 -07:00
Rian Quinn
027753cab7 Codacy Update (#491)
Signed-off-by: Rian Quinn <“rianquinn@gmail.com”>
2017-09-20 12:37:21 -07:00
Rian Quinn
0dbf1d62f9 Windows Support (#489)
This patch provides support for Windows in v1.2

Signed-off-by: Rian Quinn <“rianquinn@gmail.com”>
2017-09-20 08:34:47 -07:00
Rian Quinn
496b135c72 missing bfdriver unit tests (#484)
Signed-off-by: Rian Quinn <“rianquinn@gmail.com”>
2017-09-05 15:44:21 -06:00
Rian Quinn
97a4165bc6 missing VMCS unit tests (#481)
Signed-off-by: Rian Quinn <“rianquinn@gmail.com”>
2017-09-01 14:48:53 -06:00
Rian Quinn
dbbfa86e34 BFM cleanup. (#475)
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”>
2017-08-27 14:42:25 -06:00
Rian Quinn
40a448d8fe Merge Repos into the Hypervisor Repo (#470)
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”>
2017-08-17 10:49:49 -06:00