Current Path : /usr/local/lib/perl5/site_perl/5.8.9/mach/machine/ |
FreeBSD hs32.drive.ne.jp 9.1-RELEASE FreeBSD 9.1-RELEASE #1: Wed Jan 14 12:18:08 JST 2015 root@hs32.drive.ne.jp:/sys/amd64/compile/hs32 amd64 |
Current File : //usr/local/lib/perl5/site_perl/5.8.9/mach/machine/pmap.ph |
require '_h2ph_pre.ph'; no warnings 'redefine'; unless(defined(&_MACHINE_PMAP_H_)) { eval 'sub _MACHINE_PMAP_H_ () {1;}' unless defined(&_MACHINE_PMAP_H_); eval 'sub PG_V () {0x1;}' unless defined(&PG_V); eval 'sub PG_RW () {0x2;}' unless defined(&PG_RW); eval 'sub PG_U () {0x4;}' unless defined(&PG_U); eval 'sub PG_NC_PWT () {0x8;}' unless defined(&PG_NC_PWT); eval 'sub PG_NC_PCD () {0x10;}' unless defined(&PG_NC_PCD); eval 'sub PG_A () {0x20;}' unless defined(&PG_A); eval 'sub PG_M () {0x40;}' unless defined(&PG_M); eval 'sub PG_PS () {0x80;}' unless defined(&PG_PS); eval 'sub PG_PTE_PAT () {0x80;}' unless defined(&PG_PTE_PAT); eval 'sub PG_G () {0x100;}' unless defined(&PG_G); eval 'sub PG_AVAIL1 () {0x200;}' unless defined(&PG_AVAIL1); eval 'sub PG_AVAIL2 () {0x400;}' unless defined(&PG_AVAIL2); eval 'sub PG_AVAIL3 () {0x800;}' unless defined(&PG_AVAIL3); eval 'sub PG_PDE_PAT () {0x1000;}' unless defined(&PG_PDE_PAT); eval 'sub PG_NX () {(1<<63);}' unless defined(&PG_NX); eval 'sub PG_W () { &PG_AVAIL1;}' unless defined(&PG_W); eval 'sub PG_MANAGED () { &PG_AVAIL2;}' unless defined(&PG_MANAGED); eval 'sub PG_FRAME () {(0xffffffffff000);}' unless defined(&PG_FRAME); eval 'sub PG_PS_FRAME () {(0xfffffffe00000);}' unless defined(&PG_PS_FRAME); eval 'sub PG_PROT () {( &PG_RW| &PG_U);}' unless defined(&PG_PROT); eval 'sub PG_N () {( &PG_NC_PWT| &PG_NC_PCD);}' unless defined(&PG_N); eval 'sub PG_PDE_CACHE () {( &PG_PDE_PAT | &PG_NC_PWT | &PG_NC_PCD);}' unless defined(&PG_PDE_CACHE); eval 'sub PG_PTE_CACHE () {( &PG_PTE_PAT | &PG_NC_PWT | &PG_NC_PCD);}' unless defined(&PG_PTE_CACHE); eval 'sub PG_PTE_PROMOTE () {( &PG_NX | &PG_MANAGED | &PG_W | &PG_G | &PG_PTE_PAT | &PG_M | &PG_A | &PG_NC_PCD | &PG_NC_PWT | &PG_U | &PG_RW | &PG_V);}' unless defined(&PG_PTE_PROMOTE); eval 'sub PGEX_P () {0x1;}' unless defined(&PGEX_P); eval 'sub PGEX_W () {0x2;}' unless defined(&PGEX_W); eval 'sub PGEX_U () {0x4;}' unless defined(&PGEX_U); eval 'sub PGEX_RSV () {0x8;}' unless defined(&PGEX_RSV); eval 'sub PGEX_I () {0x10;}' unless defined(&PGEX_I); eval 'sub KVADDR { my($l4, $l3, $l2, $l1) = @_; eval q(( (-1<< 47) | ( << &PML4SHIFT) | ( << &PDPSHIFT) | ( << &PDRSHIFT) | (($l1) << &PAGE_SHIFT))); }' unless defined(&KVADDR); eval 'sub UVADDR { my($l4, $l3, $l2, $l1) = @_; eval q(( ( << &PML4SHIFT) | ( << &PDPSHIFT) | ( << &PDRSHIFT) | (($l1) << &PAGE_SHIFT))); }' unless defined(&UVADDR); unless(defined(&NKPT)) { eval 'sub NKPT () {32;}' unless defined(&NKPT); } eval 'sub NKPML4E () {1;}' unless defined(&NKPML4E); eval 'sub NKPDPE () { &howmany( &NKPT, &NPDEPG);}' unless defined(&NKPDPE); eval 'sub NUPML4E () {( &NPML4EPG/2);}' unless defined(&NUPML4E); eval 'sub NUPDPE () {( &NUPML4E* &NPDPEPG);}' unless defined(&NUPDPE); eval 'sub NUPDE () {( &NUPDPE* &NPDEPG);}' unless defined(&NUPDE); eval 'sub NDMPML4E () {2;}' unless defined(&NDMPML4E); eval 'sub PML4PML4I () {( &NPML4EPG/2);}' unless defined(&PML4PML4I); eval 'sub KPML4I () {( &NPML4EPG-1);}' unless defined(&KPML4I); eval 'sub DMPML4I () { &rounddown( &KPML4I - &NDMPML4E, &NDMPML4E);}' unless defined(&DMPML4I); eval 'sub KPDPI () {( &NPDPEPG-2);}' unless defined(&KPDPI); eval 'sub ISA_HOLE_START () {0xa0000;}' unless defined(&ISA_HOLE_START); eval 'sub ISA_HOLE_LENGTH () {(0x100000- &ISA_HOLE_START);}' unless defined(&ISA_HOLE_LENGTH); unless(defined(&LOCORE)) { require 'sys/queue.ph'; require 'sys/_cpuset.ph'; require 'sys/_lock.ph'; require 'sys/_mutex.ph'; eval 'sub PML4ESHIFT () {(3);}' unless defined(&PML4ESHIFT); eval 'sub PDPESHIFT () {(3);}' unless defined(&PDPESHIFT); eval 'sub PTESHIFT () {(3);}' unless defined(&PTESHIFT); eval 'sub PDESHIFT () {(3);}' unless defined(&PDESHIFT); if(defined(&_KERNEL)) { eval 'sub addr_PTmap () {( &KVADDR( &PML4PML4I, 0, 0, 0));}' unless defined(&addr_PTmap); eval 'sub addr_PDmap () {( &KVADDR( &PML4PML4I, &PML4PML4I, 0, 0));}' unless defined(&addr_PDmap); eval 'sub addr_PDPmap () {( &KVADDR( &PML4PML4I, &PML4PML4I, &PML4PML4I, 0));}' unless defined(&addr_PDPmap); eval 'sub addr_PML4map () {( &KVADDR( &PML4PML4I, &PML4PML4I, &PML4PML4I, &PML4PML4I));}' unless defined(&addr_PML4map); eval 'sub addr_PML4pml4e () {( &addr_PML4map + ( &PML4PML4I * $sizeof{ &pml4_entry_t}));}' unless defined(&addr_PML4pml4e); eval 'sub PTmap () {(( &pt_entry_t *)( &addr_PTmap));}' unless defined(&PTmap); eval 'sub PDmap () {(( &pd_entry_t *)( &addr_PDmap));}' unless defined(&PDmap); eval 'sub PDPmap () {(( &pd_entry_t *)( &addr_PDPmap));}' unless defined(&PDPmap); eval 'sub PML4map () {(( &pd_entry_t *)( &addr_PML4map));}' unless defined(&PML4map); eval 'sub PML4pml4e () {(( &pd_entry_t *)( &addr_PML4pml4e));}' unless defined(&PML4pml4e); eval 'sub vtophys { my($va) = @_; eval q( &pmap_kextract((( &vm_offset_t) ($va)))); }' unless defined(&vtophys); eval 'sub pte_load { my($ptep) = @_; eval q({ &pt_entry_t &r; &r = *$ptep; ( &r); }); }' unless defined(&pte_load); eval 'sub pte_load_store { my($ptep,$pte) = @_; eval q({ &pt_entry_t &r; &__asm &__volatile( \\"xchgq %0,%1\\" : \\"=m\\" (*$ptep), \\"=r\\" ( &r) : \\"1\\" ($pte), \\"m\\" (*$ptep)); ( &r); }); }' unless defined(&pte_load_store); eval 'sub pte_load_clear { my($pte) = @_; eval q( &atomic_readandclear_long($pte)); }' unless defined(&pte_load_clear); eval 'sub pte_store { my($ptep,$pte) = @_; eval q({ *$ptep = $pte; }); }' unless defined(&pte_store); eval 'sub pte_clear { my($ptep) = @_; eval q( &pte_store(($ptep), ( &pt_entry_t)0)); }' unless defined(&pte_clear); eval 'sub pde_store { my($pdep, $pde) = @_; eval q( &pte_store(($pdep), ($pde))); }' unless defined(&pde_store); } if(defined(&_KERNEL)) { eval 'sub kernel_pmap () {( &kernel_pmap_store);}' unless defined(&kernel_pmap); eval 'sub PMAP_LOCK { my($pmap) = @_; eval q( &mtx_lock(($pmap)-> &pm_mtx)); }' unless defined(&PMAP_LOCK); eval 'sub PMAP_LOCK_ASSERT { my($pmap, $type) = @_; eval q( &mtx_assert(($pmap)-> &pm_mtx, ($type))); }' unless defined(&PMAP_LOCK_ASSERT); eval 'sub PMAP_LOCK_DESTROY { my($pmap) = @_; eval q( &mtx_destroy(($pmap)-> &pm_mtx)); }' unless defined(&PMAP_LOCK_DESTROY); eval 'sub PMAP_LOCK_INIT { my($pmap) = @_; eval q( &mtx_init(($pmap)-> &pm_mtx, \\"pmap\\", &NULL, &MTX_DEF | &MTX_DUPOK)); }' unless defined(&PMAP_LOCK_INIT); eval 'sub PMAP_LOCKED { my($pmap) = @_; eval q( &mtx_owned(($pmap)-> &pm_mtx)); }' unless defined(&PMAP_LOCKED); eval 'sub PMAP_MTX { my($pmap) = @_; eval q((($pmap)-> &pm_mtx)); }' unless defined(&PMAP_MTX); eval 'sub PMAP_TRYLOCK { my($pmap) = @_; eval q( &mtx_trylock(($pmap)-> &pm_mtx)); }' unless defined(&PMAP_TRYLOCK); eval 'sub PMAP_UNLOCK { my($pmap) = @_; eval q( &mtx_unlock(($pmap)-> &pm_mtx)); }' unless defined(&PMAP_UNLOCK); } eval 'sub _NPCM () {3;}' unless defined(&_NPCM); eval 'sub _NPCPV () {168;}' unless defined(&_NPCPV); if(defined(&_KERNEL)) { eval 'sub pmap_page_get_memattr { my($m) = @_; eval q((( &vm_memattr_t)($m)-> ($md->{pat_mode}))); }' unless defined(&pmap_page_get_memattr); eval 'sub pmap_unmapbios { my($va, $sz) = @_; eval q( &pmap_unmapdev(($va), ($sz))); }' unless defined(&pmap_unmapbios); } } } 1;