view TaskManager/kernel/ppe/TaskList.h @ 2030:258498680128 draft

indent-region
author Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
date Tue, 25 Nov 2014 05:08:50 +0900
parents 44fa0f1320a9
children
line wrap: on
line source

#ifndef INCLUDED_TASKLIST
#define INCLUDED_TASKLIST

#include "base.h"
#include "Task.h"

class HTask;

#define TASK_MAX_SIZE 29

class TaskList { // 1024 byte 
public:
    BASE_NEW_DELETE(TaskList);

    long lastTask; // 8 byte
    TaskList *next; // 8 byte
    TaskList *prev; // 8 byte
    TaskList *waiter; // 8 byte
    HTask *self; // 8 byte
    int dim; // 4 byte
    int cpu; // 4 byte
    size_t x,y,z; // 8*3 byte
    unsigned long long task_start_time,task_end_time; // 8*2 byte
    Task tasks[TASK_MAX_SIZE]; // 32*TASK_MAX_SIZE
    
    
    TaskPtr last() { return (TaskPtr)(((memaddr)tasks)+lastTask); }
    void set_last(Task *t) { lastTask = ((memaddr)t) - ((memaddr)tasks); }
    void init() { lastTask = ((memaddr)&tasks[TASK_MAX_SIZE])-(memaddr)(tasks); waiter=this; dim=0;}
    void initOnce() { }
    void freeOnce() {}
    int ismultidim(int cpu_num);
    void print();

} ;

typedef TaskList* TaskListPtr;

#endif