- 论坛徽章:
- 0
|
- void * kmap_atomic(struct page * page, enum km_type type)
- {
- enum fixed_addresses idx;
- unsigned long vaddr;
- current_thread_info( )->preempt_count++;
- if (!PageHighMem(page))
- return page_address(page);
- idx = type + KM_TYPE_NR * smp_processor_id( );
- vaddr = fix_to_virt(FIX_KMAP_BEGIN + idx);
- set_pte(kmap_pte-idx, mk_pte(page, 0x063));
- _ _flush_tlb_single(vaddr);
- return (void *) vaddr;
- }
复制代码 以上是临时内核映射的代码,我的问题是变量kmap_pte是什么?代码vaddr = fix_to_virt(FIX_KMAP_BEGIN + idx);得
到的值是什么?为什么设置pte表项的值与vaddr毫无关系? |
|