diff options
Diffstat (limited to 'subx/020syscalls.cc')
-rw-r--r-- | subx/020syscalls.cc | 15 |
1 files changed, 1 insertions, 14 deletions
diff --git a/subx/020syscalls.cc b/subx/020syscalls.cc index c7e3fa47..2940b06c 100644 --- a/subx/020syscalls.cc +++ b/subx/020syscalls.cc @@ -75,7 +75,7 @@ void process_int80() { break; case 45: // brk: modify size of data segment trace(91, "run") << "grow data segment to " << Reg[EBX].u << end(); - resize_mem(/*new end address*/Reg[EBX].u); + grow_data_segment(/*new end address*/Reg[EBX].u); break; default: raise << HEXWORD << EIP << ": unimplemented syscall " << Reg[EAX].u << '\n' << end(); @@ -102,16 +102,3 @@ void check_mode(int reg) { exit(1); } } - -void resize_mem(uint32_t new_end_address) { - if (new_end_address < Mem_offset) { - raise << HEXWORD << EIP << ": can't shrink data segment to before code segment\n" << end(); - return; - } - int32_t new_size = new_end_address - Mem_offset; - if (new_size < SIZE(Mem)) { - raise << HEXWORD << EIP << ": shrinking data segment is not supported.\n" << end(); - return; - } - Mem.resize(new_size); // will throw exception on failure -} |