Changeset bd1deed in mainline for kernel/generic/include/mm/as.h


Ignore:
Timestamp:
2007-02-11T20:04:08Z (17 years ago)
Author:
Martin Decky <martin@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
c993e45
Parents:
ce8aed1
Message:

experimental support for Objective C
(disabled by default)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/generic/include/mm/as.h

    rce8aed1 rbd1deed  
    8080/** The page fault was caused by memcpy_from_uspace() or memcpy_to_uspace(). */
    8181#define AS_PF_DEFER             2
     82
     83#ifdef __OBJC__
     84@interface as_t {
     85        @public
     86                /** Protected by asidlock. */
     87                link_t inactive_as_with_asid_link;
     88               
     89                mutex_t lock;
     90               
     91                /** Number of references (i.e tasks that reference this as). */
     92                count_t refcount;
     93               
     94                /** Number of processors on wich is this address space active. */
     95                count_t cpu_refcount;
     96               
     97                /** B+tree of address space areas. */
     98                btree_t as_area_btree;
     99               
     100                /**
     101                 *  Address space identifier.
     102                 *  Constant on architectures that do not support ASIDs.
     103                 */
     104                asid_t asid;
     105               
     106                /** Non-generic content. */
     107                as_genarch_t genarch;
     108               
     109                /** Architecture specific content. */
     110                as_arch_t arch;
     111}
     112+ (pte_t *) page_table_create: (int) flags;
     113+ (void) page_table_destroy: (pte_t *) page_table;
     114- (void) page_table_lock: (bool) _lock;
     115- (void) page_table_unlock: (bool) unlock;
     116@end
     117
     118#else
    82119
    83120/** Address space structure.
     
    122159        void (* page_table_unlock)(as_t *as, bool unlock);
    123160} as_operations_t;
     161#endif
    124162
    125163/**
     
    202240
    203241extern as_t *AS_KERNEL;
     242
     243#ifndef __OBJC__
    204244extern as_operations_t *as_operations;
     245#endif
    205246
    206247SPINLOCK_EXTERN(inactive_as_with_asid_lock);
Note: See TracChangeset for help on using the changeset viewer.