[[linux-2.6.33/fsr_info(global)]]

*参照元 [#p29b4726]
#backlinks

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

-FIXME: これは何?
--説明


**参考 [#j4f904e5]


*実装 [#y67fdd93]
 static struct fsr_info {
-
--[[linux-2.6.33/fsr_info]]

 	int	(*fn)(unsigned long addr, unsigned int fsr, struct pt_regs *regs);
 	int	sig;
 	int	code;
 	const char *name;
 } fsr_info[] = {
 	/*
 	 * The following are the standard ARMv3 and ARMv4 aborts.  ARMv5
 	 * defines these to be "precise" aborts.
 	 */
 	{ do_bad,		SIGSEGV, 0,		"vector exception"		   },
 	{ do_bad,		SIGILL,	 BUS_ADRALN,	"alignment exception"		   },
 	{ do_bad,		SIGKILL, 0,		"terminal exception"		   },
 	{ do_bad,		SIGILL,	 BUS_ADRALN,	"alignment exception"		   },
 	{ do_bad,		SIGBUS,	 0,		"external abort on linefetch"	   },
-
--[[linux-2.6.33/SIGSEGV]]
--[[linux-2.6.33/SIGILL]]
--[[linux-2.6.33/SIGKILL]]
--[[linux-2.6.33/SIGBUS]]
--[[linux-2.6.33/BUS_ADRALN]]
--[[linux-2.6.33/do_bad()]]

 	{ do_translation_fault,	SIGSEGV, SEGV_MAPERR,	"section translation fault"	   },
-
--[[linux-2.6.33/do_translation_fault()]]
--[[linux-2.6.33/SEGV_MAPERR]]

 	{ do_bad,		SIGBUS,	 0,		"external abort on linefetch"	   },
 	{ do_page_fault,	SIGSEGV, SEGV_MAPERR,	"page translation fault"	   },
-
--[[linux-2.6.33/do_page_fault()]]

 	{ do_bad,		SIGBUS,	 0,		"external abort on non-linefetch"  },
 	{ do_bad,		SIGSEGV, SEGV_ACCERR,	"section domain fault"		   },
-
--[[linux-2.6.33/SEGV_ACCERR]]

 	{ do_bad,		SIGBUS,	 0,		"external abort on non-linefetch"  },
 	{ do_bad,		SIGSEGV, SEGV_ACCERR,	"page domain fault"		   },
 	{ do_bad,		SIGBUS,	 0,		"external abort on translation"	   },
 	{ do_sect_fault,	SIGSEGV, SEGV_ACCERR,	"section permission fault"	   },
-
--[[linux-2.6.33/do_sect_fault()]]

 	{ do_bad,		SIGBUS,	 0,		"external abort on translation"	   },
 	{ do_page_fault,	SIGSEGV, SEGV_ACCERR,	"page permission fault"		   },
-
--[[linux-2.6.33/do_page_fault()]]

 	/*
 	 * The following are "imprecise" aborts, which are signalled by bit
 	 * 10 of the FSR, and may not be recoverable.  These are only
 	 * supported if the CPU abort handler supports bit 10.
 	 */
 	{ do_bad,		SIGBUS,  0,		"unknown 16"			   },
 	{ do_bad,		SIGBUS,  0,		"unknown 17"			   },
 	{ do_bad,		SIGBUS,  0,		"unknown 18"			   },
 	{ do_bad,		SIGBUS,  0,		"unknown 19"			   },
 	{ do_bad,		SIGBUS,  0,		"lock abort"			   }, /* xscale */
 	{ do_bad,		SIGBUS,  0,		"unknown 21"			   },
 	{ do_bad,		SIGBUS,  BUS_OBJERR,	"imprecise external abort"	   }, /* xscale */
-
--[[linux-2.6.33/BUS_OBJERR]]

 	{ do_bad,		SIGBUS,  0,		"unknown 23"			   },
 	{ do_bad,		SIGBUS,  0,		"dcache parity error"		   }, /* xscale */
 	{ do_bad,		SIGBUS,  0,		"unknown 25"			   },
 	{ do_bad,		SIGBUS,  0,		"unknown 26"			   },
 	{ do_bad,		SIGBUS,  0,		"unknown 27"			   },
 	{ do_bad,		SIGBUS,  0,		"unknown 28"			   },
 	{ do_bad,		SIGBUS,  0,		"unknown 29"			   },
 	{ do_bad,		SIGBUS,  0,		"unknown 30"			   },
 	{ do_bad,		SIGBUS,  0,		"unknown 31"			   }
 };


*コメント [#d0112d00]

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