view paper/src/context.h @ 14:3952ffd84dfe

context, etc
author tobaru
date Thu, 06 Feb 2020 17:45:09 +0900
parents a4a1a68d8811
children
line wrap: on
line source

struct Context {
    enum Code next;
    struct Worker* worker;
    struct TaskManager* taskManager;
    int codeNum;
    __code (**code) (struct Context*);
    union Data **data;
    void* heapStart;
    void* heap;
    long heapLimit;
    int dataNum;

    // task parameter
    int idgCount; //number of waiting dataGear
    int idg;
    int maxIdg;
    int odg;
    int maxOdg;
    int gpu; // GPU task
    struct Context* task;
    struct Element* taskList;
#ifdef USE_CUDAWorker
    int num_exec;
    CUmodule module;
    CUfunction function;
#endif
    /* multi dimension parameter */
    int iterate;
    struct Iterator* iterator;
    enum Code before;
};

union Data {
    ....
    ///mnt/dalmore-home/one/src/cbcxv6/src/gearsTools/../interface/vm.h
    struct vm {
        union Data* vm;
        uint low;
        uint hi;
        struct proc* p;
        pde_t* pgdir;
        char* init;
        uint sz;
        char* addr;
        struct inode* ip;
        uint offset;
        uint oldsz;
        uint newsz;
        char* uva;
        uint va;
        void* pp;
        uint len;
        uint phy_low;
        uint phy_hi;
        enum Code init_vmm;
        enum Code kpt_freerange;
        enum Code kpt_alloc;
        enum Code switchuvm;
        enum Code init_inituvm;
        enum Code loaduvm;
        enum Code allocuvm;
        enum Code clearpteu;
        enum Code copyuvm;
        enum Code uva2ka;
        enum Code copyout;
        enum Code paging_int;
        enum Code void_ret;
        enum Code next;
    } vm;
    ....
#ifndef CbC_XV6_CONTEXT
    struct Context Context;
}; // union Data end       this is necessary for context generator