mirror of
https://github.com/drasko/codezero.git
synced 2026-01-13 19:33:15 +01:00
- KIP's pointer to UTCB seems to work with existing l4lib ipc functions. - Works up to clone() - In clone we mmap() the same UTCB on each new thread - excessive. - Generally during page fault handling, cloned threads may fault on the same page multiple times even though a single handling would be enough for all of them. Need to detect and handle this.
25 lines
878 B
C
25 lines
878 B
C
#ifndef __MM0_EXREGS_H__
|
|
#define __MM0_EXREGS_H__
|
|
|
|
#include <l4/api/exregs.h>
|
|
|
|
void exregs_set_stack(struct exregs_data *s, unsigned long sp);
|
|
void exregs_set_mr(struct exregs_data *s, int offset, unsigned long val);
|
|
void exregs_set_pc(struct exregs_data *s, unsigned long pc);
|
|
void exregs_set_pager(struct exregs_data *s, l4id_t pagerid);
|
|
void exregs_set_utcb(struct exregs_data *s, unsigned long virt);
|
|
|
|
/*
|
|
exregs_set_stack(unsigned long sp)
|
|
exregs_set_pc(unsigned long pc)
|
|
exregs_set_return(unsigned long retreg)
|
|
exregs_set_arg0(unsigned long arg0)
|
|
exregs_set_mr0(unsigned long mr0)
|
|
exregs_set_mr_sender(unsigned long sender)
|
|
exregs_set_mr_return(unsigned long retreg)
|
|
exregs_set_all(unsigned long arg0, unsigned long arg1, unsigned long arg2, unsigned long arg3,
|
|
unsigned long sp, unsigned long pc, u32 valid_vector, l4id_t pager);
|
|
*/
|
|
|
|
#endif /* __MM0_EXREGS_H__ */
|