From mboxrd@z Thu Jan 1 00:00:00 1970 From: Christopher Li Subject: [PATCH 2/4] inspect: add some example inspect for symbol and statement Date: Fri, 2 Apr 2010 11:42:29 -0700 Message-ID: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=000e0cd598a66c4cf0048345579a Return-path: Received: from mail-gw0-f46.google.com ([74.125.83.46]:39767 "EHLO mail-gw0-f46.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752333Ab0DBSma (ORCPT ); Fri, 2 Apr 2010 14:42:30 -0400 Received: by gwb19 with SMTP id 19so281314gwb.19 for ; Fri, 02 Apr 2010 11:42:29 -0700 (PDT) Sender: linux-sparse-owner@vger.kernel.org List-Id: linux-sparse@vger.kernel.org To: Linux-Sparse Cc: Kamil Dudka , Josh Triplett --000e0cd598a66c4cf0048345579a Content-Type: text/plain; charset=ISO-8859-1 This is far fro complete. It is an example how to write call back driven inspect functions. Inside each inspect call back function. It can add a child node with: ast_append_child(), or add text attribute node with ast_append_attribute() Chris --000e0cd598a66c4cf0048345579a Content-Type: application/octet-stream; name="0002-inspect-add-some-example-inspect-for-symbol-and-stat.patch" Content-Disposition: attachment; filename="0002-inspect-add-some-example-inspect-for-symbol-and-stat.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_g7jehzw90 RnJvbSBiNjgxMDczZWE3ODhkMjM1NjYwNDMyNzY4NmJiMWFjMWFjZDQwNmM4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBDaHJpc3RvcGhlciBMaSA8c3BhcnNlQGNocmlzbGkub3JnPgpE YXRlOiBUdWUsIDMwIE1hciAyMDEwIDE1OjUwOjE2IC0wNzAwClN1YmplY3Q6IFtQQVRDSCAyLzRd IGluc3BlY3Q6IGFkZCBzb21lIGV4YW1wbGUgaW5zcGVjdCBmb3Igc3ltYm9sIGFuZCBzdGF0ZW1l bnQKClRoaXMgaXMgZmFyIGZybyBjb21wbGV0ZS4gSXQgaXMgYW4gZXhhbXBsZSBob3cgdG8gd3Jp dGUgY2FsbCBiYWNrCmRyaXZlbiBpbnNwZWN0IGZ1bmN0aW9ucy4KCkluc2lkZSBlYWNoIGluc3Bl Y3QgY2FsbCBiYWNrIGZ1bmN0aW9uLiBJdCBjYW4gYWRkIGEgY2hpbGQgbm9kZQp3aXRoOiBhc3Rf YXBwZW5kX2NoaWxkKCksIG9yIGFkZCB0ZXh0IGF0dHJpYnV0ZSBub2RlIHdpdGgKYXN0X2FwcGVu ZF9hdHRyaWJ1dGUoKQotLS0KIGFzdC1pbnNwZWN0LmMgfCAgMTE0ICsrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogYXN0LWluc3BlY3QuaCB8 ICAgMTMgKysrKysrCiAyIGZpbGVzIGNoYW5nZWQsIDEyNyBpbnNlcnRpb25zKCspLCAwIGRlbGV0 aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGFzdC1pbnNwZWN0LmMKIGNyZWF0ZSBtb2RlIDEw MDY0NCBhc3QtaW5zcGVjdC5oCgpkaWZmIC0tZ2l0IGEvYXN0LWluc3BlY3QuYyBiL2FzdC1pbnNw ZWN0LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzJmM2ZlMAotLS0gL2Rl di9udWxsCisrKyBiL2FzdC1pbnNwZWN0LmMKQEAgLTAsMCArMSwxMTQgQEAKKworI2luY2x1ZGUg InRva2VuLmgiCisjaW5jbHVkZSAicGFyc2UuaCIKKyNpbmNsdWRlICJzeW1ib2wuaCIKKyNpbmNs dWRlICJhc3QtaW5zcGVjdC5oIgorCitzdGF0aWMgaW5saW5lIHZvaWQgaW5zcGVjdF9wdHJfbGlz dChBc3ROb2RlICpub2RlLCBjb25zdCBjaGFyICpuYW1lLCB2b2lkICgqaW5zcGVjdCkoQXN0Tm9k ZSAqKSkKK3sKKwlzdHJ1Y3QgcHRyX2xpc3QgKnB0cmxpc3QgPSBub2RlLT5wdHI7CisJdm9pZCAq cHRyOworCWludCBpID0gMDsKKworCW5vZGUtPnRleHQgPSBnX3N0cmR1cF9wcmludGYoIiVzICVz OiIsIG5vZGUtPnRleHQsIG5hbWUpOworCUZPUl9FQUNIX1BUUihwdHJsaXN0LCBwdHIpIHsKKwkJ Y2hhciAqaW5kZXggPSBnX3N0cmR1cF9wcmludGYoIiVkOiAiLCBpKyspOworCQlhc3RfYXBwZW5k X2NoaWxkKG5vZGUsIGluZGV4LCBwdHIsIGluc3BlY3QpOworCX0gRU5EX0ZPUl9FQUNIX1BUUihw dHIpOworfQorCisKK3N0YXRpYyBjb25zdCBjaGFyICpzdGF0ZW1lbnRfdHlwZV9uYW1lKGVudW0g c3RhdGVtZW50X3R5cGUgdHlwZSkKK3sKKwlzdGF0aWMgY29uc3QgY2hhciAqc3RhdGVtZW50X3R5 cGVfbmFtZVtdID0geworCQlbU1RNVF9OT05FXSA9ICJTVE1UX05PTkUiLAorCQlbU1RNVF9ERUNM QVJBVElPTl0gPSAiU1RNVF9ERUNMQVJBVElPTiIsCisJCVtTVE1UX0VYUFJFU1NJT05dID0gIlNU TVRfRVhQUkVTU0lPTiIsCisJCVtTVE1UX0NPTVBPVU5EXSA9ICJTVE1UX0NPTVBPVU5EIiwKKwkJ W1NUTVRfSUZdID0gIlNUTVRfSUYiLAorCQlbU1RNVF9SRVRVUk5dID0gIlNUTVRfUkVUVVJOIiwK KwkJW1NUTVRfQ0FTRV0gPSAiU1RNVF9DQVNFIiwKKwkJW1NUTVRfU1dJVENIXSA9ICJTVE1UX1NX SVRDSCIsCisJCVtTVE1UX0lURVJBVE9SXSA9ICJTVE1UX0lURVJBVE9SIiwKKwkJW1NUTVRfTEFC RUxdID0gIlNUTVRfTEFCRUwiLAorCQlbU1RNVF9HT1RPXSA9ICJTVE1UX0dPVE8iLAorCQlbU1RN VF9BU01dID0gIlNUTVRfQVNNIiwKKwkJW1NUTVRfQ09OVEVYVF0gPSAiU1RNVF9DT05URVhUIiwK KwkJW1NUTVRfUkFOR0VdID0gIlNUTVRfUkFOR0UiLAorCX07CisJcmV0dXJuIHN0YXRlbWVudF90 eXBlX25hbWVbdHlwZV0gPzogIlVOS05PV05fU1RBVEVNRU5UX1RZUEUiOworfQorCisKK3ZvaWQg aW5zcGVjdF9zdGF0ZW1lbnQoQXN0Tm9kZSAqbm9kZSkKK3sKKwlzdHJ1Y3Qgc3RhdGVtZW50ICpz dG10ID0gbm9kZS0+cHRyOworCW5vZGUtPnRleHQgPSBnX3N0cmR1cF9wcmludGYoIiVzICVzOiIs IG5vZGUtPnRleHQsIHN0YXRlbWVudF90eXBlX25hbWUoc3RtdC0+dHlwZSkpOworCXN3aXRjaCAo c3RtdC0+dHlwZSkgeworCQljYXNlIFNUTVRfQ09NUE9VTkQ6CisJCQlhc3RfYXBwZW5kX2NoaWxk KG5vZGUsICJzdG10czoiLCBzdG10LT5zdG10cywgaW5zcGVjdF9zdGF0ZW1lbnRfbGlzdCk7CisJ CQlicmVhazsKKwkJY2FzZSBTVE1UX0lGOgorCQkJYXN0X2FwcGVuZF9jaGlsZChub2RlLCAiaWZf dHJ1ZToiLCBzdG10LT5pZl90cnVlLCBpbnNwZWN0X3N0YXRlbWVudCk7CisJCQlhc3RfYXBwZW5k X2NoaWxkKG5vZGUsICJpZl9mYWxzZToiLCBzdG10LT5pZl9mYWxzZSwgaW5zcGVjdF9zdGF0ZW1l bnQpOworCQlkZWZhdWx0OgorCQkJYnJlYWs7CisJfQorfQorCisKK3ZvaWQgaW5zcGVjdF9zdGF0 ZW1lbnRfbGlzdChBc3ROb2RlICpub2RlKQoreworCWluc3BlY3RfcHRyX2xpc3Qobm9kZSwgInN0 YXRlbWVudF9saXN0IiwgaW5zcGVjdF9zdGF0ZW1lbnQpOworfQorCisKK3N0YXRpYyBjb25zdCBj aGFyICpzeW1ib2xfdHlwZV9uYW1lKGVudW0gdHlwZSB0eXBlKQoreworCXN0YXRpYyBjb25zdCBj aGFyICp0eXBlX25hbWVbXSA9IHsKKwkJW1NZTV9VTklOSVRJQUxJWkVEXSA9ICJTWU1fVU5JTklU SUFMSVpFRCIsCisJCVtTWU1fUFJFUFJPQ0VTU09SXSA9ICJTWU1fUFJFUFJPQ0VTU09SIiwKKwkJ W1NZTV9CQVNFVFlQRV0gPSAiU1lNX0JBU0VUWVBFIiwKKwkJW1NZTV9OT0RFXSA9ICJTWU1fTk9E RSIsCisJCVtTWU1fUFRSXSA9ICJTWU1fUFRSIiwKKwkJW1NZTV9GTl0gPSAiU1lNX0ZOIiwKKwkJ W1NZTV9BUlJBWV0gPSAiU1lNX0FSUkFZIiwKKwkJW1NZTV9TVFJVQ1RdID0gIlNZTV9TVFJVQ1Qi LAorCQlbU1lNX1VOSU9OXSA9ICJTWU1fVU5JT04iLAorCQlbU1lNX0VOVU1dID0gIlNZTV9FTlVN IiwKKwkJW1NZTV9UWVBFREVGXSA9ICJTWU1fVFlQRURFRiIsCisJCVtTWU1fVFlQRU9GXSA9ICJT WU1fVFlQRU9GIiwKKwkJW1NZTV9NRU1CRVJdID0gIlNZTV9NRU1CRVIiLAorCQlbU1lNX0JJVEZJ RUxEXSA9ICJTWU1fQklURklFTEQiLAorCQlbU1lNX0xBQkVMXSA9ICJTWU1fTEFCRUwiLAorCQlb U1lNX1JFU1RSSUNUXSA9ICJTWU1fUkVTVFJJQ1QiLAorCQlbU1lNX0ZPVUxFRF0gPSAiU1lNX0ZP VUxFRCIsCisJCVtTWU1fS0VZV09SRF0gPSAiU1lNX0tFWVdPUkQiLAorCQlbU1lNX0JBRF0gPSAi U1lNX0JBRCIsCisJfTsKKwlyZXR1cm4gdHlwZV9uYW1lW3R5cGVdID86ICJVTktOT1dOX1RZUEUi OworfQorCisKK3ZvaWQgaW5zcGVjdF9zeW1ib2woQXN0Tm9kZSAqbm9kZSkKK3sKKwlzdHJ1Y3Qg c3ltYm9sICpzeW0gPSBub2RlLT5wdHI7CisJbm9kZS0+dGV4dCA9IGdfc3RyZHVwX3ByaW50Zigi JXMgJXM6ICVzIiwgbm9kZS0+dGV4dCwgc3ltYm9sX3R5cGVfbmFtZShzeW0tPnR5cGUpLAorCQkJ CSAgICAgIHNob3dfaWRlbnQoc3ltLT5pZGVudCkpOworCWFzdF9hcHBlbmRfY2hpbGQobm9kZSwg ImN0eXBlLmJhc2VfdHlwZToiLCBzeW0tPmN0eXBlLmJhc2VfdHlwZSxpbnNwZWN0X3N5bWJvbCk7 CisKKwlzd2l0Y2ggKHN5bS0+dHlwZSkgeworCQljYXNlIFNZTV9GTjoKKwkJCWFzdF9hcHBlbmRf Y2hpbGQobm9kZSwgInN0bXQ6Iiwgc3ltLT5zdG10LCBpbnNwZWN0X3N0YXRlbWVudCk7CisJCQli cmVhazsKKwkJZGVmYXVsdDoKKwkJCWJyZWFrOworCX0KK30KKworCit2b2lkIGluc3BlY3Rfc3lt Ym9sX2xpc3QoQXN0Tm9kZSAqbm9kZSkKK3sKKwlpbnNwZWN0X3B0cl9saXN0KG5vZGUsICJzeW1i b2xfbGlzdCIsIGluc3BlY3Rfc3ltYm9sKTsKK30KKwpkaWZmIC0tZ2l0IGEvYXN0LWluc3BlY3Qu aCBiL2FzdC1pbnNwZWN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTAx ZDg0NwotLS0gL2Rldi9udWxsCisrKyBiL2FzdC1pbnNwZWN0LmgKQEAgLTAsMCArMSwxMyBAQAor CisjaWZuZGVmIF9BU1RfSU5TUEVDVF9IXworI2RlZmluZSBfQVNUX0lOU1BFQ1RfSF8KKworI2lu Y2x1ZGUgImFzdC1tb2RlbC5oIgorCit2b2lkIGluc3BlY3Rfc3ltYm9sKEFzdE5vZGUgKm5vZGUp Owordm9pZCBpbnNwZWN0X3N5bWJvbF9saXN0KEFzdE5vZGUgKm5vZGUpOworCit2b2lkIGluc3Bl Y3Rfc3RhdGVtZW50KEFzdE5vZGUgKm5vZGUpOwordm9pZCBpbnNwZWN0X3N0YXRlbWVudF9saXN0 KEFzdE5vZGUgKm5vZGUpOworCisjZW5kaWYKLS0gCjEuNi42LjEKCg== --000e0cd598a66c4cf0048345579a--