Skip to content

Update rust-sel4 commit from TS fork to mainline#531

Open
dreamliner787-9 wants to merge 4 commits into
seL4:mainfrom
au-ts:rust_sel4_update_to_main
Open

Update rust-sel4 commit from TS fork to mainline#531
dreamliner787-9 wants to merge 4 commits into
seL4:mainfrom
au-ts:rust_sel4_update_to_main

Conversation

@dreamliner787-9

@dreamliner787-9 dreamliner787-9 commented Jun 19, 2026

Copy link
Copy Markdown
Contributor

This required a few changes to how the spec is packed into the initialiser ELF from seL4/rust-sel4#345.

Do not merge until:

Previously, the ELF code treats program headers = segments. While this
worked originally, it broke for cases that requires >= 2 program
headers to refer to the same segment.

Now, when the ELF is parsed, the code will create a 1-1 mapping of
segments to program headers like before. But the allow for additional
program headers to be inserted.

Signed-off-by: Bill Nguyen <bill.nguyen@unsw.edu.au>
Added `pub fn phdrs_table(&self) -> Vec<(ElfProgramHeader64, usize)>` to
ELF code.

Signed-off-by: Bill Nguyen <bill.nguyen@unsw.edu.au>
Modified `pub fn add_segment()` to allow for an additional program
header in the ELF to describe the segment with a user defined type
identifier.

Signed-off-by: Bill Nguyen <bill.nguyen@unsw.edu.au>
Which also required changes to how the spec is packed into the
intialiser.

Signed-off-by: Bill Nguyen <bill.nguyen@unsw.edu.au>
Comment thread tool/microkit/src/elf.rs
Comment on lines 107 to +109
const PF_X: u32 = 0x1;
const PF_W: u32 = 0x2;
const PF_R: u32 = 0x4;
pub const PF_R: u32 = 0x4;

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If you need to make it pub do it consistently

Comment thread tool/microkit/src/elf.rs
#[derive(Eq, PartialEq, Clone)]
pub struct ProgramHeader {
pub segment_idx: usize,
pub type_: u32,

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Use r#type. Not type_

Comment thread tool/microkit/src/elf.rs
entry,
machine,
segments: [].into(),
program_headers: [].into(),

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

vec![], please.

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