view TaskManager.h @ 2:803d6bf22e6d default tip

second commit. it's far to complete..
author kent <kent@cr.ie.u-ryukyu.ac.jp>
date Tue, 22 Dec 2009 16:19:56 +0900
parents aef83aed7a07
children
line wrap: on
line source

#ifndef _TASKMANAGER_H
#define _TASKMANAGER_H
#include <stdlib.h>
#include "List.h"
#include "Task.h"

typedef struct _TaskManager {
	List *waitingList;
	List *activeList;
} TaskManager;

__code initTaskManager(__code(*ret)(TaskManager*,void*), void *arg);
__code addNewTask(TaskManager *, Task *);
__code finishTask(TaskManager *, Task *);
__code noEvent(TaskManager *);
__code getTask(TaskManager *, ListIter *);
__code executed(TaskManager *, ListIter *, Task *);
#if 0
typedef List TaskList;
typedef uint32_t TaskTypeID;

/* C++CeriumでのTaskObjectにあたる  */
typedef struct _tasktype {
	//Taskrun run;
	char *name;
	enum cpu cputype;
} TaskType;

/* C++CeriumでのHTaskにあたるのかな  */
typedef struct _Task {
	TaskType tasktype;
	unsigned int id;	// is it needed?

	void *rbuff;
	void *wbuff;
	size_t rsize;
	size_t wsize;

	TaskList waiter;	// List of tasks waiting for me :-P
	TaskList waitee;	// List of tasks keep me waiting :-(
} Task;

/* defined in USERs space.  */
/* but generated by Cerium automatically.  */
extern int max_tasktypes;
extern TaskType taskTypes[];
#endif

#endif /* !_TASKMANAGER_H */