Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Enumerations | Functions | Variables
tlbex.c File Reference
#include <linux/bug.h>
#include <linux/kernel.h>
#include <linux/types.h>
#include <linux/smp.h>
#include <linux/string.h>
#include <linux/init.h>
#include <linux/cache.h>
#include <asm/cacheflush.h>
#include <asm/pgtable.h>
#include <asm/war.h>
#include <asm/uasm.h>
#include <asm/setup.h>

Go to the source code of this file.

Data Structures

struct  work_registers
 
struct  tlb_reg_save
 
struct  mips_huge_tlb_info
 

Macros

#define K0   26
 
#define K1   27
 
#define C0_INDEX   0, 0
 
#define C0_ENTRYLO0   2, 0
 
#define C0_TCBIND   2, 2
 
#define C0_ENTRYLO1   3, 0
 
#define C0_CONTEXT   4, 0
 
#define C0_PAGEMASK   5, 0
 
#define C0_BADVADDR   8, 0
 
#define C0_ENTRYHI   10, 0
 
#define C0_EPC   14, 0
 
#define C0_XCONTEXT   20, 0
 
#define GET_CONTEXT(buf, reg)   UASM_i_MFC0(buf, reg, C0_CONTEXT)
 
#define LOC_PTEP   ptr
 
#define MIPS64_REFILL_INSNS   32
 
#define FASTPATH_SIZE   128
 

Enumerations

enum  label_id {
  label_clear_nopref = 1, label_clear_pref, label_copy_nopref, label_copy_pref_both,
  label_copy_pref_store, label_second_part = 1, label_leave, label_vmalloc,
  label_vmalloc_done, label_tlbw_hazard_0, label_split = label_tlbw_hazard_0 + 8, label_tlbl_goaround1,
  label_tlbl_goaround2, label_nopage_tlbl, label_nopage_tlbs, label_nopage_tlbm,
  label_smp_pgtable_change, label_r3000_write_probe_fail, label_large_segbits_fault
}
 
enum  vmalloc64_mode { not_refill, refill_scratch, refill_noscratch }
 
enum  tlb_write_entry { tlb_random, tlb_indexed }
 

Functions

void tlb_do_page_fault_0 (void)
 
void tlb_do_page_fault_1 (void)
 
void __cpuinit build_tlb_refill_handler (void)
 
void __cpuinit flush_tlb_handlers (void)
 

Variables

struct tlb_reg_save ____cacheline_aligned_in_smp
 
unsigned long pgd_current []
 
u32 handle_tlbl[FASTPATH_SIZE__cacheline_aligned
 

Macro Definition Documentation

#define C0_BADVADDR   8, 0

Definition at line 235 of file tlbex.c.

#define C0_CONTEXT   4, 0

Definition at line 233 of file tlbex.c.

#define C0_ENTRYHI   10, 0

Definition at line 236 of file tlbex.c.

#define C0_ENTRYLO0   2, 0

Definition at line 230 of file tlbex.c.

#define C0_ENTRYLO1   3, 0

Definition at line 232 of file tlbex.c.

#define C0_EPC   14, 0

Definition at line 237 of file tlbex.c.

#define C0_INDEX   0, 0

Definition at line 229 of file tlbex.c.

#define C0_PAGEMASK   5, 0

Definition at line 234 of file tlbex.c.

#define C0_TCBIND   2, 2

Definition at line 231 of file tlbex.c.

#define C0_XCONTEXT   20, 0

Definition at line 238 of file tlbex.c.

#define FASTPATH_SIZE   128

Definition at line 1446 of file tlbex.c.

#define GET_CONTEXT (   buf,
  reg 
)    UASM_i_MFC0(buf, reg, C0_CONTEXT)

Definition at line 243 of file tlbex.c.

#define K0   26

Definition at line 225 of file tlbex.c.

#define K1   27

Definition at line 226 of file tlbex.c.

#define LOC_PTEP   ptr
#define MIPS64_REFILL_INSNS   32

Definition at line 1267 of file tlbex.c.

Enumeration Type Documentation

enum label_id
Enumerator:
label_clear_nopref 
label_clear_pref 
label_copy_nopref 
label_copy_pref_both 
label_copy_pref_store 
label_second_part 
label_leave 
label_vmalloc 
label_vmalloc_done 
label_tlbw_hazard_0 
label_split 
label_tlbl_goaround1 
label_tlbl_goaround2 
label_nopage_tlbl 
label_nopage_tlbs 
label_nopage_tlbm 
label_smp_pgtable_change 
label_r3000_write_probe_fail 
label_large_segbits_fault 

Definition at line 146 of file tlbex.c.

Enumerator:
tlb_random 
tlb_indexed 

Definition at line 462 of file tlbex.c.

Enumerator:
not_refill 
refill_scratch 
refill_noscratch 

Definition at line 287 of file tlbex.c.

Function Documentation

void __cpuinit build_tlb_refill_handler ( void  )

Definition at line 2131 of file tlbex.c.

void __cpuinit flush_tlb_handlers ( void  )

Definition at line 2189 of file tlbex.c.

void tlb_do_page_fault_0 ( void  )
void tlb_do_page_fault_1 ( void  )

Variable Documentation

struct tlb_reg_save ____cacheline_aligned_in_smp
u32 handle_tlbm [FASTPATH_SIZE] __cacheline_aligned

Definition at line 1448 of file tlbex.c.

unsigned long pgd_current[]

Definition at line 470 of file init.c.