Experiments with page-fault-handler for NIC relocation#64
Open
Experiments with page-fault-handler for NIC relocation#64
Conversation
JayFoxRox
commented
Aug 24, 2018
|
|
||
| // FIXME: The following instruction parser / emulator could be nicer. | ||
| // Each case was added when the instruction was ecountered, so | ||
| // no actual design went into this code, or parsing anything. |
JayFoxRox
commented
Aug 24, 2018
|
|
||
|
|
||
| uint32_t __stdcall do_test16(uint16_t a, uint16_t b, uint32_t eflags); | ||
| asm("_do_test16@12:\n" |
Owner
Author
There was a problem hiding this comment.
The following code should be illegal!
The fact that we have 2 variations of the same function doesn't help. Someone should refactor this.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This is an experiment for #63, it doesn't really fit this repository, and is probably only here while it's work in progress.
In this branch, I attempt (successfully so far!) to relocate the NIC MMIO, and install MMIO hooks so we can emulate a virtual NIC, so the real NIC remains fully under our control.
This would allow us to co-exist with networked games. Also games wouldn't be able to terminate our network connection. All of this has huge implications for many use-cases such as:
Similar code could also be used in the future to hook OHCI (USB) or other devices.