[OSy] context switch

Michal Klempa michal.klempa at gmail.com
Sun Nov 7 20:09:30 CET 2010


Zdravim,
mozno sa spytam teraz uplne mimo, ale predsalen. Nejde mi do hlavy toto:
thread.c (original kalisto):
105    if (old_thread == NULL) {
106      void *dummy_stack_top;
107      switch_cpu_context(&dummy_stack_top, &thread->stack_top);
108    } else
109      switch_cpu_context(&old_thread->stack_top,&thread->stack_top);

Assemblerovska funkcia switch_cpu_context ulozi vsetky registre na
stack_top ktory jej poslem ako parameter, ze jo?
Kam ukazuje dummy_stack_top a kam sa teda ulozia registre ked prepinam
na nejake vlakno prvy krat? (teda ked sa dokonci ta init cast v main.c
a spravi sa prve switch_to_thread na example thread).

D~
Michal Klempa




More information about the NSWI004 mailing list