diff options
-rw-r--r-- | sim/ChangeLog | 6 | ||||
-rw-r--r-- | sim/cris/traps.c | 6 |
2 files changed, 9 insertions, 3 deletions
diff --git a/sim/ChangeLog b/sim/ChangeLog index 510da96..67a52d9 100644 --- a/sim/ChangeLog +++ b/sim/ChangeLog @@ -1,3 +1,9 @@ +2005-04-18 Hans-Peter Nilsson <hp@axis.com> + + * cris/traps.c (cris_break_13_handler) <case TARGET_SYS_mmap2>: + For ((len & 8191) != 0 && fd == (USI) -1), don't say this isn't + implemented. In call to create_map, pad length argument to 8k. + 2005-04-15 Corinna Vinschen <vinschen@redhat.com> * configure.ac: Add explicit sh64 case. diff --git a/sim/cris/traps.c b/sim/cris/traps.c index eadb744..5b3718d 100644 --- a/sim/cris/traps.c +++ b/sim/cris/traps.c @@ -1530,8 +1530,7 @@ cris_break_13_handler (SIM_CPU *current_cpu, USI callnum, USI arg1, && flags != TARGET_MAP_PRIVATE && flags != TARGET_MAP_SHARED) || (fd != (USI) -1 && prot != TARGET_PROT_READ) - || pgoff != 0 - || ((len & 8191) != 0 && fd == (USI) -1)) + || pgoff != 0) { sim_io_eprintf (sd, "Unimplemented mmap2 call " "(0x%lx, 0x%lx, 0x%lx, 0x%lx, 0x%lx, 0x%lx)\n", @@ -1611,7 +1610,8 @@ cris_break_13_handler (SIM_CPU *current_cpu, USI callnum, USI arg1, else { USI newaddr - = create_map (sd, ¤t_cpu->highest_mmapped_page, addr, len); + = create_map (sd, ¤t_cpu->highest_mmapped_page, addr, + (len + 8191) & ~8191); if (newaddr >= (USI) -8191) retval = -cb_host_to_target_errno (cb, -(SI) newaddr); |