view TaskManager/kernel/ppe/Task.h @ 602:1733f3cbfa28

64bit mode try... not worked.
author e075740@nw0740.st.ie.u-ryukyu.ac.jp
date Fri, 06 Nov 2009 21:20:26 +0900
parents 47b61865ea8c
children 42c94f85c779
line wrap: on
line source

#ifndef INCLUDED_TASK
#define INCLUDED_TASK

#include "base.h"
#include "types.h"
#include "ListData.h"

#define MAX_PARAMS 8

class TaskQueue;

class Task {
public: // variables

    BASE_NEW_DELETE(Task);

    int command;         // 4 byte
    long self;         // 4 byte (or 8byte on 64bit mode)

    int param_size;        // 4 byte
    long param[MAX_PARAMS]; // 4*MAX_PARAMS byte
    ListData inData  __attribute__ ((aligned (DEFAULT_ALIGNMENT)));  // 4 byte 64bit であるべき
    ListData outData  __attribute__ ((aligned (DEFAULT_ALIGNMENT))); // 4 byte 64bit であるべき

public: // functions
    int add_inData_t(long addr, int size);  // unsigned int ではなく 64bit
    int add_outData_t(long addr, int size); // unsigned int ではなく 64bit
    int add_data(ListData &list, long addr, int size);
    int add_param(long param);

#define add_inData(addr, size)			\
    add_inData_t((long)(addr), (size));
#define add_outData(addr, size)			\
    add_outData_t((long)(addr), (size));
};

typedef Task* TaskPtr;

#endif