#ifndef __HEV_TASK_PRIVATE_H__
#define __HEV_TASK_PRIVATE_H__
#include <stdint.h>
#include <setjmp.h>
#include "hev-task.h"
#include "hev-task-stack.h"
#include "lib/list/hev-list.h"
#include "lib/rbtree/hev-rbtree.h"
typedef struct _HevTaskSchedEntity HevTaskSchedEntity;
struct _HevTaskSchedEntity
{
HevTask *task;
};
struct _HevTask
{
void *stack_bottom;
HevTaskEntry entry;
void *data;
uint64_t sched_key;
HevRBTreeNode sched_node;
HevTaskSchedEntity sched_entity;
HevTaskStack *stack;
int ref_count;
int priority;
int next_priority;
HevTaskState state;
jmp_buf context;
#ifdef ENABLE_DEBUG
HevListNode list_node;
#endif
};
extern void hev_task_execute (HevTask *self, void *executer);
#endif