Obsah / Utility / LIST / Inicializace popisovače seznamu
Zdrojový kód: INCLUDE\UTIL\LIST.INC, UTIL\LIST.ASM
Inicializace popisovače seznamu
Popisovač seznamu vyžaduje inicializaci pouze v případě, že se jedná o hlavičku seznamu nebo o výchozí prvek seznamu bez hlavičky. Při inicializaci nastavíme oba ukazatele na adresu popisovače, tím vytvoříme prázdný seznam. Popisovače přidávaných prvků není potřeba inicializovat. Zvláštním případem je "bezpečný seznam". U bezpečného seznamu je položka LIST_Next nastavena na adresu popisovače jako příznak, že prvek není začleněn do žádného seznamu.
|
Makro LISTHEAD použijeme k deklaraci inicializovaného záhlaví seznamu. Prvky LIST_Next a LIST_Prev ukazují na adresu popisovače záhlaví seznamu.
|
Makro LINKEDLIST slouží k deklaraci inicializovaného popisovače seznamu. Použijeme ho k vytvoření seznamů se strukturou známou v době překladu, jako je například seznam ovladačů zařízení. Prvním parametrem makra je ukazatel na následující popisovač seznamu, druhým parametrem ukazatel na předcházející popisovač.
|
Pomocí makra LISTINIT můžeme inicializovat záhlaví prázdného seznamu. Jako parametr uvedeme ukazatel na záhlaví seznamu. Toto makro je použito ve funkci ListInit, s jejíž pomocí inicializujeme prázdný seznam. Parametrem funkce je ukazatel na záhlaví seznamu předávaný v registru EBX.
|
Makrem LISTTEST můžeme testovat, zda je seznam prázdný nebo zda je položka bezpečného seznamu připojena k seznamu. Parametrem makra je ukazatel na popisovač seznamu. Je-li seznam prázdný nebo není-li prvek bezpečného seznamu připojen k seznamu, nastaví makro příznak ZF na 1, tj. je splněna podmínka ZY.
|
Makro LISTEMPTY inicializuje položku bezpečného seznamu a to tak, že ukazatel LIST_Next nastaví na adresu položky. Parametrem makra je ukazatel na položku seznamu. Makro je použito ve funkci ListSafeInit, která inicializuje položku bezpečného seznamu, jejíž adresu předáme funkci v registru EBX.
Obsah / Utility / LIST / Inicializace popisovače seznamu