/trunk/kernel/generic/include/context.h |
---|
45,7 → 45,7 |
(c)->sp = ((uintptr_t) (stack)) + (size) - SP_DELTA; |
#endif /* context_set */ |
extern int context_save_arch(context_t *c); |
extern int context_save_arch(context_t *c) __attribute__ ((returns_twice)); |
extern void context_restore_arch(context_t *c) __attribute__ ((noreturn)); |
/** Save register context. |
/trunk/uspace/lib/libc/include/fibril.h |
---|
75,7 → 75,7 |
/** Fibril-local variable specifier */ |
#define fibril_local __thread |
extern int context_save(context_t *c); |
extern int context_save(context_t *c) __attribute__ ((returns_twice)); |
extern void context_restore(context_t *c) __attribute__ ((noreturn)); |
extern fid_t fibril_create(int (*func)(void *), void *arg); |
/trunk/uspace/lib/libc/generic/fibril.c |
---|
165,12 → 165,6 |
if (stype != FIBRIL_FROM_DEAD) { |
/* Save current state */ |
if (!context_save(&srcf->ctx)) { |
/* |
* Make sure to reload srcf with the current fibril |
* address. Its value may be invalid after |
* contex_restore() due to e.g. register recycling. |
*/ |
srcf = __tcb_get()->fibril_data; |
if (serialization_count) |
srcf->flags &= ~FIBRIL_SERIALIZED; |
if (srcf->clean_after_me) { |