在include/asm-mips/pgtable.h中,定義了pte_none和pte_present等巨集
#define pte_none(pte) (!(pte_val(pte) & ~_page_global))
#define pte_present(pte) (pte_val(pte) & _page_present)
另外對於32位機器,#include
#ifdef config_32bit
#include
#endif
#ifdef config_64bit
#include
#endif
在include/asm-mips/pgtable-32.h中定義了__pgd_offset、__pud_offset、__pmd_offset等,也定義了pgdir_shift、pgdir_size、pgdir_mask和pgd_offset等巨集:
#define __pgd_offset(address) pgd_index(address)
#define __pud_offset(address) (((address) >> pud_shift) & (ptrs_per_pud-1))
#define __pmd_offset(address) (((address) >> pmd_shift) & (ptrs_per_pmd-1))
#define pgdir_shift (2 * page_shift + pte_order - pte_t_log2)
#define pgdir_size (1ul << pgdir_shift)
#define pgdir_mask (~(pgdir_size-1))
/* to find an entry in a page-table-directory */
#define pgd_offset(mm, addr) ((mm)->pgd + pgd_index(addr))
另外#include
#include
在include/asm-mips/page.h中定義了pte_val、pgd_val、pgprot_val等結構體和page_shift等巨集
typedef struct pte_t;
#define pte_val(x) ((x).pte)
#define __pte(x) ((pte_t) )
/** finall the top of the hierarchy, the pgd
*/typedef struct pgd_t;
#define pgd_val(x) ((x).pgd)
#define __pgd(x) ((pgd_t) )
/** manipulate page protection bits
*/typedef struct pgprot_t;
#define pgprot_val(x) ((x).pgprot)
#define __pgprot(x) ((pgprot_t) )
#ifdef config_page_size_4kb
#define page_shift 12
#endif
在include/asm-generic/pgtable-nopmd.h中定義了pmd_val、pmd_shift、ptrs_per_pmd、pmd_size、pmd_mask等巨集
#define pmd_shift pud_shift
#define ptrs_per_pmd 1
#define pmd_size (1ul << pmd_shift)
#define pmd_mask (~(pmd_size-1))
在include/asm-generic/pgtable-nopmd.h中#include
在include/asm-generic/pgtable-nopud.h中定義了pud_val、pud_shift、ptrs_per_pud、pud_size、pud_mask等巨集
MIPS彙編 MIPS32中通用暫存器的使用約定
這段時間一直在學習mips32彙編。mips32並沒有強制指定通用暫存器的使用規則 除了0號暫存器始終為0,比較特殊 但是在實際使用中大家都會遵循一系列的約定。這裡以 的方式予以展示,當作是做個筆記,方便自己以後回看。名稱暫存器號 用途呼叫時是否儲存 zero 0常數0 不適用 v0 v1 2 3計...
DDR3中bank, 16bit和32bit等概念
ddr3中bank,16bit和32bit等概念 最近在看記憶體相關的東東。以前認為記憶體就是塊資源,需要的時候,malloc出來一部分使用即可。對內部的東東沒有深入了解過。剛開始看起來,感覺有點丈二和尚。通過各種查詢,並請教牛人,對基本概念有了個初步了解,先總結一把。先說說bank。看到bank首...
DDR3中bank, 16bit和32bit等概念
ddr3中bank,16bit和32bit等概念 最近在看記憶體相關的東東。以前認為記憶體就是塊資源,需要的時候,malloc出來一部分使用即可。對內部的東東沒有深入了解過。剛開始看起來,感覺有點丈二和尚。通過各種查詢,並請教牛人,對基本概念有了個初步了解,先總結一把。先說說bank。看到bank首...