|
|
| version 1.10, 2004/01/14 23:26:14 | version 1.11, 2004/01/20 18:41:52 |
|---|---|
| Line 228 struct vmspace { | Line 228 struct vmspace { |
| }; | }; |
| /* | /* |
| * Resident executable holding structure. A user program can take a snapshot | |
| * of just its VM address space (typically done just after dynamic link | |
| * libraries have completed loading) and register it as a resident | |
| * executable associated with the program binary's vnode, which is also | |
| * locked into memory. Future execs of the vnode will start with a copy | |
| * of the resident vmspace instead of running the binary from scratch, | |
| * avoiding both the kernel ELF loader *AND* all shared library mapping and | |
| * relocation code, and will call a different entry point (the stack pointer | |
| * is reset to the top of the stack) supplied when the vmspace was registered. | |
| */ | |
| struct vmresident { | |
| struct vnode *vr_vnode; /* associated vnode */ | |
| TAILQ_ENTRY(vmresident) vr_link; /* linked list of res sts */ | |
| struct vmspace *vr_vmspace; /* vmspace to fork */ | |
| intptr_t vr_entry_addr; /* registered entry point */ | |
| struct sysentvec *vr_sysent; /* system call vects */ | |
| int vr_id; /* registration id */ | |
| }; | |
| /* | |
| * Macros: vm_map_lock, etc. | * Macros: vm_map_lock, etc. |
| * Function: | * Function: |
| * Perform locking on the data portion of a map. Note that | * Perform locking on the data portion of a map. Note that |