13.07.2015 Views

iAPX 286 Operating System Writers Guide 1983

iAPX 286 Operating System Writers Guide 1983

iAPX 286 Operating System Writers Guide 1983

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

REAL MEMORY MANAGEMENTPL/M-<strong>286</strong> COMPILER 960-501 date PAGE 216 117 118 119 1DECLARE NULL_PHYS_ADDR LITERALLY '0';DECLARE USED LITERALLY '1',FREE LITERALLY '0';/* Values of boundary tags */DECLARE OKLITERALLY '0',FAILED LITERALLY '8000H';/* Values of exception codes */DECLARE DWRIGHTS LITERALLY '92H' /* For manipulatingspace-management data structures, this moduleneeds these rights parameters: Present, DPL=0,data segment, grow up, writable. */;1*******************************************************//* Space-management data structures. * /20 121 122 123 224 225 226 1DECLARE (FIRST AVLBL,LAST AVLBL,CURR AVLBL)DWORD PUBLIC;/* Physical-address pointers to chain of availablespace. These always point to PRIOR - PARAGRAPH toavoid calculating b~se addresses for MEM_LINKs. * /DECLARE SLOT A SELECTOR PUBLIC,WSLOT A WORD AT (@SLOT A) INITIAL (38H) , /* 7 */SLOT B SELECTOR PUBLIC,WSLOT B WORD AT (@SLOT B) INITIAL (40H) , /* 8 */SLOT C SELECTOR PUB LIC,WSLOT_C WORD AT (@SLOT C) INITIAL (48H) ; /* 9 *//* "Scratch" slots for addressing MEM LINKS. *//* Be sure to reserve these slots with the Builder *//*******************************************************//* Round a size parameter upwards to next" greater *//* or equal (N * BLOCK_MODULUS) :.. 'TAGS_SIZE for some N */ROUND_S IZE: PROCEDURE (A_PTR) PUBLIC REENTRANT;DECLARE A PTR POINTER,ADDR BASED A_PTR DWORD;, AD DR BLOCK MODULUS* (( (ADDR + TAGS SIZE - 1) / BLOCK_MODULUS) + 1)-- TAGS_SIZE;END ROUND_SIZE;1*******************************************************//* Delink from avail able space 1 ist. * /DELINK:PROCEDURE (THIS_SEL) REENTRANT;27 2DECLARE THIS SELTHIS-LINKSELECTOR,BASED THIS SEL STRUCTURE (MEM_LINK);28 2DECLARE PRIOR LINK BASED SLOT CSTRUCTURE (MEM_LINK),Figure 3-9. Code for Memory-Management Example (Cont'd.)3-16 121960-001

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!