123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122 |
- #ifndef _ADDRSPACE_H_
- #define _ADDRSPACE_H_
- #include <vm.h>
- struct vnode;
- struct addrspace {
- vaddr_t as_vbase1;
- paddr_t as_pbase1;
- size_t as_npages1;
- vaddr_t as_vbase2;
- paddr_t as_pbase2;
- size_t as_npages2;
- paddr_t as_stackpbase;
- };
- struct addrspace *as_create(void);
- int as_copy(struct addrspace *src, struct addrspace **ret);
- void as_activate(void);
- void as_deactivate(void);
- void as_destroy(struct addrspace *);
- int as_define_region(struct addrspace *as,
- vaddr_t vaddr, size_t sz,
- int readable,
- int writeable,
- int executable);
- int as_prepare_load(struct addrspace *as);
- int as_complete_load(struct addrspace *as);
- int as_define_stack(struct addrspace *as, vaddr_t *initstackptr);
- int load_elf(struct vnode *v, vaddr_t *entrypoint);
- #endif
|