/*********************************************************************** * file: h/sys/Pspace.h * part#: * internal sequence#: * * ************************************************************** * * " c Copyright Hewlett-Packard Company, 1984.* All * * * rights are reserved. Copying or other reproduction * * * of this program except for archival purposes is * * * prohibited without the prior written consent of * * * Hewlett-Packard Company." * * ************************************************************** * * This header file defines the Pisces specific memory map * The map is as follows: * * RAMTOP * INFINITY RAMTOP_P +---------------------------+ * | pseudo-vectors & MACSbug | * P0SSTKT_P +---------------------------+ * | proc[0] sys stack | * MAXSTACK P0SSTKB_P | /... proc[0] u area | * SSTKT_P P0UAREA_P +---------------------------+ * | active system stack | * | /... active u area | * SSTKB_P &u +---------------------------+ * URAMTOP ----> * | | * * above are kernel PHYSICAL ADDRESSES * -------------------------- * below are user LOGICAL ADDRESSES * | | * +---------------------------+ * USRST_P INITST | User text, data, & bss | * USRST USRSTART +---------------------------+ * USSTKT_P | user sys stack | * UUAREA_P | /... user u_area | * USTKT_P USSTKB_P +---------------------------+ * | user stack | * USTKB_P UIMST_P +---------------------------+ * | * * Pisces Q-DOS project * Andy Rood Kernel project lead * ----------------------------------------------------- * initial 3/4/83 alr * change to 840000 - 880000 user area 3/8/83 alr * move sys per proc stack back into * u_area ==> new picture 8/22/83 alr * new map for mlp machines 9/26/83 alr * change to 0x2000 based user 1/5/84 alr * add ifdef ROM to URAMTOP for * differentiating btwn ROM based and * ram based OS's 4/11/84 jra * reserved space for jump table, * coalesced stack space 6/17/84 jra */ #if ROM || RAMROM /* * rom based system, set the top of memory to just * below the data segment of the kernel */ #define URAMTOP 0xf08000 /* top of user physical RAM */ #else /* * ram based system, the top of user memory is set to * below the kernel text segment */ #define URAMTOP 0xed4000 /* top of user physical RAM */ #endif #define RAMTOP_P 0xF20000 /* top of physical RAM */ /* see also: mch.s */ #define RAMTOP RAMTOP_P /* -old alias- */ #define P0SSTKT_P 0xf1df00 /* top of proc[0] sys stack */ /* see also: end.s */ /* see also: mch.s */ #define P0SSTKB_P 0xf1d700 /* bottom of proc[0] sysstk */ /* see also: mch.s */ #define P0UAREA_P 0xf1d700 /* proc[0] u_area */ #define SSTKT_P 0xf1d700 /* top of system stack */ /* see also: mch.s */ #define SSTKB_P 0xf1cf00 /* bottom of system stack */ /* above are kernel PHYSICAL ADDRESSES */ /************************************************************/ /* below are user LOGICAL ADDRESSES */ #define USRST_P 0x2000 /* start of user text image */ /* see also: mch.s */ #define UUAREA_P 0x1800 /* start of user u_area */ #define USSTKT_P 0x2000 /* top of user sys stack */ /* see also: icode.s */ #define USSTKB_P 0x1800 /* bottom os user sys stack */ #define USTKT_P 0x1800 /* top of user stack */ /* * #define USTKB_P 0x1000 /* bottom of user stack * * #define UIMST_P 0x1000 /* start of user proc image */ #define USTKB_P u.u_procp->p_t1 #define UIMST_P u.u_procp->p_t1 /* * define the PISCES mlp memory mapper registers * (i.e. root them in memory) * * these are 12 bit registers which should be written to as shorts * (16 bits) */ #define P_UDADD 0x600000 #define P_UIADD 0x600002 /* * per process fized overhead for u_area and user and sys stacks */ #define EXOVHD 4