Changeset f15fe51 in mainline


Ignore:
Timestamp:
2006-02-17T21:12:44Z (19 years ago)
Author:
Ondrej Palkovsky <ondrap@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
9f3b880
Parents:
c1e43e4
Message:

Fixed mips-big endian TLB problems.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • arch/mips32/include/mm/tlb.h

    rc1e43e4 rf15fe51  
    5454union entry_lo {
    5555        struct {
     56#ifdef BIG_ENDIAN
     57                unsigned : 2;           /* zero */
     58                unsigned pfn : 24;      /* frame number */
     59                unsigned c : 3;         /* cache coherency attribute */
     60                unsigned d : 1;         /* dirty/write-protect bit */
     61                unsigned v : 1;         /* valid bit */
     62                unsigned g : 1;         /* global bit */
     63#else
    5664                unsigned g : 1;         /* global bit */
    5765                unsigned v : 1;         /* valid bit */
     
    6068                unsigned pfn : 24;      /* frame number */
    6169                unsigned : 2;           /* zero */
     70#endif
    6271        } __attribute__ ((packed));
    6372        __u32 value;
     
    6675/** Page Table Entry. */
    6776struct pte {
     77#ifdef BIG_ENDIAN
     78        unsigned a : 1;                 /**< Accessed bit. */
     79        unsigned w : 1;                 /**< Page writable bit. */
     80        unsigned pfn : 24;              /**< Physical frame number. */
     81        unsigned soft_valid : 1;        /**< Valid content even if not present. */
     82        unsigned : 1;                   /**< Unused. */
     83        unsigned cacheable : 1;         /**< Cacheable bit. */
     84        unsigned d : 1;                 /**< Dirty bit. */
     85        unsigned p : 1;                 /**< Present bit. */
     86        unsigned g : 1;                 /**< Global bit. */
     87#else
    6888        unsigned g : 1;                 /**< Global bit. */
    6989        unsigned p : 1;                 /**< Present bit. */
     
    7595        unsigned w : 1;                 /**< Page writable bit. */
    7696        unsigned a : 1;                 /**< Accessed bit. */
     97#endif
    7798};
    7899
    79100union entry_hi {
    80101        struct {
     102#ifdef BIG_ENDIAN
     103                unsigned vpn2 : 19;
     104                unsigned : 5;
     105                unsigned asid : 8;
     106#else
    81107                unsigned asid : 8;
    82108                unsigned : 5;
    83109                unsigned vpn2 : 19;
     110#endif
    84111        } __attribute__ ((packed));
    85112        __u32 value;
     
    88115union page_mask {
    89116        struct {
     117#ifdef BIG_ENDIAN
     118                unsigned : 7;
     119                unsigned mask : 12;
     120                unsigned : 13;
     121#else
    90122                unsigned : 13;
    91123                unsigned mask : 12;
    92124                unsigned : 7;
     125#endif
    93126        } __attribute__ ((packed));
    94127        __u32 value;
     
    97130union index {
    98131        struct {
     132#ifdef BIG_ENDIAN
     133                unsigned p : 1;
     134                unsigned : 27;
     135                unsigned index : 4;
     136#else
    99137                unsigned index : 4;
    100138                unsigned : 27;
    101139                unsigned p : 1;
     140#endif
    102141        } __attribute__ ((packed));
    103142        __u32 value;
Note: See TracChangeset for help on using the changeset viewer.