Mips syscall entry point

Jayachandran C. c.jayachandran at gmail.com
Wed Oct 5 17:20:31 UTC 2011


2011/10/5 Kostik Belousov <kostikbel at gmail.com>:
> On Wed, Oct 05, 2011 at 05:56:10PM +0530, Jayachandran C. wrote:
>> On Wed, Oct 5, 2011 at 5:05 PM, Jayachandran C.
>> <c.jayachandran at gmail.com> wrote:
>> > On Wed, Oct 5, 2011 at 3:22 AM, Kostik Belousov <kostikbel at gmail.com> wrote:
>> >> On Wed, Oct 05, 2011 at 12:11:44AM +0300, Kostik Belousov wrote:
>> >>> Hi,
>> >>> below is the patch, test-compiled for XLP64 only, which converts the
>> >>> only remaining architecture MIPS to the new syscall entry sequence.
>> >>> The advantage of the conversion is sharing most of the code with all
>> >>> other architectures and avoiding duplication. Also, the implementation
>> >>> automatically feels the missed features for the MIPS, see the BUGS
>> >> s/feels/fills/, sorry
>> >>> section in the ptrace(2).
>> >> For the same reason, capsicum shall not work on MIPS.
>> >>
>> >>>
>> >>> I am asking for you help to debug and test the patch. Please keep me
>> >>> on Cc:, I am not on the list.
>> >>>
>> >>> Thank you.
>> >>>
>> >>> diff --git a/sys/mips/include/proc.h b/sys/mips/include/proc.h
>> >>> index 11a1f8e..4c0b0b6 100644
>> [...]
>> >
>> > This gives me a crash when I test it on XLR (32bit compile).  The
>> > crash does not look obvious - I am looking at it, hope to resolve this
>> > soon.
>>
>> Actually it is fairly obvious :)  the elf*_machdep.c has to be updated
>> for using the cpu_fetch_syscall_args. With that change it comes up on
>> 32 bit - will do a few more tests on 64 bit to see how that goes.
>>
>> The other minor issue I saw was the locr0 usage in trap(), in call to
>> trapdebug_enter,  it is fine now since  TRAP_DEBUG is not defined.
>
> Thank you very much. Your fix is applied, and I tried to cover both
> locr0 and code usage.
>
> Will wait for your testing.

This works for me, tried on o32/n32/n64 on XLR.  Thanks for fixing this up
.
JC.


More information about the freebsd-mips mailing list