Exemple #1
0
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;  
}
Exemple #2
0
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;  
}
Exemple #3
0
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;  
}
Exemple #4
0
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;  
}
Exemple #5
0
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;
}
Exemple #6
0
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;
}