pool_sQlink * pool_QinsertSucc ( pwr_tStatus *sts, pool_sHead *php, pool_sQlink *item, /* Item to insert */ pool_sQlink *pred /* Insert after this element */ ) { pool_sQlink *succ; volatile pwr_tBoolean result; result = checkInitQ(php, item); pwr_Assert(result); succ = pool_Address(NULL, php, pred->flink); pwr_Assert(checkQ(php, succ)); pwr_Assert(checkQ(php, pred)); pwr_Assert(succ->blink == pred->self); pwr_Assert(succ->self == pred->flink); item->blink = pred->self; item->flink = pred->flink; pred->flink = succ->blink = item->self; return succ; }
pool_sQlink * pool_QinsertPred ( pwr_tStatus *sts, pool_sHead *php, pool_sQlink *item, /* Item to insert */ pool_sQlink *succ /* Insert before this element */ ) { pool_sQlink *pred; volatile pwr_tBoolean result; result = checkInitQ(php, item); pwr_Assert(result); pred = pool_Address(sts, php, succ->blink); pwr_Assert(checkQ(php, succ)); pwr_Assert(checkQ(php, pred)); pwr_Assert(pred->flink == succ->self); pwr_Assert(pred->self == succ->blink); item->flink = succ->self; item->blink = succ->blink; succ->blink = pred->flink = item->self; return pred; }
dbs_sQlink * dbs_Qsucc(pwr_tStatus *sts, const dbs_sVenv *vep, dbs_sQlink *item) { dbs_sQlink *succ; pwr_Assert(checkQ(vep, item)); succ = dbs_Address(NULL, vep, item->succ); if (succ != NULL) { pwr_Assert(checkQ(vep, succ)); pwr_Assert(succ->pred == item->self); pwr_Assert(item->succ == succ->self); } return succ; }
dbs_sQlink * dbs_Qpred(pwr_tStatus *sts, const dbs_sVenv *vep, dbs_sQlink *item) { dbs_sQlink *pred; pwr_Assert(checkQ(vep, item)); pred = dbs_Address(NULL, vep, item->pred); if (pred != NULL) { pwr_Assert(checkQ(vep, pred)); pwr_Assert(pred->succ == item->self); pwr_Assert(pred->self == item->pred); } return pred; }
pwr_tBoolean dbs_QisLinked(pwr_tStatus *sts, const dbs_sVenv *vep, dbs_sQlink *item) { dbs_sQlink *pred; dbs_sQlink *succ; pwr_Assert(checkQ(vep, item)); pred = dbs_Address(sts, vep, item->pred); succ = dbs_Address(sts, vep, item->succ); pwr_Assert(checkQ(vep, succ)); pwr_Assert(checkQ(vep, pred)); pwr_Assert(item->pred == pred->self); pwr_Assert(item->succ == succ->self); pwr_Assert(pred->succ == item->self); pwr_Assert(succ->pred == item->self); return item->succ != item->self; }
pwr_tBoolean pool_QisLinked ( pwr_tStatus *sts, pool_sHead *php, pool_sQlink *item ) { pool_sQlink *pred; pool_sQlink *succ; pwr_Assert(checkQ(php, item)); pred = pool_Address(sts, php, item->blink); succ = pool_Address(sts, php, item->flink); pwr_Assert(checkQ(php, succ)); pwr_Assert(checkQ(php, pred)); pwr_Assert(item->blink == pred->self); pwr_Assert(item->flink == succ->self); pwr_Assert(pred->flink == item->self); pwr_Assert(succ->blink == item->self); return item->flink != item->self; }