Merge branch 'misc_changes' into 'master'
Various improvements See merge request redox-os/bootstrap!7
This commit is contained in:
Generated
+7
@@ -18,6 +18,7 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
|
||||
name = "bootstrap"
|
||||
version = "0.0.0"
|
||||
dependencies = [
|
||||
"hashbrown",
|
||||
"linked_list_allocator",
|
||||
"redox-exec",
|
||||
"redox-initfs",
|
||||
@@ -35,6 +36,12 @@ dependencies = [
|
||||
"scroll",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "hashbrown"
|
||||
version = "0.14.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604"
|
||||
|
||||
[[package]]
|
||||
name = "linked_list_allocator"
|
||||
version = "0.10.5"
|
||||
|
||||
@@ -10,6 +10,7 @@ name = "bootstrap"
|
||||
crate-type = ["staticlib"]
|
||||
|
||||
[dependencies]
|
||||
hashbrown = { version = "0.14", default-features = false, features = ["inline-more"] }
|
||||
linked_list_allocator = "0.10"
|
||||
redox-initfs = { git = "https://gitlab.redox-os.org/redox-os/redox-initfs.git", features = ["kernel"], default-features = false }
|
||||
redox-exec = { git = "https://gitlab.redox-os.org/redox-os/relibc.git" }
|
||||
@@ -17,6 +18,7 @@ redox_syscall = "0.4"
|
||||
|
||||
[profile.release]
|
||||
panic = "abort"
|
||||
lto = "fat"
|
||||
|
||||
[profile.dev]
|
||||
panic = "abort"
|
||||
|
||||
+1
-2
@@ -1,4 +1,4 @@
|
||||
ENTRY(ustart)
|
||||
ENTRY(_start)
|
||||
OUTPUT_FORMAT("elf64-littleaarch64", "elf64-littleaarch64", "elf64-littleaarch64")
|
||||
|
||||
SECTIONS {
|
||||
@@ -34,7 +34,6 @@ SECTIONS {
|
||||
. = ALIGN(4096);
|
||||
__bss_end = .;
|
||||
}
|
||||
__end = .;
|
||||
|
||||
/DISCARD/ : {
|
||||
*(.comment*)
|
||||
|
||||
+2
-2
@@ -20,8 +20,8 @@ static MAP: Map = Map {
|
||||
|
||||
core::arch::global_asm!(
|
||||
"
|
||||
.globl ustart
|
||||
ustart:
|
||||
.globl _start
|
||||
_start:
|
||||
// Setup a stack.
|
||||
ldr x8, ={number}
|
||||
ldr x0, ={fd}
|
||||
|
||||
+1
-2
@@ -1,4 +1,4 @@
|
||||
ENTRY(ustart)
|
||||
ENTRY(_start)
|
||||
OUTPUT_FORMAT(elf32-i386)
|
||||
|
||||
SECTIONS {
|
||||
@@ -34,7 +34,6 @@ SECTIONS {
|
||||
. = ALIGN(4096);
|
||||
__bss_end = .;
|
||||
}
|
||||
__end = .;
|
||||
|
||||
/DISCARD/ : {
|
||||
*(.comment*)
|
||||
|
||||
+3
-3
@@ -15,9 +15,9 @@ static MAP: Map = Map {
|
||||
};
|
||||
|
||||
core::arch::global_asm!(
|
||||
"
|
||||
.globl ustart
|
||||
ustart:
|
||||
"
|
||||
.globl _start
|
||||
_start:
|
||||
# Setup a stack.
|
||||
mov eax, {number}
|
||||
mov ebx, {fd}
|
||||
|
||||
+6
-3
@@ -1,9 +1,11 @@
|
||||
use core::convert::TryFrom;
|
||||
#[allow(deprecated)]
|
||||
use core::hash::{BuildHasherDefault, SipHasher};
|
||||
use core::str;
|
||||
|
||||
use alloc::collections::BTreeMap;
|
||||
use alloc::string::String;
|
||||
|
||||
use hashbrown::HashMap;
|
||||
use redox_initfs::{InitFs, InodeStruct, Inode, InodeDir, InodeKind, types::Timespec};
|
||||
|
||||
use syscall::data::{Packet, Stat};
|
||||
@@ -19,14 +21,15 @@ struct Handle {
|
||||
filename: String,
|
||||
}
|
||||
pub struct InitFsScheme {
|
||||
handles: BTreeMap<usize, Handle>,
|
||||
#[allow(deprecated)]
|
||||
handles: HashMap<usize, Handle, BuildHasherDefault<SipHasher>>,
|
||||
next_id: usize,
|
||||
fs: InitFs<'static>,
|
||||
}
|
||||
impl InitFsScheme {
|
||||
pub fn new(bytes: &'static [u8]) -> Self {
|
||||
Self {
|
||||
handles: BTreeMap::new(),
|
||||
handles: HashMap::default(),
|
||||
next_id: 0,
|
||||
fs: InitFs::new(bytes).expect("failed to parse initfs"),
|
||||
}
|
||||
|
||||
@@ -11,8 +11,6 @@ mod offsets {
|
||||
// data+bss (RW-)
|
||||
static __data_start: u8;
|
||||
static __bss_end: u8;
|
||||
|
||||
static __end: u8;
|
||||
}
|
||||
pub fn text() -> (usize, usize) {
|
||||
unsafe { (&__text_start as *const u8 as usize, &__text_end as *const u8 as usize) }
|
||||
|
||||
+1
-2
@@ -1,4 +1,4 @@
|
||||
ENTRY(ustart)
|
||||
ENTRY(_start)
|
||||
OUTPUT_FORMAT(elf64-x86-64)
|
||||
|
||||
SECTIONS {
|
||||
@@ -34,7 +34,6 @@ SECTIONS {
|
||||
. = ALIGN(4096);
|
||||
__bss_end = .;
|
||||
}
|
||||
__end = .;
|
||||
|
||||
/DISCARD/ : {
|
||||
*(.comment*)
|
||||
|
||||
+2
-2
@@ -17,8 +17,8 @@ static MAP: Map = Map {
|
||||
|
||||
core::arch::global_asm!(
|
||||
"
|
||||
.globl ustart
|
||||
ustart:
|
||||
.globl _start
|
||||
_start:
|
||||
# Setup a stack.
|
||||
mov rax, {number}
|
||||
mov rdi, {fd}
|
||||
|
||||
Reference in New Issue
Block a user