From mboxrd@z Thu Jan 1 00:00:00 1970 From: Wei Liu Subject: [PATCH 1/6] xenconsoled: introduce log file abstraction Date: Mon, 6 Jun 2016 16:59:36 +0100 Message-ID: <1465228781-22754-2-git-send-email-wei.liu2@citrix.com> References: <1465228781-22754-1-git-send-email-wei.liu2@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta14.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1b9wwL-0007II-Tv for xen-devel@lists.xenproject.org; Mon, 06 Jun 2016 15:59:46 +0000 In-Reply-To: <1465228781-22754-1-git-send-email-wei.liu2@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Xen-devel Cc: Wei Liu , Ian Jackson List-Id: xen-devel@lists.xenproject.org SXQgd2lsbCBiZSB1c2VkIHRvIGhhbmRsZSBoeXBlcnZzaW9yIGxvZyBhbmQgZ3Vlc3QgY29uc29s ZSBsb2cuCgpTaWduZWQtb2ZmLWJ5OiBXZWkgTGl1IDx3ZWkubGl1MkBjaXRyaXguY29tPgotLS0K IHRvb2xzL2NvbnNvbGUvZGFlbW9uL2xvZ2ZpbGUuYyB8IDIyOSArKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKwogdG9vbHMvY29uc29sZS9kYWVtb24vbG9nZmlsZS5oIHwg IDU3ICsrKysrKysrKysKIDIgZmlsZXMgY2hhbmdlZCwgMjg2IGluc2VydGlvbnMoKykKIGNyZWF0 ZSBtb2RlIDEwMDY0NCB0b29scy9jb25zb2xlL2RhZW1vbi9sb2dmaWxlLmMKIGNyZWF0ZSBtb2Rl IDEwMDY0NCB0b29scy9jb25zb2xlL2RhZW1vbi9sb2dmaWxlLmgKCmRpZmYgLS1naXQgYS90b29s cy9jb25zb2xlL2RhZW1vbi9sb2dmaWxlLmMgYi90b29scy9jb25zb2xlL2RhZW1vbi9sb2dmaWxl LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWQ3M2Y4ZQotLS0gL2Rldi9u dWxsCisrKyBiL3Rvb2xzL2NvbnNvbGUvZGFlbW9uL2xvZ2ZpbGUuYwpAQCAtMCwwICsxLDIyOSBA QAorLyoKKyAqICBDb3B5cmlnaHQgKEMpIENpdHJpeCAyMDE2CisgKiAgQXV0aG9yKHMpOiBXZWkg TGl1IDx3ZWkubGl1MkBjaXRyaXguY29tPgorICoKKyAqICBUaGlzIHByb2dyYW0gaXMgZnJlZSBz b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogIGl0IHVu ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlz aGVkIGJ5CisgKiAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgdW5kZXIgdmVyc2lvbiAy IG9mIHRoZSBMaWNlbnNlLgorICoKKyAqICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4g dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FS UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5U QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAq ICBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZ b3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMg TGljZW5zZQorICogIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBJZiBub3QsIHNlZSA8aHR0cDov L3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisgKi8KKyNkZWZpbmUgX0dOVV9TT1VSQ0UKKworI2lu Y2x1ZGUgPGZjbnRsLmg+CisjaW5jbHVkZSA8c3lzL3N0YXQuaD4KKyNpbmNsdWRlIDxzdGRsaWIu aD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxzdGRpby5oPgorCisjaW5jbHVkZSAi dXRpbHMuaCIKKyNpbmNsdWRlICJsb2dmaWxlLmgiCisKK3N0YXRpYyB2b2lkIGxvZ2ZpbGVfZW50 cnlfZnJlZShzdHJ1Y3QgbG9nZmlsZV9lbnRyeSAqZW50cnkpCit7CisJaWYgKCFlbnRyeSkgcmV0 dXJuOworCisJaWYgKGVudHJ5LT5mZCA+PSAwKSBjbG9zZShlbnRyeS0+ZmQpOworCWZyZWUoZW50 cnkpOworfQorCit2b2lkIGxvZ2ZpbGVfZnJlZShzdHJ1Y3QgbG9nZmlsZSAqZikKK3sKKwlpZiAo IWYpIHJldHVybjsKKworCWxvZ2ZpbGVfZW50cnlfZnJlZShmLT5lbnRyeSk7CisKKwlmcmVlKGYt PmJhc2VwYXRoKTsKKwlmcmVlKGYpOworfQorCitzdGF0aWMgc3RydWN0IGxvZ2ZpbGVfZW50cnkg KmxvZ2ZpbGVfZW50cnlfbmV3KGNvbnN0IGNoYXIgKnBhdGgsIG1vZGVfdCBtb2RlKQoreworCXN0 cnVjdCBsb2dmaWxlX2VudHJ5ICplbnRyeTsKKwlzdHJ1Y3Qgc3RhdCBzYjsKKworCWVudHJ5ID0g Y2FsbG9jKDEsIHNpemVvZigqZW50cnkpKTsKKwlpZiAoIWVudHJ5KSBnb3RvIGVycjsKKworCWVu dHJ5LT5mZCA9IG9wZW4ocGF0aCwgT19DUkVBVHxPX0FQUEVORHxPX1dST05MWXxPX0NMT0VYRUMs IG1vZGUpOworCWlmIChlbnRyeS0+ZmQgPCAwKSB7CisJCWRvbG9nKExPR19FUlIsICJGYWlsZWQg dG8gb3BlbiBsb2cgZmlsZSAlcyIsIHBhdGgpOworCQlnb3RvIGVycjsKKwl9CisKKwllbnRyeS0+ cG9zID0gbHNlZWsoZW50cnktPmZkLCAwLCBTRUVLX0VORCk7CisJaWYgKGVudHJ5LT5wb3MgPT0g KG9mZl90KS0xKSB7CisJCWRvbG9nKExPR19FUlIsICJVbmFibGUgdG8gZGV0ZXJtaW5lIGN1cnJl bnQgZmlsZSBvZmZzZXQgaW4gJXMiLAorCQkgICAgICBwYXRoKTsKKwkJZ290byBlcnI7CisJfQor CisJaWYgKGZzdGF0KGVudHJ5LT5mZCwgJnNiKSA8IDApIHsKKwkJZG9sb2coTE9HX0VSUiwgIlVu YWJsZSB0byBmc3RhdCBjdXJyZW50IGZpbGUgJXMiLCBwYXRoKTsKKwkJZ290byBlcnI7CisJfQor CisJZW50cnktPmxlbiA9IHNiLnN0X3NpemU7CisJcmV0dXJuIGVudHJ5OworCitlcnI6CisJbG9n ZmlsZV9lbnRyeV9mcmVlKGVudHJ5KTsKKwlyZXR1cm4gTlVMTDsKK30KKworc3RydWN0IGxvZ2Zp bGUgKmxvZ2ZpbGVfbmV3KGNvbnN0IGNoYXIgKnBhdGgsIG1vZGVfdCBtb2RlKQoreworCXN0cnVj dCBsb2dmaWxlICpsb2dmaWxlOworCisJbG9nZmlsZSA9IGNhbGxvYygxLCBzaXplb2YoKmxvZ2Zp bGUpKTsKKwlpZiAoIWxvZ2ZpbGUpIGdvdG8gZXJyOworCisJbG9nZmlsZS0+YmFzZXBhdGggPSBz dHJkdXAocGF0aCk7CisJaWYgKCFsb2dmaWxlLT5iYXNlcGF0aCkgeworCQlkb2xvZyhMT0dfRVJS LCAiRmFpbGVkIHRvIHN0cmR1cCAlcyIsIHBhdGgpOworCQlnb3RvIGVycjsKKwl9CisKKwlsb2dm aWxlLT5tb2RlID0gbW9kZTsKKwlsb2dmaWxlLT5tYXhsZW4gPSBMT0dGSUxFX01BWF9TSVpFOwor CisKKwlsb2dmaWxlLT5lbnRyeSA9IGxvZ2ZpbGVfZW50cnlfbmV3KGxvZ2ZpbGUtPmJhc2VwYXRo LCBtb2RlKTsKKworCWlmICghbG9nZmlsZS0+ZW50cnkpIGdvdG8gZXJyOworCisJcmV0dXJuIGxv Z2ZpbGU7CitlcnI6CisJbG9nZmlsZV9mcmVlKGxvZ2ZpbGUpOworCXJldHVybiBOVUxMOworfQor CitzdGF0aWMgaW50IGxvZ2ZpbGVfcm9sbG92ZXIoc3RydWN0IGxvZ2ZpbGUgKmZpbGUpCit7CisJ c3RydWN0IGxvZ2ZpbGVfZW50cnkgKm9sZCA9IGZpbGUtPmVudHJ5LCAqbmV3ID0gTlVMTDsKKwlj aGFyICp0aGlzID0gTlVMTDsKKwljaGFyICpuZXh0ID0gTlVMTDsKKwl1bnNpZ25lZCBpOworCisJ aWYgKGFzcHJpbnRmKCZuZXh0LCAiJXMuJXUiLCBmaWxlLT5iYXNlcGF0aCwKKwkJICAgICBMT0dG SUxFX01BWF9CQUNLVVBfTlVNKSA8IDApIHsKKwkJZG9sb2coTE9HX0VSUiwgIkZhaWxlZCB0byBh c3ByaW50ZiAlcy4ldSIsCisJCSAgICAgIGZpbGUtPmJhc2VwYXRoLCBMT0dGSUxFX01BWF9CQUNL VVBfTlVNKTsKKwkJZ290byBlcnI7CisJfQorCisJZm9yIChpID0gTE9HRklMRV9NQVhfQkFDS1VQ X05VTTsgaSA+IDA7IGktLSkgeworCQlpZiAoaSA9PSAxKSB7CisJCQl0aGlzID0gc3RyZHVwKGZp bGUtPmJhc2VwYXRoKTsKKwkJCWlmICghdGhpcykgeworCQkJCWRvbG9nKExPR19FUlIsICJGYWls ZWQgdG8gc3RyZHVwICVzIiwKKwkJCQkgICAgICBmaWxlLT5iYXNlcGF0aCk7CisJCQkJZ290byBl cnI7CisJCQl9CisJCX0gZWxzZSB7CisJCQlpZiAoYXNwcmludGYoJnRoaXMsICIlcy4ldSIsIGZp bGUtPmJhc2VwYXRoLCBpLTEpIDwgMCkgeworCQkJCWRvbG9nKExPR19FUlIsICJGYWlsZWQgdG8g YXNwcmludGYgJXMuJXUiLAorCQkJCSAgICAgIGZpbGUtPmJhc2VwYXRoLCBpLTEpOworCQkJCWdv dG8gZXJyOworCQkJfQorCQl9CisKKwkJaWYgKHJlbmFtZSh0aGlzLCBuZXh0KSA8IDAgJiYgZXJy bm8gIT0gRU5PRU5UKSB7CisJCQlkb2xvZyhMT0dfRVJSLCAiRmFpbGVkIHRvIHJlbmFtZSAlcyB0 byAlcyIsCisJCQkgICAgICB0aGlzLCBuZXh0KTsKKwkJCWdvdG8gZXJyOworCQl9CisKKwkJZnJl ZShuZXh0KTsKKwkJbmV4dCA9IHRoaXM7CisJCXRoaXMgPSBOVUxMOworCX0KKworCW5ldyA9IGxv Z2ZpbGVfZW50cnlfbmV3KGZpbGUtPmJhc2VwYXRoLCBmaWxlLT5tb2RlKTsKKwlpZiAoIW5ldykg Z290byBlcnI7CisKKwlmaWxlLT5lbnRyeSA9IG5ldzsKKwlsb2dmaWxlX2VudHJ5X2ZyZWUob2xk KTsKKworCXJldHVybiAwOworZXJyOgorCWZyZWUodGhpcyk7CisJZnJlZShuZXh0KTsKKwlyZXR1 cm4gLTE7Cit9CisKK3N0YXRpYyBzc2l6ZV90IHdyaXRlX2FsbChpbnQgZmQsIGNvbnN0IGNoYXIq IGJ1Ziwgc2l6ZV90IGxlbikKK3sKKwlzc2l6ZV90IHdyaXR0ZW4gPSAwOworCXdoaWxlIChsZW4p IHsKKwkJc3NpemVfdCByID0gd3JpdGUoZmQsIGJ1ZiwgbGVuKTsKKwkJaWYgKHIgPCAwICYmIGVy cm5vID09IEVJTlRSKQorCQkJY29udGludWU7CisJCWlmIChyIDwgMCkKKwkJCXJldHVybiByOwor CQlsZW4gLT0gcjsKKwkJYnVmICs9IHI7CisJCXdyaXR0ZW4gKz0gcjsKKwl9CisKKwlyZXR1cm4g d3JpdHRlbjsKK30KKworc3NpemVfdCBsb2dmaWxlX2FwcGVuZChzdHJ1Y3QgbG9nZmlsZSAqZmls ZSwgY29uc3QgY2hhciAqYnVmLAorCQkgICAgICAgc2l6ZV90IGxlbikKK3sKKwlzc2l6ZV90IHJl dCA9IDA7CisKKwl3aGlsZSAobGVuKSB7CisJCXN0cnVjdCBsb2dmaWxlX2VudHJ5ICplbnRyeSA9 IGZpbGUtPmVudHJ5OworCQlzaXplX3QgdG93cml0ZSA9IGxlbjsKKwkJYm9vbCByb2xsb3ZlciA9 IGZhbHNlOworCisJCWlmIChlbnRyeS0+cG9zID4gZmlsZS0+bWF4bGVuKSB7CisJCQlyb2xsb3Zl ciA9IHRydWU7CisJCQl0b3dyaXRlID0gMDsKKwkJfSBlbHNlIGlmIChlbnRyeS0+cG9zICsgdG93 cml0ZSA+IGZpbGUtPm1heGxlbikgeworCQkJdG93cml0ZSA9IGZpbGUtPm1heGxlbiAtIGVudHJ5 LT5wb3M7CisJCX0KKworCQlpZiAodG93cml0ZSkgeworCQkJaWYgKHdyaXRlX2FsbChlbnRyeS0+ ZmQsIGJ1ZiwgdG93cml0ZSkgIT0gdG93cml0ZSkgeworCQkJCWRvbG9nKExPR19FUlIsICJVbmFi bGUgdG8gd3JpdGUgZmlsZSAlcyIsCisJCQkJICAgICAgZmlsZS0+YmFzZXBhdGgpOworCQkJCXJl dHVybiAtMTsKKwkJCX0KKworCQkJbGVuIC09IHRvd3JpdGU7CisJCQlidWYgKz0gdG93cml0ZTsK KwkJCXJldCArPSB0b3dyaXRlOworCQkJZW50cnktPnBvcyArPSB0b3dyaXRlOworCQkJZW50cnkt PmxlbiArPSB0b3dyaXRlOworCQl9CisKKwkJaWYgKChlbnRyeS0+cG9zID09IGZpbGUtPm1heGxl biAmJiBsZW4pIHx8IHJvbGxvdmVyKSB7CisJCQlkb2xvZyhMT0dfREVCVUcsICJSb2xsIG92ZXIg JXMgKG1heGxlbiAlenUpIiwKKwkJCSAgICAgIGZpbGUtPmJhc2VwYXRoLCBmaWxlLT5tYXhsZW4p OworCQkJaWYgKGxvZ2ZpbGVfcm9sbG92ZXIoZmlsZSkpCisJCQkJcmV0dXJuIC0xOworCQl9CisJ fQorCisJcmV0dXJuIHJldDsKK30KKworCisvKgorICogTG9jYWwgdmFyaWFibGVzOgorICogIGMt ZmlsZS1zdHlsZTogImxpbnV4IgorICogIGluZGVudC10YWJzLW1vZGU6IHQKKyAqICBjLWluZGVu dC1sZXZlbDogOAorICogIGMtYmFzaWMtb2Zmc2V0OiA4CisgKiAgdGFiLXdpZHRoOiA4CisgKiBF bmQ6CisgKi8KZGlmZiAtLWdpdCBhL3Rvb2xzL2NvbnNvbGUvZGFlbW9uL2xvZ2ZpbGUuaCBiL3Rv b2xzL2NvbnNvbGUvZGFlbW9uL2xvZ2ZpbGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwLi44N2YzYzUxCi0tLSAvZGV2L251bGwKKysrIGIvdG9vbHMvY29uc29sZS9kYWVtb24v bG9nZmlsZS5oCkBAIC0wLDAgKzEsNTcgQEAKKy8qCisgKiAgQ29weXJpZ2h0IChDKSBDaXRyaXgg MjAxNgorICogIEF1dGhvcihzKTogV2VpIExpdSA8d2VpLmxpdTJAY2l0cml4LmNvbT4KKyAqCisg KiAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0 IGFuZC9vciBtb2RpZnkKKyAqICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFs IFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICogIHRoZSBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb247IHVuZGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZS4KKyAqCisgKiAgVGhpcyBw cm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws CisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg d2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV TEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y IG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv ZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqICBhbG9uZyB3aXRoIHRoaXMgcHJv Z3JhbTsgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorICovCisK KyNpZm5kZWYgWEVOQ09OU09MRURfTE9HRklMRV9ICisjZGVmaW5lIFhFTkNPTlNPTEVEX0xPR0ZJ TEVfSAorCisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisjaW5jbHVkZSA8c3lzL3N0YXQuaD4KKyNp bmNsdWRlIDx1bmlzdGQuaD4KKworI2RlZmluZSBMT0dGSUxFX01BWF9CQUNLVVBfTlVNICA1Cisj ZGVmaW5lIExPR0ZJTEVfTUFYX1NJWkUgICAgICAgICgxMDI0KjEyOCkKKworLyogQXBwZW5kIG9u bHkgYWJzdHJhY3Rpb24gZm9yIGxvZyBmaWxlICovCitzdHJ1Y3QgbG9nZmlsZV9lbnRyeSB7CisJ aW50IGZkOworCW9mZl90IHBvczsKKwlvZmZfdCBsZW47Cit9OworCitzdHJ1Y3QgbG9nZmlsZSB7 CisJY2hhciAqYmFzZXBhdGg7CisJbW9kZV90IG1vZGU7CisJb2ZmX3QgbWF4bGVuOworCXN0cnVj dCBsb2dmaWxlX2VudHJ5ICplbnRyeTsKK307CisKK3N0cnVjdCBsb2dmaWxlICpsb2dmaWxlX25l dyhjb25zdCBjaGFyICpwYXRoLCBtb2RlX3QgbW9kZSk7Cit2b2lkIGxvZ2ZpbGVfZnJlZShzdHJ1 Y3QgbG9nZmlsZSAqZik7Citzc2l6ZV90IGxvZ2ZpbGVfYXBwZW5kKHN0cnVjdCBsb2dmaWxlICpm aWxlLCBjb25zdCBjaGFyICpidWYsCisJCSAgICAgICBzaXplX3QgbGVuKTsKKworI2VuZGlmCS8q IFhFTkNPTlNPTEVEX0xPR0ZJTEVfSCAqLworCisvKgorICogTG9jYWwgdmFyaWFibGVzOgorICog IGMtZmlsZS1zdHlsZTogImxpbnV4IgorICogIGluZGVudC10YWJzLW1vZGU6IHQKKyAqICBjLWlu ZGVudC1sZXZlbDogOAorICogIGMtYmFzaWMtb2Zmc2V0OiA4CisgKiAgdGFiLXdpZHRoOiA4Cisg KiBFbmQ6CisgKi8KLS0gCjIuMS40CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVu Lm9yZwpodHRwOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK