Skip to content

libsel4simple-default: include schedcontrol range - #92

Open
astevins wants to merge 1 commit into
seL4:masterfrom
astevins:simple-transfer-sched-ctrl
Open

libsel4simple-default: include schedcontrol range#92
astevins wants to merge 1 commit into
seL4:masterfrom
astevins:simple-transfer-sched-ctrl

Conversation

@astevins

Copy link
Copy Markdown

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 <arya.stevinson@gmail.com>
@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