Changeset b3f8fb7 in mainline for kernel/genarch/include/mm/as_ht.h


Ignore:
Timestamp:
2007-01-28T13:25:49Z (17 years ago)
Author:
Martin Decky <martin@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
8e8c1a5
Parents:
1ba41c5
Message:

huge type system cleanup
remove cyclical type dependencies across multiple header files
many minor coding style fixes

File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/genarch/include/mm/as_ht.h

    r1ba41c5 rb3f8fb7  
    3636#define KERN_AS_HT_H_
    3737
    38 #include <mm/as.h>
     38#include <mm/mm.h>
     39#include <arch/mm/asid.h>
     40#include <adt/list.h>
     41#include <adt/btree.h>
     42#include <synch/mutex.h>
    3943
    40 extern as_operations_t as_ht_operations;
     44/** Address space structure.
     45 *
     46 * as_t contains the list of as_areas of userspace accessible
     47 * pages for one or more tasks. Ranges of kernel memory pages are not
     48 * supposed to figure in the list as they are shared by all tasks and
     49 * set up during system initialization.
     50 */
     51typedef struct {
     52        /** Protected by asidlock. */
     53        link_t inactive_as_with_asid_link;
     54
     55        mutex_t lock;
     56
     57        /** Number of references (i.e tasks that reference this as). */
     58        count_t refcount;
     59
     60        /** Number of processors on wich is this address space active. */
     61        count_t cpu_refcount;
     62
     63        /** B+tree of address space areas. */
     64        btree_t as_area_btree;
     65
     66        /** Address space identifier. Constant on architectures that do not support ASIDs.*/
     67        asid_t asid;
     68       
     69        /** Architecture specific content. */
     70        as_arch_t arch;
     71} as_t;
     72
     73typedef struct {
     74        link_t link;            /**< Page hash table link. */
     75        as_t *as;               /**< Address space. */
     76        uintptr_t page;         /**< Virtual memory page. */
     77        uintptr_t frame;        /**< Physical memory frame. */
     78        unsigned g : 1;         /**< Global page. */
     79        unsigned x : 1;         /**< Execute. */
     80        unsigned w : 1;         /**< Writable. */
     81        unsigned k : 1;         /**< Kernel privileges required. */
     82        unsigned c : 1;         /**< Cacheable. */
     83        unsigned a : 1;         /**< Accessed. */
     84        unsigned d : 1;         /**< Dirty. */
     85        unsigned p : 1;         /**< Present. */
     86} pte_t;
    4187
    4288#endif
Note: See TracChangeset for help on using the changeset viewer.