Subversion Repositories HelenOS-historic

Rev

Rev 1070 | Rev 1149 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1070 Rev 1147
Line 34... Line 34...
34
#include <arch/mm/asid.h>
34
#include <arch/mm/asid.h>
35
#include <arch/types.h>
35
#include <arch/types.h>
36
#include <typedefs.h>
36
#include <typedefs.h>
37
#include <synch/spinlock.h>
37
#include <synch/spinlock.h>
38
#include <adt/list.h>
38
#include <adt/list.h>
-
 
39
#include <adt/btree.h>
39
 
40
 
40
/** Defined to be true if user address space and kernel address space shadow each other. */
41
/** Defined to be true if user address space and kernel address space shadow each other. */
41
#define KERNEL_ADDRESS_SPACE_SHADOWED   KERNEL_ADDRESS_SPACE_SHADOWED_ARCH
42
#define KERNEL_ADDRESS_SPACE_SHADOWED   KERNEL_ADDRESS_SPACE_SHADOWED_ARCH
42
 
43
 
43
#define KERNEL_ADDRESS_SPACE_START  KERNEL_ADDRESS_SPACE_START_ARCH
44
#define KERNEL_ADDRESS_SPACE_START  KERNEL_ADDRESS_SPACE_START_ARCH
Line 61... Line 62...
61
 * Each as_area_t structure describes one contiguous area of virtual memory.
62
 * Each as_area_t structure describes one contiguous area of virtual memory.
62
 * In the future, it should not be difficult to support shared areas.
63
 * In the future, it should not be difficult to support shared areas.
63
 */
64
 */
64
struct as_area {
65
struct as_area {
65
    SPINLOCK_DECLARE(lock);
66
    SPINLOCK_DECLARE(lock);
66
    link_t link;
-
 
67
    int flags;
67
    int flags;
68
    count_t pages;      /**< Size of this area in multiples of PAGE_SIZE. */
68
    count_t pages;      /**< Size of this area in multiples of PAGE_SIZE. */
69
    __address base;     /**< Base address of this area. */
69
    __address base;     /**< Base address of this area. */
70
};
70
};
71
 
71
 
Line 83... Line 83...
83
    SPINLOCK_DECLARE(lock);
83
    SPINLOCK_DECLARE(lock);
84
 
84
 
85
    /** Number of processors on wich is this address space active. */
85
    /** Number of processors on wich is this address space active. */
86
    count_t refcount;
86
    count_t refcount;
87
 
87
 
-
 
88
    /** B+-tree of address space areas. */
88
    link_t as_area_head;
89
    btree_t as_area_btree;
89
 
90
 
90
    /** Page table pointer. Constant on architectures that use global page hash table. */
91
    /** Page table pointer. Constant on architectures that use global page hash table. */
91
    pte_t *page_table;
92
    pte_t *page_table;
92
 
93
 
93
    /** Address space identifier. Constant on architectures that do not support ASIDs.*/
94
    /** Address space identifier. Constant on architectures that do not support ASIDs.*/