/* UltraSPARC-III+ and later have a feature whereby you can *selectwhatpagesizethevariousData-TLBinstancesinthe *chip.Inordertogracefullysupportthis,weputtheversion *fieldinaspotoutsideoftheareasofthecontextregister *wherethisparameterisspecified.
*/ #define CTX_VERSION_SHIFT 22 #define CTX_VERSION_MASK ((~0UL) << CTX_VERSION_SHIFT)
/* Thus, when running on UltraSPARC-III+ and later, we use the following *PRIMARY_CONTEXTregistervaluesforthekernelcontext.
*/ #define CTX_CHEETAH_PLUS_NUC \
((CTX_PGSZ_KERN << CTX_PGSZ0_NUC_SHIFT) | \
(CTX_PGSZ_BASE << CTX_PGSZ1_NUC_SHIFT))
/* If you want "the TLB context number" use CTX_NR_MASK. If you *want"thebitsIprogramintothecontextregisters"use *CTX_HW_MASK.
*/ #define CTX_NR_MASK TAG_CONTEXT_BITS #define CTX_HW_MASK (CTX_NR_MASK | CTX_PGSZ_MASK)
/* ADI tags are stored when a page is swapped out and the storage for *tagsisallocateddynamically.Thereisatagstoragedescriptor *associatedwitheachsetoftagstoragepages.Tagstoragedescriptors *areallocateddynamically.Sincekernelwillallocateafullpagefor *eachtagstoragedescriptor,wecanstoreupto *PAGE_SIZE/sizeof(tagstoragedescriptor)descriptorsonthatpage.
*/ typedefstruct { unsignedlong start; /* Start address for this tag storage */ unsignedlong end; /* Last address for tag storage */ unsignedchar *tags; /* Where the tags are */ unsignedlong tag_users; /* number of references to descriptor */
} tag_storage_desc_t;
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.