void
tests_edge(void)
{
    unsigned char *middle;
    int err = -EFAULT;

    init_test_edge();

    middle = test_edge_middle;

    test_edge(PROT_NONE, PROT_READ, middle, NULL, 0);
    test_edge(PROT_NONE, PROT_READ, middle - 1, NULL, err);
    test_edge(PROT_READ, PROT_NONE, middle - SIGACTSZ, NULL, 0);
    test_edge(PROT_READ, PROT_NONE, middle - SIGACTSZ + 1, NULL, err);

    test_edge(PROT_NONE, PROT_WRITE, NULL, middle, 0);
    test_edge(PROT_NONE, PROT_WRITE, NULL, middle - 1, err);
    test_edge(PROT_WRITE, PROT_NONE, NULL, middle - SIGACTSZ, 0);
    test_edge(PROT_WRITE, PROT_NONE, NULL, middle - SIGACTSZ + 1, err);
}
Esempio n. 2
0
//------------------------------dump-------------------------------------------
void PhaseIFG::dump() const {
  tty->print_cr("-- Interference Graph --%s--",
                _is_square ? "square" : "triangular" );
  if( _is_square ) {
    for( uint i = 0; i < _maxlrg; i++ ) {
      tty->print( (*_yanked)[i] ? "XX " : "  ");
      tty->print("L%d: { ",i);
      IndexSetIterator elements(&_adjs[i]);
      uint datum;
      while ((datum = elements.next()) != 0) {
        tty->print("L%d ", datum);
      }
      tty->print_cr("}");

    }
    return;
  }

  // Triangular
  for( uint i = 0; i < _maxlrg; i++ ) {
    uint j;
    tty->print( (*_yanked)[i] ? "XX " : "  ");
    tty->print("L%d: { ",i);
    for( j = _maxlrg; j > i; j-- )
      if( test_edge(j - 1,i) ) {
        tty->print("L%d ",j - 1);
      }
    tty->print("| ");
    IndexSetIterator elements(&_adjs[i]);
    uint datum;
    while ((datum = elements.next()) != 0) {
      tty->print("L%d ", datum);
    }
    tty->print("}\n");
  }
  tty->print("\n");
}