*参照元 [#o12e67f5]
#backlinks

*説明 [#e2fa6dbd]
-パス: [[linux-2.6.33/arch/arm/include/asm/cpu-multi32.h]]

-FIXME: これは何?
--説明
-変数はアセンブラ内で定義されているものが多い。
下記 processor 変数の定義も参照のこと。
--[[linux-2.6.33/processor(global)]]


**参考 [#yc336769]
-プロセッサごとの関数定義
 $ grep -rn processor_functions arch/arm/ | grep ENTRY
 arch/arm/mm/proc-arm6_7.S:279:ENTRY(arm6_processor_functions)
 arch/arm/mm/proc-arm6_7.S:296:ENTRY(arm7_processor_functions)
 arch/arm/mm/proc-arm720.S:182:ENTRY(arm720_processor_functions)
 arch/arm/mm/proc-arm740.S:127:ENTRY(arm740_processor_functions)
 arch/arm/mm/proc-arm7tdmi.S:65:ENTRY(arm7tdmi_processor_functions)
 arch/arm/mm/proc-arm940.S:324:ENTRY(arm940_processor_functions)
 arch/arm/mm/proc-arm946.S:379:ENTRY(arm946_processor_functions)
 arch/arm/mm/proc-arm9tdmi.S:65:ENTRY(arm9tdmi_processor_functions)
 arch/arm/mm/proc-sa110.S:200:ENTRY(sa110_processor_functions)
 arch/arm/mm/proc-sa1100.S:215:ENTRY(sa1100_processor_functions)
 arch/arm/mm/proc-v6.S:199:ENTRY(v6_processor_functions)
 arch/arm/mm/proc-v7.S:304:ENTRY(v7_processor_functions)
 arch/arm/mm/proc-xsc3.S:437:ENTRY(xsc3_processor_functions)
 arch/arm/mm/proc-xscale.S:513:ENTRY(xscale_processor_functions)
--[[linux-2.6.33/processor(global)]]


*実装 [#j363b8ad]
 /*
  * Don't change this structure - ASM code
  * relies on it.
  */
 extern struct processor {
 	/* MISC
 	 * get data abort address/flags
 	 */
 	void (*_data_abort)(unsigned long pc);
 	/*
 	 * Retrieve prefetch fault address
 	 */
 	unsigned long (*_prefetch_abort)(unsigned long lr);
 	/*
 	 * Set up any processor specifics
 	 */
 	void (*_proc_init)(void);
 	/*
 	 * Disable any processor specifics
 	 */
 	void (*_proc_fin)(void);
 	/*
 	 * Special stuff for a reset
 	 */
 	void (*reset)(unsigned long addr) __attribute__((noreturn));
 	/*
 	 * Idle the processor
 	 */
 	int (*_do_idle)(void);
 	/*
 	 * Processor architecture specific
 	 */
 	/*
 	 * clean a virtual address range from the
 	 * D-cache without flushing the cache.
 	 */
 	void (*dcache_clean_area)(void *addr, int size);
 
 	/*
 	 * Set the page table
 	 */
 	void (*switch_mm)(unsigned long pgd_phys, struct mm_struct *mm);
-
--[[linux-2.6.33/mm_struct]]

 	/*
 	 * Set a possibly extended PTE.  Non-extended PTEs should
 	 * ignore 'ext'.
 	 */
 	void (*set_pte_ext)(pte_t *ptep, pte_t pte, unsigned int ext);
-
--[[linux-2.6.33/ptd_t]]

 } processor;


*コメント [#d4640351]

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