[virt-layer] score/libcpu split (i386)

Philipp Eppelt philipp.eppelt at mailbox.tu-dresden.de
Tue May 14 15:55:10 UTC 2013


Hi,

I looked into the libcpu/sh dir to understand how the split of the CPU 
code between score/cpu and libcpu/ works.

My approach for the i386 arch brings some changes to existing files:

* score/i386/rtems/score/cpu.h
* score/i386/cpu.c
* score/i386/rtems/score/interrupts.h

The list of functions, sensitive for a virtualization environment is 
rather short (up until now):

* _CPU_ISR_Set_level (cpu.h)
* _CPU_Fatal_halt (cpu.h)
* _CPU_Thread_Idle_body (cpu.c)
* everything in interrupt.h

For a full and up to date list, check [0].

I want to introduce new directories containing the right versions for 
the above mentioned functions:
* libcpu/i386/virt-pok
* libcpu/i386/{native|hw|nonvirt|..}


To get this into the toolchain:
* Introduce a conditional called 'virt-pok' in configure.ac
* Branch on this conditional in Makefile.am



As just a small portion of cpu.h is affected, does it make sense to 
split this file?
Which part do I need to explain in more detail?
Do you know of any traps, that I might run into?
What do you think of this?
Is there a chance to get this change upstream? Otherwise I have to find 
a more convenient approach to solve this.


Regards,
Philipp


[0] 
http://wiki.rtems.org/wiki/index.php/GSOC_2013_-_Paravirtualization_of_RTEMS#libcpu.2Fscore_split



More information about the devel mailing list