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

libsel4simple-default: include schedcontrol range #92

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

astevins
Copy link

Using bootstrap_new_simple from libsel4allocman did not work properly on MCS kernel, because it was not transferring the scheduling control caps to the new CSpace.

This was due to bootstrap_transfer_caps_simple using simple_get_cap_count and simple_get_nth_cap, which did not include the scheduling control slot range.

int bootstrap_transfer_caps_simple(bootstrap_info_t *bs, simple_t *simple, int levels) {
int error;
size_t i;
size_t cap_count = simple_get_cap_count(simple);
seL4_CPtr cnode = simple_get_cnode(simple);
for(i = 0ul; i < cap_count; i++) {
seL4_CPtr pos = simple_get_nth_cap(simple,i);
/* Because we are going to switch root cnodes don't move the old cnode cap

Adding the scheduling control slot range to these functions resolved the issue.

Allows libsel4allocman:bootstrap_new_simple to work on the MCS kernel.

Signed-off-by: Arya Stevinson <[email protected]>
@astevins astevins force-pushed the simple-transfer-sched-ctrl branch from eba9747 to 9022420 Compare August 26, 2024 17:03
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.

1 participant