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); }
//------------------------------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"); }