/* UltraSPARC-III+ and later have a feature whereby you can * select what page size the various Data-TLB instances in the * chip. In order to gracefully support this, we put the version * field in a spot outside of the areas of the context register * where this parameter is specified.
*/ #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_CONTEXT register values for the kernel context.
*/ #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 "the bits I program into the context registers" 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 * tags is allocated dynamically. There is a tag storage descriptor * associated with each set of tag storage pages. Tag storage descriptors * are allocated dynamically. Since kernel will allocate a full page for * each tag storage descriptor, we can store up to * PAGE_SIZE/sizeof(tag storage descriptor) descriptors on that page.
*/ 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.