*参照元 [#t353b33b]
#backlinks

*説明 [#wf05c71b]
-パス: [[linux-2.6.33/]]

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


**引数 [#uf337ba7]
-
--

**返り値 [#qf61c5c2]
-
--

**参考 [#cdd45586]


*実装 [#i41ec67f]
  void __init early_trap_init(void)
  {
  	unsigned long vectors = CONFIG_VECTORS_BASE;
  	extern char __stubs_start[], __stubs_end[];
  	extern char __vectors_start[], __vectors_end[];
  	extern char __kuser_helper_start[], __kuser_helper_end[];
  	int kuser_sz = __kuser_helper_end - __kuser_helper_start;
  
  	/*
  	 * Copy the vectors, stubs and kuser helpers (in entry-armv.S)
  	 * into the vector page, mapped at 0xffff0000, and ensure these
  	 * are visible to the instruction stream.
  	 */
  	memcpy((void *)vectors, __vectors_start, __vectors_end - __vectors_start);
  	memcpy((void *)vectors + 0x200, __stubs_start, __stubs_end - __stubs_start);
  	memcpy((void *)vectors + 0x1000 - kuser_sz, __kuser_helper_start, kuser_sz);
  
  	/*
  	 * Copy signal return handlers into the vector page, and
  	 * set sigreturn to be a pointer to these.
  	 */
  	memcpy((void *)KERN_SIGRETURN_CODE, sigreturn_codes,
  	       sizeof(sigreturn_codes));
  	memcpy((void *)KERN_RESTART_CODE, syscall_restart_code,
  	       sizeof(syscall_restart_code));
  
  	flush_icache_range(vectors, vectors + PAGE_SIZE);
  	modify_domain(DOMAIN_USER, DOMAIN_CLIENT);
  }


*コメント [#qe67de77]

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS