Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WEVT and WLFC implementations #165

Merged
merged 5 commits into from
Mar 16, 2023
Merged

WEVT and WLFC implementations #165

merged 5 commits into from
Mar 16, 2023

Conversation

BrunoASMauricio
Copy link
Contributor

Implemented instructions WEVT and WLFC as per issue #159

As QEMU treats internal and external interrupts the same, WEVT is just a SLEEP that works outside kernel mode if the Usermode Sleep Flag is set.

Without SMP, WLFC is like WEVT, but only sleeps if LF is set. As it is slightly more complex, a test was added since "sleep" instruction tests won't cover this.

WLFC should be revisited when appropriate. Because of that I will not close the issue for the time being and added a comment in its implementation.

@BrunoASMauricio BrunoASMauricio requested a review from claziss March 15, 2023 23:29
@BrunoASMauricio BrunoASMauricio self-assigned this Mar 15, 2023
Also added some comments to SLEEP

As QEMU treats internal and external interrupts the same, WEVT is a SLEEP that
works for user mode if the Usermode Sleep Flag is set

Without SMP, WLFC is like WEVT, but only sleeps if LF is set.
WLFC should be revisited when appropriate

Signed-off-by: Bruno Mauricio <[email protected]>
@BrunoASMauricio BrunoASMauricio requested a review from claziss March 16, 2023 10:28
@claziss claziss merged commit b7e5d59 into master Mar 16, 2023
@BrunoASMauricio BrunoASMauricio deleted the bruno_wevt_wlfc_impl branch March 20, 2023 17:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants