Track Program_Counter(PC)/regs of L4Linux Task
Julian Grizzard
grizzard at ece.gatech.edu
Sat Dec 17 03:44:01 CET 2005
Adam Lackorzynski wrote:
</snip>
cool
>>Additional threads >= 5, one for each IRQ (virtual not implemented yet)
>
>
> virtual not implemented yet?
apparently not, but for my setup this hasn't really been a problem:
/*
* _virt functions are empty for now.
*/
unsigned int l4lx_irq_dev_startup_virt(unsigned int irq)
{
printk("%s(%d) unimplemented\n", __func__, irq);
return 0;
}
void l4lx_irq_dev_shutdown_virt(unsigned int irq)
{
printk("%s(%d) unimplemented\n", __func__, irq);
}
void l4lx_irq_dev_ack_virt(unsigned int irq)
{
printk("%s(%d) unimplemented\n", __func__, irq);
}
void l4lx_irq_dev_end_virt(unsigned int irq)
{
printk("%s(%d) unimplemented\n", __func__, irq);
}
void l4lx_irq_dev_enable_virt(unsigned int irq)
{
printk("%s(%d) unimplemented\n", __func__, irq);
}
void l4lx_irq_dev_disable_virt(unsigned int irq)
{
printk("%s(%d) unimplemented\n", __func__, irq);
}
>
>
>> the entry functions for these threads are
>> irq_dev_thread --- the main handler
>> l4lx_irq_dev_startup_hw --- gets irq_dev_thread started
>> l4lx_irq_dev_shutdown_hw
>> l4lx_irq_dev_enable_hw
>> l4lx_irq_dev_disable_hw
>> l4lx_irq_dev_ack_hw
>> l4lx_irq_dev_end_hw
>> l4lx_irq_dev_startup_virt
>> l4lx_irq_dev_shutdown_virt
>> l4lx_irq_dev_enable_virt
>> l4lx_irq_dev_disable_virt
>> l4lx_irq_dev_ack_virt
>> l4lx_irq_dev_end_virt
>
>
> Not only irq threads but also all other threads that may be allocated by
> stubs etc.
okay, so I think I found the easiest solution to my question, which is
to grep through the L4Linux source for l4lx_thread_create. I assume
that all L4 threads in L4Linux are created through that API except
threads 0 and 1 which you explained are created by the L4Env startup.
>
>
>>Anything wrong with that description? What does thread 1 do? I can't
>>seem to track it down.
>
>
> All l4env apps have thread0 (region manager thread) and thread1
> (semaphore), real work starts in thread2.
gotcha
>
>
>>Also, which thread is responsible for handling
>>system calls?
>
>
> thread3, it actually runs the Linux kernel.
>
>
>>Is that what thread 1 does maybe? Which L4Linux function
>>does the system call handler function start?
>
>
> Maybe you mean l4x_user_dispatcher()?
ah, yes. that looks like the important function that I was thinking
should exist somewhere.
excellent, Thanks!
Julian
More information about the l4-hackers
mailing list