From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail05.groups.io (mail05.groups.io [45.79.224.7]) by spool.mail.gandi.net (Postfix) with ESMTPS id 4CDF5AC194F for ; Tue, 18 Jun 2024 18:35:09 +0000 (UTC) DKIM-Signature: a=rsa-sha256; bh=wPDntqzhEPT46iyWJKZP3e5xpW5AqfuapVxJZ/8utV8=; c=relaxed/simple; d=groups.io; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References:MIME-Version:Precedence:List-Subscribe:List-Help:Sender:List-Id:Mailing-List:Delivered-To:Resent-Date:Resent-From:Reply-To:List-Unsubscribe-Post:List-Unsubscribe:Content-Transfer-Encoding; s=20240206; t=1718735709; v=1; b=TzARIMzkUMF5WKgf4EaF67ez+xEq53pCFO3IBaB0/B928SaNLtKmIAsRlNwB5UZw27W6mkvE 9Hw28AwE9M/jfIiEuVeqnva6u9MFxLVxgFopYuWcamwVE0wQW9xw2tSfAL0KvHzNfFPGLRTRhKD 0qOyVF+Rc/daGlicvWPc6SikHf4UfC0ergZnayZud5nlPzmnDBaya+QyeGp8LtYn2WAOl28onqA E+lvYB7wUkl78XwOKjY7kXCzxhRhj2zsuvcCNPu44pKlT6Vjp9JmV8xeLd5nJ4N169WoNrn09uX GQyg3AtRJGA/8/mtJxYDQDI4sRhOHnL2SFnR2T9tO93LA== X-Received: by 127.0.0.2 with SMTP id BJgJYY7687511xWaCcbFHXe6; Tue, 18 Jun 2024 11:35:07 -0700 X-Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mx.groups.io with SMTP id smtpd.web10.2043.1718735704665831391 for ; Tue, 18 Jun 2024 11:35:05 -0700 X-Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id EF5571063; Tue, 18 Jun 2024 11:35:28 -0700 (PDT) X-Received: from beelzebub.ast.arm.com (u203625-lin.austin.arm.com [10.118.28.39]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 43E0C3F64C; Tue, 18 Jun 2024 11:35:04 -0700 (PDT) From: "Sam Kaynor" To: devel@edk2.groups.io Cc: Ray Ni , Zhichao Gao Subject: [edk2-devel] [PATCH v8 2/5] ShellPkg: UefiShellDebug1CommandsLib: Image Execution Table in Dmem.c Date: Tue, 18 Jun 2024 13:34:56 -0500 Message-Id: <20240618183459.299381-3-Sam.Kaynor@arm.com> In-Reply-To: <20240618183459.299381-1-Sam.Kaynor@arm.com> References: <20240618183459.299381-1-Sam.Kaynor@arm.com> MIME-Version: 1.0 Precedence: Bulk List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Resent-Date: Tue, 18 Jun 2024 11:35:05 -0700 Resent-From: sam.kaynor@arm.com Reply-To: devel@edk2.groups.io,sam.kaynor@arm.com List-Unsubscribe-Post: List-Unsubscribe=One-Click List-Unsubscribe: X-Gm-Message-State: H7jVMFxRMtUAyGbhwbBKle73x7686176AA= Content-Transfer-Encoding: base64 X-GND-Status: LEGIT Authentication-Results: spool.mail.gandi.net; dkim=pass header.d=groups.io header.s=20240206 header.b=TzARIMzk; dmarc=fail reason="SPF not aligned (relaxed), DKIM not aligned (relaxed)" header.from=arm.com (policy=none); spf=pass (spool.mail.gandi.net: domain of bounce@groups.io designates 45.79.224.7 as permitted sender) smtp.mailfrom=bounce@groups.io UkVGOiBodHRwczovL2J1Z3ppbGxhLnRpYW5vY29yZS5vcmcvc2hvd19idWcuY2dpP2lkPTQzNTIK CkltcGxlbWVudGVkIGR1bXBpbmcgb2YgdGhlIEltYWdlIEV4ZWN1dGlvbiBUYWJsZSB1c2luZyBE bWVtLmMKCkNjOiBSYXkgTmkgPHJheS5uaUBpbnRlbC5jb20+CkNjOiBaaGljaGFvIEdhbyA8emhp Y2hhby5nYW9AaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBTYW0gS2F5bm9yIDxTYW0uS2F5bm9y QGFybS5jb20+ClRlc3RlZC1ieTogU3R1YXJ0IFlvZGVyIDxzdHVhcnQueW9kZXJAYXJtLmNvbT4K UmV2aWV3ZWQtYnk6IFN0dWFydCBZb2RlciA8c3R1YXJ0LnlvZGVyQGFybS5jb20+ClJldmlld2Vk LWJ5OiBaaGljaGFvIEdhbyA8emhpY2hhby5nYW9AaW50ZWwuY29tPgotLS0KCk5vdGVzOgogICAg djg6CiAgICAtIGNvcnJlY3RlZCBDSSBmYWlsdXJlIG9uIGJhZCB0eXBlIGNhc3QKICAgIC0gdmFy aW91cyBDSSBjaGFuZ2VzCiAgICB2NToKICAgIC0gY29ycmVjdGVkIGNvbW1lbnQgZm9yIEdldEJh c2VOYW1lCiAgICAtIGNvcnJlY3RlZCBzdHlsZSBlcnJvciAoc3BhY2VzIGJlZm9yZSAnKCcpCiAg ICB2NDoKICAgIC0gY2hhbmdlZCBJbWFnZSBFeGVjdXRpb24gb3V0cHV0IHRvIG1hdGNoIHNwZWMK ICAgIHYzOgogICAgLSBmaXhlZCBidWlsZCBlcnJvcwogICAgLSBhZGRlZCBzZXR3aWR0aCBmb3Jt YXR0aW5nIHRvIG91dHB1dAogICAgLSBwcm9wZXJseSB1c2luZyBBZGRyZXNzIHZhcmlhYmxlCgog U2hlbGxQa2cvTGlicmFyeS9VZWZpU2hlbGxEZWJ1ZzFDb21tYW5kc0xpYi9EbWVtLmMgICAgICAg ICAgICAgICAgICAgICAgICAgfCAxMzYgKysrKysrKysrKysrKysrKysrKysKIFNoZWxsUGtnL0xp YnJhcnkvVWVmaVNoZWxsRGVidWcxQ29tbWFuZHNMaWIvVWVmaVNoZWxsRGVidWcxQ29tbWFuZHNM aWIudW5pIHwgICAzICsKIDIgZmlsZXMgY2hhbmdlZCwgMTM5IGluc2VydGlvbnMoKykKCmRpZmYg LS1naXQgYS9TaGVsbFBrZy9MaWJyYXJ5L1VlZmlTaGVsbERlYnVnMUNvbW1hbmRzTGliL0RtZW0u YyBiL1NoZWxsUGtnL0xpYnJhcnkvVWVmaVNoZWxsRGVidWcxQ29tbWFuZHNMaWIvRG1lbS5jCmlu ZGV4IGQ0MDMwNzk4ZjNjYi4uODBjNzc5YTBiMzY5IDEwMDY0NAotLS0gYS9TaGVsbFBrZy9MaWJy YXJ5L1VlZmlTaGVsbERlYnVnMUNvbW1hbmRzTGliL0RtZW0uYworKysgYi9TaGVsbFBrZy9MaWJy YXJ5L1VlZmlTaGVsbERlYnVnMUNvbW1hbmRzTGliL0RtZW0uYwpAQCAtMTM5LDYgKzEzOSwxMzgg QEAgRGlzcGxheVJ0UHJvcGVydGllcyAoCiAgIHJldHVybiAoU2hlbGxTdGF0dXMpOw0KIH0NCiAN CisvKioNCisgIFJldHJpZXZlIHRoZSBJbWFnZUV4ZWN1dGlvblRhYmxlIEVudHJ5IEltYWdlTmFt ZSBmcm9tIEltYWdlUGF0aA0KKw0KKyAgQHBhcmFtW2luXSAgRmlsZU5hbWUgICAgVGhlIGZ1bGwg cGF0aCBvZiB0aGUgaW1hZ2UuDQorICBAcGFyYW1bb3V0XSBCYXNlTmFtZSAgICBUaGUgbmFtZSBv ZiB0aGUgaW1hZ2UuDQorKiovDQorRUZJX1NUQVRVUw0KK0dldEJhc2VOYW1lICgNCisgIElOICBD SEFSMTYgICpGaWxlTmFtZSwNCisgIE9VVCBDSEFSMTYgICoqQmFzZU5hbWUNCisgICkNCit7DQor ICBVSU5UTiAgIFN0ckxlbjsNCisgIENIQVIxNiAgKlN0clRhaWw7DQorDQorICBTdHJMZW4gPSBT dHJTaXplIChGaWxlTmFtZSk7DQorDQorICBmb3IgKFN0clRhaWwgPSBGaWxlTmFtZSArIFN0ckxl biAtIDE7IFN0clRhaWwgIT0gRmlsZU5hbWUgJiYgKlN0clRhaWwgIT0gTCdcXCc7IFN0clRhaWwt LSkgew0KKyAgfQ0KKw0KKyAgaWYgKFN0clRhaWwgPT0gRmlsZU5hbWUpIHsNCisgICAgcmV0dXJu IEVGSV9OT1RfRk9VTkQ7DQorICB9DQorDQorICAqQmFzZU5hbWUgPSBTdHJUYWlsKzE7DQorDQor ICByZXR1cm4gRUZJX1NVQ0NFU1M7DQorfQ0KKw0KKy8qKg0KKyAgUmV0cmlldmUgdGhlIEltYWdl RXhlY3V0aW9uVGFibGUgZW50cmllcy4NCisqKi8NCitFRklfU1RBVFVTDQorR2V0SW1hZ2VFeGVj dXRpb25JbmZvICgNCisgICkNCit7DQorICBFRklfU1RBVFVTICAgICAgICAgICAgICAgICAgICAg IFN0YXR1czsNCisgIEVGSV9JTUFHRV9FWEVDVVRJT05fSU5GT19UQUJMRSAgKkV4ZWNJbmZvVGFi bGVQdHI7DQorICBFRklfSU1BR0VfRVhFQ1VUSU9OX0lORk8gICAgICAgICpJbmZvUHRyOw0KKyAg Q0hBUjggICAgICAgICAgICAgICAgICAgICAgICAgICAqcHRyOw0KKyAgQ0hBUjE2ICAgICAgICAg ICAgICAgICAgICAgICAgICAqSW1hZ2VQYXRoOw0KKyAgQ0hBUjE2ICAgICAgICAgICAgICAgICAg ICAgICAgICAqSW1hZ2VOYW1lOw0KKyAgVUlOVE4gICAgICAgICAgICAgICAgICAgICAgICAgICBJ bWFnZTsNCisgIFVJTlROICAgICAgICAgICAgICAgICAgICAgICAgICAgKk51bWJlck9mSW1hZ2Vz Ow0KKyAgQ0hBUjE2ICAgICAgICAgICAgICAgICAgICAgICAgICAqQWN0aW9uVHlwZTsNCisNCisg IEVmaUdldFN5c3RlbUNvbmZpZ3VyYXRpb25UYWJsZSAoJmdFZmlJbWFnZVNlY3VyaXR5RGF0YWJh c2VHdWlkLCAoVk9JRCAqKikmRXhlY0luZm9UYWJsZVB0cik7DQorDQorICBOdW1iZXJPZkltYWdl cyA9ICZFeGVjSW5mb1RhYmxlUHRyLT5OdW1iZXJPZkltYWdlczsNCisNCisgIHB0ciA9IChDSEFS OCAqKUV4ZWNJbmZvVGFibGVQdHIgKyAxOw0KKw0KKyAgZm9yIChJbWFnZSA9IDA7IEltYWdlIDwg Kk51bWJlck9mSW1hZ2VzOyBJbWFnZSsrLCBwdHIgKz0gSW5mb1B0ci0+SW5mb1NpemUpIHsNCisg ICAgSW5mb1B0ciAgID0gKEVGSV9JTUFHRV9FWEVDVVRJT05fSU5GTyAqKXB0cjsNCisgICAgSW1h Z2VQYXRoID0gKENIQVIxNiAqKShJbmZvUHRyICsgMSk7DQorDQorICAgIEdldEJhc2VOYW1lIChJ bWFnZVBhdGgsICZJbWFnZU5hbWUpOw0KKw0KKyAgICBzd2l0Y2ggKEluZm9QdHItPkFjdGlvbikg ew0KKyAgICAgIGNhc2UgRUZJX0lNQUdFX0VYRUNVVElPTl9BVVRIRU5USUNBVElPTjoNCisgICAg ICAgIEFjdGlvblR5cGUgPSBMIkFVVEhFTlRJQ0FUSU9OIjsNCisgICAgICAgIGJyZWFrOw0KKyAg ICAgIGNhc2UgRUZJX0lNQUdFX0VYRUNVVElPTl9BVVRIX1VOVEVTVEVEOg0KKyAgICAgICAgQWN0 aW9uVHlwZSA9IEwiQVVUSF9VTlRFU1RFRCI7DQorICAgICAgICBicmVhazsNCisgICAgICBjYXNl IEVGSV9JTUFHRV9FWEVDVVRJT05fQVVUSF9TSUdfRkFJTEVEOg0KKyAgICAgICAgQWN0aW9uVHlw ZSA9IEwiQVVUSF9TSUdfRkFJTEVEIjsNCisgICAgICAgIGJyZWFrOw0KKyAgICAgIGNhc2UgRUZJ X0lNQUdFX0VYRUNVVElPTl9BVVRIX1NJR19QQVNTRUQ6DQorICAgICAgICBBY3Rpb25UeXBlID0g TCJBVVRIX1NJR19QQVNTRUQiOw0KKyAgICAgICAgYnJlYWs7DQorICAgICAgY2FzZSBFRklfSU1B R0VfRVhFQ1VUSU9OX0FVVEhfU0lHX05PVF9GT1VORDoNCisgICAgICAgIEFjdGlvblR5cGUgPSBM IkFVVEhfU0lHX05PVF9GT1VORCI7DQorICAgICAgICBicmVhazsNCisgICAgICBjYXNlIEVGSV9J TUFHRV9FWEVDVVRJT05fQVVUSF9TSUdfRk9VTkQ6DQorICAgICAgICBBY3Rpb25UeXBlID0gTCJB VVRIX1NJR19GT1VORCI7DQorICAgICAgICBicmVhazsNCisgICAgICBjYXNlIEVGSV9JTUFHRV9F WEVDVVRJT05fUE9MSUNZX0ZBSUxFRDoNCisgICAgICAgIEFjdGlvblR5cGUgPSBMIlBPTElDWV9G QUlMRUQiOw0KKyAgICAgICAgYnJlYWs7DQorICAgICAgY2FzZSBFRklfSU1BR0VfRVhFQ1VUSU9O X0lOSVRJQUxJWkVEOg0KKyAgICAgICAgQWN0aW9uVHlwZSA9IEwiSU5JVElBTElaRUQiOw0KKyAg ICAgICAgYnJlYWs7DQorICAgICAgZGVmYXVsdDoNCisgICAgICAgIEFjdGlvblR5cGUgPSBMImlu dmFsaWQgYWN0aW9uIjsNCisgICAgfQ0KKw0KKyAgICBTdGF0dXMgPSBTaGVsbFByaW50SGlpRXgg KA0KKyAgICAgICAgICAgICAgIC0xLA0KKyAgICAgICAgICAgICAgIC0xLA0KKyAgICAgICAgICAg ICAgIE5VTEwsDQorICAgICAgICAgICAgICAgU1RSSU5HX1RPS0VOIChTVFJfRE1FTV9JTUdfRVhF X0VOVFJZKSwNCisgICAgICAgICAgICAgICBnU2hlbGxEZWJ1ZzFIaWlIYW5kbGUsDQorICAgICAg ICAgICAgICAgSW1hZ2VOYW1lLA0KKyAgICAgICAgICAgICAgIEFjdGlvblR5cGUNCisgICAgICAg ICAgICAgICApOw0KKyAgfQ0KKw0KKyAgcmV0dXJuIFN0YXR1czsNCit9DQorDQorLyoqDQorICBE aXNwbGF5IHRoZSBJbWFnZUV4ZWN1dGlvblRhYmxlIGVudHJpZXMNCisNCisgIEBwYXJhbVtpbl0g QWRkcmVzcyAgICBUaGUgcG9pbnRlciB0byB0aGUgSW1hZ2VFeGVjdXRpb25UYWJsZS4NCisqKi8N CitTSEVMTF9TVEFUVVMNCitEaXNwbGF5SW1hZ2VFeGVjdXRpb25FbnRyaWVzICgNCisgIElOIFVJ TlQ2NCAgQWRkcmVzcw0KKyAgKQ0KK3sNCisgIFNIRUxMX1NUQVRVUyAgU2hlbGxTdGF0dXM7DQor ICBFRklfU1RBVFVTICAgIFN0YXR1czsNCisNCisgIFNoZWxsU3RhdHVzID0gU0hFTExfU1VDQ0VT UzsNCisNCisgIGlmIChBZGRyZXNzICE9IDApIHsNCisgICAgU2hlbGxQcmludEhpaUV4ICgtMSwg LTEsIE5VTEwsIFNUUklOR19UT0tFTiAoU1RSX0RNRU1fSU1HX0VYRV9UQUJMRSksIGdTaGVsbERl YnVnMUhpaUhhbmRsZSk7DQorICAgIFN0YXR1cyA9IEdldEltYWdlRXhlY3V0aW9uSW5mbyAoKTsN CisgICAgaWYgKEVGSV9FUlJPUiAoU3RhdHVzKSkgew0KKyAgICAgIFNoZWxsU3RhdHVzID0gU0hF TExfQUJPUlRFRDsNCisgICAgICBTaGVsbFByaW50SGlpRXggKC0xLCAtMSwgTlVMTCwgU1RSSU5H X1RPS0VOIChTVFJfRE1FTV9FUlJfR0VUX0ZBSUwpLCBnU2hlbGxEZWJ1ZzFIaWlIYW5kbGUsIEwi SW1hZ2VFeGVjdXRpb25UYWJsZSIpOw0KKyAgICB9DQorICB9IGVsc2Ugew0KKyAgICBTaGVsbFBy aW50SGlpRXggKC0xLCAtMSwgTlVMTCwgU1RSSU5HX1RPS0VOIChTVFJfRE1FTV9FUlJfTk9UX0ZP VU5EKSwgZ1NoZWxsRGVidWcxSGlpSGFuZGxlLCBMIkltYWdlRXhlY3V0aW9uVGFibGUiKTsNCisg IH0NCisNCisgIHJldHVybiAoU2hlbGxTdGF0dXMpOw0KK30NCisNCisNCisNCiBTVEFUSUMgQ09O U1QgU0hFTExfUEFSQU1fSVRFTSAgUGFyYW1MaXN0W10gPSB7DQogICB7IEwiLW1taW8iLCAgICBU eXBlRmxhZyB9LA0KICAgeyBMIi12ZXJib3NlIiwgVHlwZUZsYWcgfSwNCkBAIC0zNjksNiArNTAx LDEwIEBAIFNoZWxsQ29tbWFuZFJ1bkRtZW0gKAogICAgICAgICAgIGlmIChTaGVsbFN0YXR1cyA9 PSBTSEVMTF9TVUNDRVNTKSB7DQogICAgICAgICAgICAgU2hlbGxTdGF0dXMgPSBEaXNwbGF5UnRQ cm9wZXJ0aWVzIChSdFByb3BlcnRpZXNUYWJsZUFkZHJlc3MpOw0KICAgICAgICAgICB9DQorDQor ICAgICAgICAgIGlmIChTaGVsbFN0YXR1cyA9PSBTSEVMTF9TVUNDRVNTKSB7DQorICAgICAgICAg ICAgU2hlbGxTdGF0dXMgPSBEaXNwbGF5SW1hZ2VFeGVjdXRpb25FbnRyaWVzIChJbWFnZUV4ZWN1 dGlvblRhYmxlQWRkcmVzcyk7DQorICAgICAgICAgIH0NCiAgICAgICAgIH0NCiAgICAgICB9IGVs c2Ugew0KICAgICAgICAgU2hlbGxTdGF0dXMgPSBEaXNwbGF5TW1pb01lbW9yeSAoQWRkcmVzcywg KFVJTlROKVNpemUpOw0KZGlmZiAtLWdpdCBhL1NoZWxsUGtnL0xpYnJhcnkvVWVmaVNoZWxsRGVi dWcxQ29tbWFuZHNMaWIvVWVmaVNoZWxsRGVidWcxQ29tbWFuZHNMaWIudW5pIGIvU2hlbGxQa2cv TGlicmFyeS9VZWZpU2hlbGxEZWJ1ZzFDb21tYW5kc0xpYi9VZWZpU2hlbGxEZWJ1ZzFDb21tYW5k c0xpYi51bmkKaW5kZXggYTIyNDE2MTRmMTA5Li4zYjczMDE2NGRkY2UgMTAwNjQ0Ci0tLSBhL1No ZWxsUGtnL0xpYnJhcnkvVWVmaVNoZWxsRGVidWcxQ29tbWFuZHNMaWIvVWVmaVNoZWxsRGVidWcx Q29tbWFuZHNMaWIudW5pCisrKyBiL1NoZWxsUGtnL0xpYnJhcnkvVWVmaVNoZWxsRGVidWcxQ29t bWFuZHNMaWIvVWVmaVNoZWxsRGVidWcxQ29tbWFuZHNMaWIudW5pCkBAIC0xNDQsNiArMTQ0LDkg QEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAg VVBEQVRFX0NBUFNVTEUgICAgICAgICAgICAgICAgICAgJWRcclxuIg0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgUVVFUllfQ0FQU1VMRV9DQVBB QklMSVRJRVMgICAgICAgJWRcclxuIg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIiAgUVVFUllfVkFSSUFCTEVfSU5GTyAgICAgICAgICAgICAgJWRc clxuIg0KKyNzdHJpbmcgU1RSX0RNRU1fSU1HX0VYRV9UQUJMRSAgICAjbGFuZ3VhZ2UgZW4tVVMg IlxyXG5JbWFnZSBFeGVjdXRpb24gVGFibGVcclxuIg0KKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS1cclxuIg0KKyNzdHJpbmcgU1RSX0RNRU1fSU1HX0VYRV9FTlRSWSAgICAjbGFu Z3VhZ2UgZW4tVVMgIiUyMHM6ICVzXHJcbiINCiAjc3RyaW5nIFNUUl9ETUVNX0VSUl9OT1RfRk9V TkQgICAgI2xhbmd1YWdlIGVuLVVTICJcclxuJUglcyVOOiBUYWJsZSBhZGRyZXNzIG5vdCBmb3Vu ZC5cclxuIg0KICNzdHJpbmcgU1RSX0RNRU1fRVJSX0dFVF9GQUlMICAgICAjbGFuZ3VhZ2UgZW4t VVMgIlxyXG4lSCVzJU46IFVuYWJsZSB0byBnZXQgdGFibGUgaW5mb3JtYXRpb24uXHJcbiINCiAN Ci0tIAoyLjM0LjEKCg== -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#119613): https://edk2.groups.io/g/devel/message/119613 Mute This Topic: https://groups.io/mt/106746834/7686176 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io] -=-=-=-=-=-=-=-=-=-=-=-