#ifndef __HEV_TASK_CALL_H__
#define __HEV_TASK_CALL_H__
#ifdef __cplusplus
extern "C" {
#endif
typedef struct _HevTaskCall HevTaskCall;
typedef void (*HevTaskCallEntry) (HevTaskCall *call);
struct _HevTaskCall
{
void *stack_top;
void *retval;
};
HevTaskCall *hev_task_call_new (int base_size, int stack_size);
void hev_task_call_destroy (HevTaskCall *self);
void *hev_task_call_jump (HevTaskCall *self, HevTaskCallEntry entry);
static inline void
hev_task_call_set_retval (HevTaskCall *self, void *value)
{
self->retval = value;
}
#ifdef __cplusplus
}
#endif
#endif