Subversion Repositories HelenOS-historic

Rev

Rev 873 | Rev 897 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 873 Rev 877
Line 109... Line 109...
109
    struct {
109
    struct {
110
        unsigned long : 39; /**< Implementation dependent. */
110
        unsigned long : 39; /**< Implementation dependent. */
111
        unsigned nf : 1;    /**< Nonfaulting load. */
111
        unsigned nf : 1;    /**< Nonfaulting load. */
112
        unsigned asi : 8;   /**< ASI. */
112
        unsigned asi : 8;   /**< ASI. */
113
        unsigned tm : 1;    /**< TLB miss. */
113
        unsigned tm : 1;    /**< TLB miss. */
114
        unsigned : 3;
114
        unsigned : 1;
115
        unsigned ft : 5;    /**< Fault type. */
115
        unsigned ft : 7;    /**< Fault type. */
116
        unsigned e : 1;     /**< Side-effect bit. */
116
        unsigned e : 1;     /**< Side-effect bit. */
117
        unsigned ct : 2;    /**< Context Register selection. */
117
        unsigned ct : 2;    /**< Context Register selection. */
118
        unsigned pr : 1;    /**< Privilege bit. */
118
        unsigned pr : 1;    /**< Privilege bit. */
119
        unsigned w : 1;     /**< Write bit. */
119
        unsigned w : 1;     /**< Write bit. */
120
        unsigned ow : 1;    /**< Overwrite bit. */
120
        unsigned ow : 1;    /**< Overwrite bit. */
121
        unsigned fv : 1;    /**< Fayult Valid bit. */
121
        unsigned fv : 1;    /**< Fault Valid bit. */
122
    } __attribute__ ((packed));
122
    } __attribute__ ((packed));
123
};
123
};
124
typedef union tlb_sfsr_reg tlb_sfsr_reg_t;
124
typedef union tlb_sfsr_reg tlb_sfsr_reg_t;
125
 
125
 
126
/** Read MMU Primary Context Register.
126
/** Read MMU Primary Context Register.
Line 259... Line 259...
259
{
259
{
260
    asi_u64_write(ASI_IMMU, VA_IMMU_TAG_ACCESS, v);
260
    asi_u64_write(ASI_IMMU, VA_IMMU_TAG_ACCESS, v);
261
    flush();
261
    flush();
262
}
262
}
263
 
263
 
-
 
264
/** Read IMMU TLB Tag Access Register.
-
 
265
 *
-
 
266
 * @return Current value of IMMU TLB Tag Access Register.
-
 
267
 */
-
 
268
static inline __u64 itlb_tag_access_read(void)
-
 
269
{
-
 
270
    return asi_u64_read(ASI_IMMU, VA_IMMU_TAG_ACCESS);
-
 
271
}
-
 
272
 
264
/** Write DMMU TLB Tag Access Register.
273
/** Write DMMU TLB Tag Access Register.
265
 *
274
 *
266
 * @param v Value to be written.
275
 * @param v Value to be written.
267
 */
276
 */
268
static inline void dtlb_tag_access_write(__u64 v)
277
static inline void dtlb_tag_access_write(__u64 v)
269
{
278
{
270
    asi_u64_write(ASI_DMMU, VA_DMMU_TAG_ACCESS, v);
279
    asi_u64_write(ASI_DMMU, VA_DMMU_TAG_ACCESS, v);
271
    flush();
280
    flush();
272
}
281
}
273
 
282
 
-
 
283
/** Read DMMU TLB Tag Access Register.
-
 
284
 *
-
 
285
 * @return Current value of DMMU TLB Tag Access Register.
-
 
286
 */
-
 
287
static inline __u64 dtlb_tag_access_read(void)
-
 
288
{
-
 
289
    return asi_u64_read(ASI_DMMU, VA_DMMU_TAG_ACCESS);
-
 
290
}
-
 
291
 
-
 
292
 
274
/** Write IMMU TLB Data in Register.
293
/** Write IMMU TLB Data in Register.
275
 *
294
 *
276
 * @param v Value to be written.
295
 * @param v Value to be written.
277
 */
296
 */
278
static inline void itlb_data_in_write(__u64 v)
297
static inline void itlb_data_in_write(__u64 v)