view src/impl/vm_impl.h @ 217:415081e357ec

switchuvm_check_pgdirvm_impl
author tobaru
date Fri, 24 Jan 2020 20:26:26 +0900
parents 90b65036d9a2
children 80398e02ae72
line wrap: on
line source

typedef struct vm_impl<Impl, Isa> impl vm{
    union Data* vm_impl;
    uint i;
    pte_t* pte;
    uint sz;
    pde_t* pgdir;
    char* addr;
    struct inode* ip;
    uint offset;
    uint pa;
    uint n;
    uint oldsz;
    uint newsz;
    uint a;
    int ret;
    char* mem;
    char* uva;
    pde_t* d;
    uint ap;
    uint phy_low;
    uint phy_hi;
    uint va;
    void* pp;
    uint len;
    char* buf;
    char* pa0;
    uint va0;
    proc_struct* p;

    __code kpt_alloc_check_impl(Type* vm_impl, __code next(...));
    __code loaduvm_ptesize_check(Type* vm_impl, __code next(int ret, ...));
    __code loaduvm_loop(Type* vm_impl, uint i, pte_t* pte, uint sz, __code next(int ret, ...));
    __code allocuvm_check_newsz(Type* vm_impl, pde_t* pgdir, uint oldsz, uint newsz, __code next(...));
    __code allocuvm_loop(Type* vm_impl, pde_t* pgdir, uint oldsz, uint newsz, uint a, __code next(...));
    __code copyuvm_check_null(Type* vm_impl, pde_t* pgdir, uint sz, __code next(...));
    __code copyuvm_loop(Type* vm_impl,pde_t* pgdir, uint sz, pde_t* d, pte_t* pte, uint pa, uint i, uint ap, char* mem, __code next(int ret, ...));
    __code clearpteu_check_ptevm_impl(Type* vm_impl, pde_t* pgdir, char* uva,  __code next(...));
    __code uva2ka_check_pe_types(Type* vm_impl, pde_t* pgdir, char* uva, __code next(...));
    __code paging_intvm_impl(Type* vm_impl, uint phy_low, uint phy_hi, __code next(...));
    __code copyout_loopvm_impl(Type* vm_impl, pde_t* pgdir, uint va, void* pp, uint len, __code next(...));
    __code switchuvm_check_pgdirvm_impl(struct vm_impl* vm_impl, struct proc *p, __code next(...));
    __code next(...);
} vm_impl;