This patch:
- Fixes some bugs with Windows. It is working again
- Fixes a long-time issue with Linux on some Intel CPUs that
would cause any attempt to load the driver to crash due to
the GDT being marked as read only, and the Linux APIs
for this will triple fault your system if these APIs are
not used very quickly (a bug that probably should be
reported to Linux).
- Fixes issues with how the fail logic worked. You can not
fail inside the fail handler. New integration tests were
added to ensure that this case works as expected. In
general, the hypervisor has less assembly, and should be
more robust as a result.
- Fixes how TLB flushing is done, and adds TLB flushing APIs.
A future PR will use this code to implement free_page and
free_huge.
- Continued work on removing the heap logic that is no longer
supported.
This patch provides the initial upload for Bareflank 3.0.
It should be noted that this initial upload does not contain
all of the intended features for 3.0, and instead provides
a starting point for further development and review.