Obsah / Utility / BUFFER / Deklarace pole bufferů
Zdrojový kód: INCLUDE\UTIL\BUFFER.INC, UTIL\BUFFER.ASM
Deklarace pole bufferů
|
Pole bufferů bývá deklarováno jako globální datová struktura. K jeho deklaraci slouží makro BUFFER.
Prvním parametrem makra je velikost jedné alokační položky. Minimální velikost alokační položky je 8 bajtů, maximální velikost je dána maximální velikostí systémového bloku paměti (konstanta MAXMEM, typicky to je 64 KB) sníženému o hodnotu 8. Velikost alokační položky nemusí být mocninou 2.
Druhým parametrem je velikost alokačního bloku - viz popis položky BUFH_BlockSize.
Příkladem použití je alokace popisovačů virtuální paměti v souboru VIRTMEM.ASM. Jeden popisovač má velikost například 70 bajtů (údaj se během vývoje systému mění), velikost alokačního bloku byla zvolena 4 KB. V tom případě se vejde do jednoho alokačního bloku 58 položek popisovačů (zbyde 28 bajtů nevyužitého místa na konci bloku). Maska adresy bloku bude 0FFFFF000h. Pokud by se nepoužilo pole bufferů, bylo by potřeba alokovat bloky o velikosti 128 bajtů, v tom případě by se vešlo do prostoru 4 KB pouze 32 položek popisovačů.
Obsah / Utility / BUFFER / Deklarace pole bufferů