mirror of
https://github.com/DragonOS-Community/DragonOS.git
synced 2025-06-18 16:26:31 +00:00
移植sqlite3,并修复一些bug (#323)
* bugfix: 程序加载器映射内存时,计算要映射的大小不正确的问题。 * 修正brk系统调用不符合规范的地方 * bugfix: 修正fat文件系统未能正确的扩展文件大小的bug * 增加fcntl系统调用 * 移植sqlite3
This commit is contained in:
@ -93,7 +93,6 @@ impl ElfLoader {
|
||||
) -> Result<(), ExecError> {
|
||||
let start = self.elf_page_start(start);
|
||||
let end = self.elf_page_align_up(end);
|
||||
// kdebug!("set_elf_brk: start={:?}, end={:?}", start, end);
|
||||
if end > start {
|
||||
let r = user_vm_guard.map_anonymous(
|
||||
start,
|
||||
@ -177,9 +176,7 @@ impl ElfLoader {
|
||||
let beginning_page_offset = self.elf_page_offset(addr_to_map);
|
||||
addr_to_map = self.elf_page_start(addr_to_map);
|
||||
// 计算要映射的内存的大小
|
||||
let map_size = phent.p_filesz as usize
|
||||
+ self.elf_page_offset(VirtAddr::new(phent.p_vaddr as usize))
|
||||
+ beginning_page_offset;
|
||||
let map_size = phent.p_filesz as usize + beginning_page_offset;
|
||||
let map_size = self.elf_page_align_up(VirtAddr::new(map_size)).data();
|
||||
// 当前段在文件中的大小
|
||||
let seg_in_file_size = phent.p_filesz as usize;
|
||||
|
Reference in New Issue
Block a user