[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [MiNT] xaaes.km calls the AES appl_init() in supervisor mode



Vincent Rivière, 09.03.2013 09:04:59:

 From a kernel module, is it legal to call trap #1?

I did a simple test in xaaes, k_main.c:

# define trap_1_emu   (*KENTRY->vec_misc.trap_1_emu)
# define ROM_Fsfirst(filespec,attr) trap_1_emu(0x04e,filespec,attr)
  ROM_Fsfirst("xxx", 0);

No crash, not run with GEM=ROM.

There's a comment in arch/syscall.h:

 * The trap_1_emu call creates a stack frame and then jumps to the ROM (via
* the old_vec from the XBRA structure). This means that these calls will not

The actual trap_1_emu is in syscall.S (that I don't understand)

Don't know if this helps.

- scrp_write() calls Fsfirst() with trap #1

As MiNT hooks into Trap 1 the MiNT-Fsfirst should be called by EmuTOS in theory. Or EmuTOS did not notice the redirection and things go wrong somehow?

What happens if Fsfirst is called directly in EmuTOS?


BTW: The first define in the above:

# define trap_1_emu   (*KENTRY->vec_misc.trap_1_emu)

was necessary because libkern/kernel_module.h says:

# define trap_1_emu   (*KENTRY->vec.misc.trap_1_emu)

But there is no kentry.vec, only vec_misc. Should this be fixed?

--
Helmut Karlowski