Changeset 20d50a1 in mainline for arch/amd64


Ignore:
Timestamp:
2006-01-13T13:02:45Z (20 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
f9425006
Parents:
0369911
Message:

Memory management work.

  • vm.* → as.* (as like address space is, imho, more fitting)
  • Don't do TLB shootdown on vm_install(). Some architectures only need to call tlb_invalidate_asid().
  • Don't allocate all frames for as_area in as_area_create(), but let them be allocated on-demand by as_page_fault().
  • Add high-level page fault handler as_page_fault().
  • Add as_area_load_mapping().
Location:
arch/amd64
Files:
2 edited
1 moved

Legend:

Unmodified
Added
Removed
  • arch/amd64/include/mm/as.h

    r0369911 r20d50a1  
    2727 */
    2828
    29 #ifndef __amd64_VM_H__
    30 #define __amd64_VM_H__
     29#ifndef __amd64_AS_H__
     30#define __amd64_AS_H__
    3131
    3232#include <arch/types.h>
     
    4141#define UDATA_ADDRESS_ARCH      0x21000000
    4242
    43 #define vm_install_arch(vm)
     43#define as_install_arch(as)
    4444
    4545#endif
  • arch/amd64/src/interrupt.c

    r0369911 r20d50a1  
    3636#include <arch/asm.h>
    3737#include <mm/tlb.h>
     38#include <mm/as.h>
    3839#include <arch.h>
    3940#include <symtab.h>
     
    125126}
    126127
    127 
    128 
    129128void page_fault(int n, void *stack)
    130129{
    131         print_info_errcode(n,stack);
    132         printf("Page fault address: %Q\n", read_cr2());
    133         panic("page fault\n");
     130        __address page;
     131       
     132        page = read_cr2();
     133        if (!as_page_fault(page)) {
     134                print_info_errcode(n,stack);
     135                printf("Page fault address: %Q\n", page);
     136                panic("page fault\n");
     137        }
    134138}
    135139
  • arch/amd64/src/userspace.c

    r0369911 r20d50a1  
    3232#include <arch.h>
    3333#include <proc/thread.h>
    34 #include <mm/vm.h>
     34#include <mm/as.h>
    3535
    3636
Note: See TracChangeset for help on using the changeset viewer.