Subversion Repositories HelenOS

Compare Revisions

Ignore whitespace Rev 4634 → Rev 4635

/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) {