*参照元 [#zc06b65e]
#backlinks

*説明 [#ic6124fa]
-パス: [[linux-2.6.33/arch/arm/mm/fault.c]]

-フォールトステータスレジスタのフォールトステータス(FS)フィールドを返す。
--説明
 IFSR と DFSR
 ------------
 仮想メモリシステムアーキテクチャ(VMSA)にて、
 アドレス変換に失敗したときなどにセットされる。
 
 VMSA のコプロセッサ名は CP15
      | CRn  opc1  CRm  opc2 | 読み出し例
 -----+----------------------+--------------------------
 IFSR |  c5     0   c0     0 | mrc p15, 0, r0, c5, c0, 0
 DFSR |  c5     0   c0     1 | mrc p15, 0, r0, c5, c0, 0
 -----+----------------------+--------------------------
 
 IFSR
 ----
  31                   13 12 11 10  9  8  7  6  5  4  3  2  1  0
 |                       |  |  |  |                 |           |
 ------------------------+--+--+--+-----------------+------------
   |                       |  |  |  |                 `- FS[3:0]
   |                       |  |  |  `- UNK/SBZP
   |                       |  |  `- FS[4]
   |                       |  `- 0 固定
   |                       `- ExT
   `- UNK/SBZP
 
 DFSR
 ----
  31                   13 12 11 10  9  8  7  6  5  4  3  2  1  0
 |                       |  |  |  |     |           |           |
 ------------------------+--+--+--+-----+-----------+------------
   |                       |  |  |  |     |            `- FS[3:0]
   |                       |  |  |  |     `- ドメイン
   |                       |  |  |  `- UNK/SBZP
   |                       |  |  `- FS[4]
   |                       |  `- WnR
   |                       `- ExT
   `- UNK/SBZP


**引数 [#p80ba5bb]
-unsigned int fsr
--フォールトステータスレジスタの値


**返り値 [#d2685f02]
-フォールトステータス(FS)フィールドの値


**参考 [#m91da7c0]


*実装 [#ze82ed1c]
 /*
  * Fault status register encodings.  We steal bit 31 for our own purposes.
  */
 #define FSR_LNX_PF		(1 << 31)
 #define FSR_WRITE		(1 << 11)
 #define FSR_FS4			(1 << 10)
 #define FSR_FS3_0		(15)
 
 static inline int fsr_fs(unsigned int fsr)
 {
 	return (fsr & FSR_FS3_0) | (fsr & FSR_FS4) >> 6;
-フォルトステータスビット(4ビット)は飛び地になっているため、
IFSR[10]/DFSR[10] と IFSR[3:0]/DFSR[3:0] を連結して返す。
 

 }


*コメント [#ce991490]

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS