view include/TaskManager/HTaskInfo.h @ 55:9a9c7bef1988

*** empty log message ***
author gongo
date Sat, 16 Feb 2008 18:54:52 +0900
parents 90523ccc4dff
children 54355e641172
line wrap: on
line source

#ifndef INCLUDED_HTASK_INFO
#define INCLUDED_HTASK_INFO

#ifndef INCLUDED_TYPES
#  include "types.h"
#endif

#ifndef INCLUDED_TASK
#  include "task.h"
#endif

#ifndef INCLUDED_DMA_BUFFER
#  include "DmaBuffer.h"
#endif

struct htask {
    int command;
    int in_size;
    //unsigned int in_addr;
    //unsigned int out_addr;
    DmaBuffer *in_addr;
    DmaBuffer *out_addr;
    TaskQueuePtr wait_me;  // List of task waiting for me
    TaskQueuePtr wait_i;   // List of task for which I am waiting
    void (*post_func)(void);    
    struct htask *next;
};

class HTaskInfo {
public:
    /* constructor */
    HTaskInfo(void);
    ~HTaskInfo(void);

    /* functions */
    int init(int num);
    HTaskPtr create(int cmd,int size,DmaBuffer *in_addr, DmaBuffer *out_addr);
    void free(HTaskPtr q);

private:
    /* variables */
    HTaskPtr htaskPool;
    HTaskPtr freeHTask;

    /* functions */
    int extend_pool(int num);
    void destroy(void);
};

#endif