mirror of
https://github.com/drasko/codezero.git
synced 2026-02-27 17:23:13 +01:00
Towards finishing exchange_registers()
- Added mutex_trylock() - Implemented most of exchange_registers() - thread_control() now needs a lock for operations that can modify thread context. - thread_start() does not initialise scheduler flags, now done in thread_create. TODO: - Fork/clone'ed threads should retain their context in tcb, not syscall stack. - exchange_registers() calls in userspace need cleaning up.
This commit is contained in:
22
tasks/mm0/include/exregs.h
Normal file
22
tasks/mm0/include/exregs.h
Normal file
@@ -0,0 +1,22 @@
|
||||
#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_return(struct exregs_data *s, unsigned long retreg);
|
||||
void exregs_set_pc(struct exregs_data *s, unsigned long pc);
|
||||
|
||||
/*
|
||||
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__ */
|
||||
Reference in New Issue
Block a user