-/*
- * System page table
- * Mbmap and Usrptmap are enlarged by CLSIZE entries
- * as they are managed by resource maps starting with index 1 or CLSIZE.
- */
-#define SYSMAP(mname, vname, npte) \
-_/**/mname: .globl _/**/mname; \
- .space (npte)*4; \
- .set _/**/vname,ptes*NBPG+SYSTEM; \
- .globl _/**/vname; \
- .set ptes,ptes + npte
-#define ZSYSMAP(mname, vname, npte) \
-_/**/mname: .globl _/**/mname; \
- .set _/**/vname,ptes*NBPG+SYSTEM; \
- .globl _/**/vname;
-
- .data
- # assumed to start at data mod 4096
- .set ptes,0
- SYSMAP(Sysmap,Sysbase,SYSPTSIZE)
- SYSMAP(Forkmap,forkutl,UPAGES)
- SYSMAP(Xswapmap,xswaputl,UPAGES)
- SYSMAP(Xswap2map,xswap2utl,UPAGES)
- SYSMAP(Swapmap,swaputl,UPAGES)
- SYSMAP(Pushmap,pushutl,UPAGES)
- SYSMAP(Vfmap,vfutl,UPAGES)
- SYSMAP(CMAP1,CADDR1,1)
- SYSMAP(CMAP2,CADDR2,1)
- SYSMAP(mmap,vmmap,1)
- SYSMAP(alignmap,alignutl,1) /* XXX */
- SYSMAP(msgbufmap,msgbuf,MSGBUFPTECNT)
- /* SYSMAP(EMCmap,EMCbase,1) */
- SYSMAP(Npxmap,npxutl,UPAGES)
- SYSMAP(Swtchmap,Swtchbase,UPAGES)
- .set mbxxx,(NMBCLUSTERS*MCLBYTES)
- .set mbyyy,(mbxxx>>PGSHIFT)
- .set mbpgs,(mbyyy+CLSIZE)
- SYSMAP(Mbmap,mbutl,mbpgs)
- /*
- * XXX: NEED way to compute kmem size from maxusers,
- * device complement
- */
- SYSMAP(kmempt,kmembase,300*CLSIZE)
-#ifdef GPROF
- SYSMAP(profmap,profbase,600*CLSIZE)
-#endif
- .set atmemsz,0x100000-0xa0000
- .set atpgs,(atmemsz>>PGSHIFT)
- SYSMAP(ATDevmem,atdevbase,atpgs)
- SYSMAP(Usriomap,usrio,USRIOSIZE+CLSIZE) /* for PHYSIO */
- ZSYSMAP(ekmempt,kmemlimit,0)
- SYSMAP(Usrptmap,usrpt,USRPTSIZE+CLSIZE)
-
-eSysmap:
- # .set _Syssize,(eSysmap-_Sysmap)/4
- .set _Syssize,ptes
- .globl _Syssize
-
- /* align on next page boundary */
- # . = . + NBPG - 1 & -NBPG /* align to page boundry-does not work*/
- # .space (PGSIZE - ((eSysmap-_Sysmap) % PGSIZE)) % PGSIZE
- .set sz,(4*ptes)%NBPG
- # .set rptes,(ptes)%1024
- # .set rptes,1024-rptes
- # .set ptes,ptes+rptes
- .set Npdes,8
- # .space (NBPG - sz)
-