Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/arch/sparc64/include/mm/tte.h

    rb4655da r965dc18  
    3636#define KERN_sparc64_TTE_H_
    3737
    38 #if defined (SUN4U)
    39 #include <arch/mm/sun4u/tte.h>
    40 #elif defined (SUN4V)
    41 #include <arch/mm/sun4v/tte.h>
     38#define TTE_G           (1 << 0)
     39#define TTE_W           (1 << 1)
     40#define TTE_P           (1 << 2)
     41#define TTE_E           (1 << 3)
     42#define TTE_CV          (1 << 4)
     43#define TTE_CP          (1 << 5)
     44#define TTE_L           (1 << 6)
     45
     46#define TTE_V_SHIFT     63
     47#define TTE_SIZE_SHIFT  61
     48
     49#ifndef __ASM__
     50
     51#include <arch/types.h>
     52
     53/* TTE tag's VA_tag field contains bits <63:VA_TAG_PAGE_SHIFT> of the VA */
     54#define VA_TAG_PAGE_SHIFT       22
     55
     56/** Translation Table Entry - Tag. */
     57union tte_tag {
     58        uint64_t value;
     59        struct {
     60                unsigned g : 1;         /**< Global. */
     61                unsigned : 2;           /**< Reserved. */
     62                unsigned context : 13;  /**< Context identifier. */
     63                unsigned : 6;           /**< Reserved. */
     64                uint64_t va_tag : 42;   /**< Virtual Address Tag, bits 63:22. */
     65        } __attribute__ ((packed));
     66};
     67
     68typedef union tte_tag tte_tag_t;
     69
     70/** Translation Table Entry - Data. */
     71union tte_data {
     72        uint64_t value;
     73        struct {
     74                unsigned v : 1;         /**< Valid. */
     75                unsigned size : 2;      /**< Page size of this entry. */
     76                unsigned nfo : 1;       /**< No-Fault-Only. */
     77                unsigned ie : 1;        /**< Invert Endianness. */
     78                unsigned soft2 : 9;     /**< Software defined field. */
     79#if defined (US)
     80                unsigned diag : 9;      /**< Diagnostic data. */
     81                unsigned pfn : 28;      /**< Physical Address bits, bits 40:13. */
     82#elif defined (US3)
     83                unsigned : 7;           /**< Reserved. */
     84                unsigned pfn : 30;      /**< Physical Address bits, bits 42:13 */
    4285#endif
     86                unsigned soft : 6;      /**< Software defined field. */
     87                unsigned l : 1;         /**< Lock. */
     88                unsigned cp : 1;        /**< Cacheable in physically indexed cache. */
     89                unsigned cv : 1;        /**< Cacheable in virtually indexed cache. */
     90                unsigned e : 1;         /**< Side-effect. */
     91                unsigned p : 1;         /**< Privileged. */
     92                unsigned w : 1;         /**< Writable. */
     93                unsigned g : 1;         /**< Global. */
     94        } __attribute__ ((packed));
     95};
     96
     97typedef union tte_data tte_data_t;
     98
     99#endif /* !def __ASM__ */
    43100
    44101#endif
Note: See TracChangeset for help on using the changeset viewer.