From mboxrd@z Thu Jan 1 00:00:00 1970 From: Praveen Kumar Subject: [Resend][PATCH 17/17] rbtree: add postorder iteration functions Date: Thu, 1 Jun 2017 02:50:56 +0530 Message-ID: <20170531212056.10583-18-kpraveen.lkml@gmail.com> References: <20170531212056.10583-1-kpraveen.lkml@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20170531212056.10583-1-kpraveen.lkml@gmail.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xen.org Cc: sstabellini@kernel.org, wei.liu2@citrix.com, George.Dunlap@eu.citrix.com, andrew.cooper3@citrix.com, dario.faggioli@citrix.com, ian.jackson@eu.citrix.com, tim@xen.org, Praveen Kumar , jbeulich@suse.com List-Id: xen-devel@lists.xenproject.org UG9zdG9yZGVyIGl0ZXJhdGlvbiB5aWVsZHMgYWxsIG9mIGEgbm9kZSdzIGNoaWxkcmVuIHByaW9y IHRvIHlpZWxkaW5nIHRoZQpub2RlIGl0c2VsZiwgYW5kIHRoaXMgcGFydGljdWxhciBpbXBsZW1l bnRhdGlvbiBhbHNvIGF2b2lkcyBleGFtaW5pbmcgdGhlCmxlYWYgbGlua3MgaW4gYSBub2RlIGFm dGVyIHRoYXQgbm9kZSBoYXMgYmVlbiB5aWVsZGVkLgoKSW4gd2hhdCBJIGV4cGVjdCB3aWxsIGJl IGl0cyBtb3N0IGNvbW1vbiB1c2FnZSwgcG9zdG9yZGVyIGl0ZXJhdGlvbiBhbGxvd3MKdGhlIGRl bGV0aW9uIG9mIGV2ZXJ5IG5vZGUgaW4gYW4gcmJ0cmVlIHdpdGhvdXQgbW9kaWZ5aW5nIHRoZSBy YnRyZWUgbm9kZXMKKG5vIF9yZXF1aXJlbWVudF8gdGhhdCB0aGV5IGJlIG51bGxlZCkgd2hpbGUg YXZvaWRpbmcgcmVmZXJlbmNpbmcgY2hpbGQKbm9kZXMgYWZ0ZXIgdGhleSBoYXZlIGJlZW4gImRl bGV0ZWQiIChtb3N0IGNvbW1vbmx5LCBmcmVlZCkuCgpJIGhhdmUgb25seSB1cGRhdGVkIHpzd2Fw IHRvIHVzZSB0aGlzIGZ1bmN0aW9uYWxpdHkgYXQgdGhpcyBwb2ludCwgYnV0Cm51bWVyb3VzIGJp dHMgb2YgY29kZSAobW9zdCBub3RhYmx5IGluIHRoZSBmaWxlc3lzdGVtIGRyaXZlcnMpIHVzZSBh IGhhbmQKcm9sbGVkIHBvc3RvcmRlciBpdGVyYXRpb24gdGhhdCBOVUxMcyBjaGlsZCBsaW5rcyBh cyBpdCB0cmF2ZXJzZXMgdGhlCnRyZWUuICBFYWNoIG9mIHRob3NlIGluc3RhbmNlcyBjb3VsZCBi ZSByZXBsYWNlZCB3aXRoIHRoaXMgY29tbW9uCmltcGxlbWVudGF0aW9uLgoKMSAmIDIgYWRkIHJi dHJlZSBwb3N0b3JkZXIgaXRlcmF0aW9uIGZ1bmN0aW9ucy4KMyBhZGRzIHRlc3Rpbmcgb2YgdGhl IGl0ZXJhdGlvbiB0byB0aGUgcmJ0cmVlIHJ1bnRpbWUgdGVzdHMKNCBhbGxvd3MgYnVpbGRpbmcg dGhlIHJidHJlZSBydW50aW1lIHRlc3RzIGFzIGJ1aWx0aW5zCjUgdXBkYXRlcyB6c3dhcC4KClRo aXMgcGF0Y2g6CgpBZGQgcG9zdG9yZGVyIGl0ZXJhdGlvbiBmdW5jdGlvbnMgZm9yIHJidHJlZS4g IFRoZXNlIGFyZSB1c2VmdWwgZm9yIHNhZmVseQpmcmVlaW5nIGFuIGVudGlyZSByYnRyZWUgd2l0 aG91dCBtb2RpZnlpbmcgdGhlIHRyZWUgYXQgYWxsLgoKY29tbWl0IDlkZWU1YzUxNTE2ZDJjM2Zm ZjIyNjMzYzEyNzJjNTY1MmU2ODA3NWEgZnJvbSBMaW51eCB0cmVlCgpTaWduZWQtb2ZmLWJ5OiBQ cmF2ZWVuIEt1bWFyIDxrcHJhdmVlbi5sa21sQGdtYWlsLmNvbT4KLS0tCiB4ZW4vY29tbW9uL3Ji dHJlZS5jICAgICAgfCA0NSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysKIHhlbi9pbmNsdWRlL3hlbi9yYnRyZWUuaCB8ICA0ICsrKysKIDIgZmlsZXMgY2hhbmdl ZCwgNDkgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vcmJ0cmVlLmMgYi94 ZW4vY29tbW9uL3JidHJlZS5jCmluZGV4IDgzYjQ4OTJmNTQuLjNjOTk0ZGNjMGMgMTAwNjQ0Ci0t LSBhL3hlbi9jb21tb24vcmJ0cmVlLmMKKysrIGIveGVuL2NvbW1vbi9yYnRyZWUuYwpAQCAtNTg0 LDMgKzU4NCw0OCBAQCB2b2lkIHJiX3JlcGxhY2Vfbm9kZShzdHJ1Y3QgcmJfbm9kZSAqdmljdGlt LCBzdHJ1Y3QgcmJfbm9kZSAqbmV3LAogICAgICpuZXcgPSAqdmljdGltOwogfQogRVhQT1JUX1NZ TUJPTChyYl9yZXBsYWNlX25vZGUpOworCitzdGF0aWMgc3RydWN0IHJiX25vZGUgKnJiX2xlZnRf ZGVlcGVzdF9ub2RlKGNvbnN0IHN0cnVjdCByYl9ub2RlICpub2RlKQoreworICAgIGZvciAoOzsp CisgICAgeyAKKyAgICAgICAgaWYgKG5vZGUtPnJiX2xlZnQpCisgICAgICAgICAgICBub2RlID0g bm9kZS0+cmJfbGVmdDsKKyAgICAgICAgZWxzZSBpZiAobm9kZS0+cmJfcmlnaHQpCisgICAgICAg ICAgICBub2RlID0gbm9kZS0+cmJfcmlnaHQ7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJl dHVybiAoc3RydWN0IHJiX25vZGUgKilub2RlOworICAgIH0KK30KKworc3RydWN0IHJiX25vZGUg KnJiX25leHRfcG9zdG9yZGVyKGNvbnN0IHN0cnVjdCByYl9ub2RlICpub2RlKQoreworICAgIGNv bnN0IHN0cnVjdCByYl9ub2RlICpwYXJlbnQ7CisgICAgaWYgKCFub2RlKQorICAgICAgICByZXR1 cm4gTlVMTDsKKyAgICBwYXJlbnQgPSByYl9wYXJlbnQobm9kZSk7CisKKyAgICAvKiBJZiB3ZSdy ZSBzaXR0aW5nIG9uIG5vZGUsIHdlJ3ZlIGFscmVhZHkgc2VlbiBvdXIgY2hpbGRyZW4gKi8KKyAg ICBpZiAocGFyZW50ICYmIG5vZGUgPT0gcGFyZW50LT5yYl9sZWZ0ICYmIHBhcmVudC0+cmJfcmln aHQpCisgICAgeworICAgICAgICAvKiBJZiB3ZSBhcmUgdGhlIHBhcmVudCdzIGxlZnQgbm9kZSwg Z28gdG8gdGhlIHBhcmVudCdzIHJpZ2h0CisgICAgICAgICAqIG5vZGUgdGhlbiBhbGwgdGhlIHdh eSBkb3duIHRvIHRoZSBsZWZ0CisgICAgICAgICAqLworICAgICAgICByZXR1cm4gcmJfbGVmdF9k ZWVwZXN0X25vZGUocGFyZW50LT5yYl9yaWdodCk7CisgICAgfSBlbHNlCisgICAgICAgIC8qIE90 aGVyd2lzZSB3ZSBhcmUgdGhlIHBhcmVudCdzIHJpZ2h0IG5vZGUsIGFuZCB0aGUgcGFyZW50Cisg ICAgICAgICAqIHNob3VsZCBiZSBuZXh0CisgICAgICAgICAqLworICAgICAgICByZXR1cm4gKHN0 cnVjdCByYl9ub2RlICopcGFyZW50OworfQorRVhQT1JUX1NZTUJPTChyYl9uZXh0X3Bvc3RvcmRl cik7CisKK3N0cnVjdCByYl9ub2RlICpyYl9maXJzdF9wb3N0b3JkZXIoY29uc3Qgc3RydWN0IHJi X3Jvb3QgKnJvb3QpCit7CisgICAgaWYgKCFyb290LT5yYl9ub2RlKQorICAgICAgICByZXR1cm4g TlVMTDsKKworICAgIHJldHVybiByYl9sZWZ0X2RlZXBlc3Rfbm9kZShyb290LT5yYl9ub2RlKTsK K30KK0VYUE9SVF9TWU1CT0wocmJfZmlyc3RfcG9zdG9yZGVyKTsKKwpkaWZmIC0tZ2l0IGEveGVu L2luY2x1ZGUveGVuL3JidHJlZS5oIGIveGVuL2luY2x1ZGUveGVuL3JidHJlZS5oCmluZGV4IDEw N2YxYjEyZjIuLjI0NjUwYTVjZDggMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL3hlbi9yYnRyZWUu aAorKysgYi94ZW4vaW5jbHVkZS94ZW4vcmJ0cmVlLmgKQEAgLTY2LDQgKzY2LDggQEAgc3RhdGlj IGlubGluZSB2b2lkIHJiX2xpbmtfbm9kZShzdHJ1Y3QgcmJfbm9kZSAqIG5vZGUsIHN0cnVjdCBy Yl9ub2RlICogcGFyZW50LAogICAgICpyYl9saW5rID0gbm9kZTsKIH0KIAorLyogUG9zdG9yZGVy IGl0ZXJhdGlvbiAtIGFsd2F5cyB2aXNpdCB0aGUgcGFyZW50IGFmdGVyIGl0cyBjaGlsZHJlbiAq LworZXh0ZXJuIHN0cnVjdCByYl9ub2RlICpyYl9maXJzdF9wb3N0b3JkZXIoY29uc3Qgc3RydWN0 IHJiX3Jvb3QgKik7CitleHRlcm4gc3RydWN0IHJiX25vZGUgKnJiX25leHRfcG9zdG9yZGVyKGNv bnN0IHN0cnVjdCByYl9ub2RlICopOworCiAjZW5kaWYgLyogX19SQlRSRUVfSF9fICovCi0tIAoy LjEyLjAKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpY ZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlz dHMueGVuLm9yZy94ZW4tZGV2ZWwK