From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=104.47.40.64; helo=nam03-co1-obe.outbound.protection.outlook.com; envelope-from=pankaj.bansal@nxp.com; receiver=edk2-devel@lists.01.org Received: from NAM03-CO1-obe.outbound.protection.outlook.com (mail-co1nam03on0064.outbound.protection.outlook.com [104.47.40.64]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id DF9FF222CF1A7 for ; Wed, 10 Jan 2018 01:27:02 -0800 (PST) Received: from CY4PR03CA0024.namprd03.prod.outlook.com (2603:10b6:903:33::34) by DM2PR0301MB0733.namprd03.prod.outlook.com (2a01:111:e400:3c0d::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.386.5; Wed, 10 Jan 2018 09:32:12 +0000 Received: from BN1BFFO11FD005.protection.gbl (2a01:111:f400:7c10::1:144) by CY4PR03CA0024.outlook.office365.com (2603:10b6:903:33::34) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.407.7 via Frontend Transport; Wed, 10 Jan 2018 09:32:11 +0000 Authentication-Results: spf=fail (sender IP is 192.88.168.50) smtp.mailfrom=nxp.com; linaro.org; dkim=none (message not signed) header.d=none;linaro.org; dmarc=fail action=none header.from=nxp.com; Received-SPF: Fail (protection.outlook.com: domain of nxp.com does not designate 192.88.168.50 as permitted sender) receiver=protection.outlook.com; client-ip=192.88.168.50; helo=tx30smr01.am.freescale.net; Received: from tx30smr01.am.freescale.net (192.88.168.50) by BN1BFFO11FD005.mail.protection.outlook.com (10.58.144.68) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.20.345.12 via Frontend Transport; Wed, 10 Jan 2018 09:31:40 +0000 Received: from uefi-workstation.ap.freescale.net ([10.232.133.75]) by tx30smr01.am.freescale.net (8.14.3/8.14.0) with ESMTP id w0A9VpXc015341; Wed, 10 Jan 2018 02:32:09 -0700 From: Pankaj Bansal To: CC: Pankaj Bansal , Leif Lindholm , Ard Biesheuvel Date: Wed, 10 Jan 2018 15:01:09 +0530 Message-ID: <1515576669-14171-2-git-send-email-pankaj.bansal@nxp.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1515576669-14171-1-git-send-email-pankaj.bansal@nxp.com> References: <1515576669-14171-1-git-send-email-pankaj.bansal@nxp.com> X-EOPAttributedMessage: 0 X-Matching-Connectors: 131600503004749633; (91ab9b29-cfa4-454e-5278-08d120cd25b8); () X-Forefront-Antispam-Report: CIP:192.88.168.50; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(346002)(39860400002)(376002)(39380400002)(396003)(2980300002)(1109001)(1110001)(339900001)(199004)(189003)(86362001)(85426001)(16586007)(2351001)(106466001)(104016004)(316002)(105606002)(53936002)(77096006)(5660300001)(305945005)(50466002)(48376002)(356003)(47776003)(2906002)(4326008)(51416003)(6916009)(81166006)(36756003)(68736007)(50226002)(54906003)(8936002)(76176011)(8656006)(97736004)(81156014)(2950100002)(8676002)(498600001); DIR:OUT; SFP:1101; SCL:1; SRVR:DM2PR0301MB0733; H:tx30smr01.am.freescale.net; FPR:; SPF:Fail; PTR:InfoDomainNonexistent; A:1; MX:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BN1BFFO11FD005; 1:PPurZk0N/nGVfdNE+cyFJq/aVnVUA4ypqmsbTh56G3zkzlP/PtFWvwSMKl9+TjSNq8usR3ngFVm8rtuvZC4Z3TU/iax9pZLaOmv1QjCmwmSmhuNErajI7f+fGnaZs1ES MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 44a6b197-f56a-4ae2-5f41-08d5580cf453 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(4534020)(4628075)(201703131517081)(5600026)(4604075)(2017052603307); SRVR:DM2PR0301MB0733; X-Microsoft-Exchange-Diagnostics: 1; DM2PR0301MB0733; 3:P82/DVWzj1+qY07J4Wfy0oGyo80JxhzrvtCQ/4sikFT+olQl0KL5MN6zX3nqQ8fMMeVxu5OGZrTIfZ92MlHxgSLkSY40ShFH5b7qvbQo1OX//KbwgFbCnurXVA1fMbgLjPAh+cMYErayhmxu2BINh5CSaLs5rwk4FwVn3a1xGMBzy8ebpetiPaCN92S4ekSAYjkgMIXsv0GeN+IdZIEfL+5BKdYI5xintZKsRvV64omWmMB94cGQofztd+2/wtV7tgoc07oW/R1IZt1bOFzIzdja9x1PcS9f3cix1PcRbOLUB/kCEieey+r3sNXOhaKoAvInRRzyPOxXQ9U1iRNOhbX0G/Qq70yzKrx+GkS8/4s=; 25:eaiuonNCHpGkxszUSSo9hLu6EIz/WZ5KctY5bp6UcTSx06Z6W/p8pwJ+6PXg5OjcQvGzHcK4CwIMLIb+EbYdhU7XGgYUL9WSAsW6FIWQZ/J0MrJpVcieSH54diBETf6Wa8n+mpVrV6s/B35CwWudQoVtqIB9W7N5HcegeSLUaKTPreDWMLOYTOBTsQUH9ar2nhtneZPj12cSor94vUysnl3o1m39pEoRb+x+D1VpPSPNaBZEnulFvTio0iy5M2qlfv9b4jG3V9jKm7dhIxkpxXnrR6zzbcRiYpheyInSB1lin52km2CL53TbVUAoBOuJlJp3KwTT8ujOZFFYYo9zvA== X-MS-TrafficTypeDiagnostic: DM2PR0301MB0733: X-Microsoft-Exchange-Diagnostics: 1; DM2PR0301MB0733; 31:5XS1dyIVHm0fG+LU2VKesyDQM0uSVvfpFVPKiXEQyvAaS3DeZNclavnmGsmUOMmJkZMmofmskN6Avf+wQG2RE08RB+p7SBPPgkB/+GLoPsZ3nppwOu2Ns8Gz6dfEtRAaJVqITqSe9SULbSLrb33zXbID91CdgY0pmb/ch6of+q2qtYnD+EOS7kZWV4+07zlYU+a20BTMcGr+AdkU91BoZBG2tiL5R67Czd5oJBg37XM=; 4:x/GeK+71ROtks1fqfel/wdEOmkb1z5o6rjg6CbhBXZ/lK5lFwLnX/4d4TX+pkI0VGwT+EzZZw/Mbee/e695W+mzlRDZLVu3JgnnNJCxgRQolI/PlqKeQalgl2Nss/oS7BAMlDlgkWxxmHoDmLAtRHR8BSKPonb+3p1awRvaLj2QEPIj2dOeJU6rCXT2K0P3So/FK/YAswFesErj9VTxq/3YiM9xzZOFDoDeLjA08ANdXyTz4FIsOF8bCuzSne4zOxu4V1K4/DeE3jEzlC5zUcW2MbyIovJftkbroiDYCO/6MU9PvvicE9JcD6KUD7RgP X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(185117386973197); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6095135)(2401047)(8121501046)(5005006)(3231023)(944510075)(944921075)(946801075)(946901075)(10201501046)(93006095)(93001095)(3002001)(6055026)(6096035)(20161123565025)(20161123556025)(201703131430075)(201703131448075)(201703131433075)(201703161259150)(201703151042153)(20161123563025)(20161123561025)(20161123559100)(201708071742011); SRVR:DM2PR0301MB0733; BCL:0; PCL:0; RULEID:(100000803101)(100110400095)(400006); SRVR:DM2PR0301MB0733; X-Forefront-PRVS: 0548586081 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM2PR0301MB0733; 23:EDKlpeHIUILoLsvbdGuJj+rzNyyw3xxvyPOFJ2V?= =?us-ascii?Q?3QBuOBUuolc8mRFvxcaU7DdxZxulJIltTiMkLkkoU8mRvzJlYtJVN2jpCoht?= =?us-ascii?Q?xWdpJ2RnI5vJka5h3hlWQhLgG4jl7fLUAKXiBxRzJ663Sf1Se6zKxXZYNigk?= =?us-ascii?Q?FyVa4GfsqXSLVVsqBNYfSNAOr242onz+fNu4H+l5UqcC8joHoEzEHnOi7cXG?= =?us-ascii?Q?y9DZPci3mHoisy9CKRzIuZ0UMQrOPebkjjhgG/p+p8Ui+mDQhIFTAJHi+Z1y?= =?us-ascii?Q?0xwu/ecuSaK47IsDYj77OLaa2L2VXAWrqRRq7HzdkCXE+2K3qH5a+ct+QUq8?= =?us-ascii?Q?ZrR9MHRTxIPdm3rL3TGT3WHQu6qmCdg9PEKT6PNFgL8qlHSceWWXpk0eJ0Jk?= =?us-ascii?Q?MHBHZkJGrWW6rKOPYoTtKUp5QG8Zr3GC9bgy7oZ+AKBmMDesnTsLRgeRzS31?= =?us-ascii?Q?j7Omagef/9MnsM+pfwPijrEYaGc0moBxzK1HZvmYUs6kFc3i2l06acHhGg5H?= =?us-ascii?Q?fCl/ryAesAAqINT7FxS5x7aGkUQX/r+uN36Gf8cCYUoA2lLq+gFURf7rk/6V?= =?us-ascii?Q?f34udVQGIEkkKnUYtjdXuVwKO7+ILyeXLiYLDqWdpY8h7Ig56RqwirdLp6p1?= =?us-ascii?Q?061A3+Y+mxDw4G0VcLhUL4FMklocJJ98RK1W48cy8mc3pa2m0yUB0ojvTj3+?= =?us-ascii?Q?PJTLvyyJNrRY169VnXlvqF4bgtitZ/uGgNCYIqHqt76aN6STdfxti+3YHfBi?= =?us-ascii?Q?zf0fo74XUjRdzY+r2+HiijCN5knns+zJiiN7vIeGJ7/vZXmCL+DRitf9ixoc?= =?us-ascii?Q?pPcPjOzjP4JVaO0ARjEcCxPh790wb1xaaR4wqgv3mDHnz0GoINV8eCnucJDp?= =?us-ascii?Q?emI1PjE8cedGByyeeHPujtaxLswEGm7feJccrwtr+KH59GGK9yQrds2HempI?= =?us-ascii?Q?KZrbaATTCYdtbxX/Q/BW72T93DAJNSPe1CI8hgbP4feMnm8sPy6ISyeCwaC4?= =?us-ascii?Q?w4LbW2olLdanxlJJBPtQq6NBOHGOUlD4D+/4X4HNOl5Qp6amVdwKsQv6PjiY?= =?us-ascii?Q?HHogPtyk=3D?= X-Microsoft-Exchange-Diagnostics: 1; DM2PR0301MB0733; 6:IrG/Gimlf5De2nZ5NgDQTHb4xLx5+53QT9g2ug+DTQBDBUI4gJZgCBKrYcBl8aZb1D77BdpjsHu4qoCbmBx5ct6bLu2vb35xMrMsrcmu+XEP1eA9Mm1PE19nXcEK+pUWY7D7qAUeZvERcMzNS/MGHokWs8iEiF7089akXm4MvKE1Hicb+HvTQ/O9jkrc6zLO0tIgi/oqtX8XPJ+KUDS0uwu0MNdkSM7dGzonoiXGaONoFrqvFo97WJmaLmnJNJr6fuirLzEyYyrYkO5GSc9SadnTIbWLkW7QW00cjnIKBuOaaEYfF144Gx4S6w7k1XE6mh774rEQVb4wNIyKuyJacVKvopjRe48ORj69lvBhYWM=; 5:NryzH3jZfEWP2u71PZrrCu7MoCLkpShnx8zvIIFvYgmKI9eRu0ic0U4pGZlBxn+tDcf4zYa8HYAOAybnH0Fxu+dhMUPo3Z4EfzsnId8H7IPLvrXqEwAH58l2pwMdRRSdCZHvS0G+ADKobjfbrG4QwQhKwXwO17z926hwKUoFXfo=; 24:pBgk/yO+ZBi9lOHK+pzjmACxw5KEhF16qzA3GjIYuZ4zReYREBIWYoipg9i66Sfxc6n9ARIlYMPFHb8lTJZd8CZ0t159phRMWlDTTzIJRAU=; 7:bOHfVxbrqGW58jnNN2ZTPg+pq9l2jOEyubcKVPRjaGk6Bd5wEgLnDj8/lxThNEewD/nMyXm01CeZ3Lg3YsqAiYP498nHNNB46KtYbA3HTJVrp1bUh1QNKObOMRDNyBGpChoGoJXgPEasb3zwO6wa0qA4yIcyzl8oA5y3PLuC+5I+UCNS7OVI3UR44Cnk7kvmN/0UW7qzz26yITRFV+KLWGQBwJpA5DpKP1G0oUsQmOfQaqKciLoXoLqCS1n1jOaB SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Jan 2018 09:31:40.2877 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 44a6b197-f56a-4ae2-5f41-08d5580cf453 X-MS-Exchange-CrossTenant-Id: 5afe0b00-7697-4969-b663-5eab37d5f47e X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=5afe0b00-7697-4969-b663-5eab37d5f47e; Ip=[192.88.168.50]; Helo=[tx30smr01.am.freescale.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM2PR0301MB0733 Subject: [PATCH 2/2] ArmPkg/ArmArchTimerLib: Implement GetElapsedTime function of TimerLib X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Jan 2018 09:27:03 -0000 Content-Type: text/plain This function calculates the time elaped in Naoseconds between call to this function and BaseTime, which is passed as argument. This is particularly useful in detecting timeout conditions. Cc: Leif Lindholm Cc: Ard Biesheuvel Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Pankaj Bansal diff --git a/ArmPkg/Library/ArmArchTimerLib/ArmArchTimerLib.c b/ArmPkg/Library/ArmArchTimerLib/ArmArchTimerLib.c index b81293c..0898339 100644 --- a/ArmPkg/Library/ArmArchTimerLib/ArmArchTimerLib.c +++ b/ArmPkg/Library/ArmArchTimerLib/ArmArchTimerLib.c @@ -290,3 +290,39 @@ GetTimeInNanoSecond ( return NanoSeconds; } + +/** + Get Elapsed time in Nanoseonds w.r.t BaseTime + + This function calculates the time elaped in Naoseconds between call to this + function and BaseTime, which is passed as argument. + + @param BaseTime BaseTime in NanoSeconds. + + @return The elapsed time in nanoseconds. + +**/ +UINT64 +EFIAPI +GetElapsedTime ( + IN UINT64 BaseTime + ) +{ + UINT64 NanoSeconds; + UINT64 Ticks; + + // + // Get current Ticks. + // + Ticks = GetPerformanceCounter(); + + // + // Convert Ticks to Nanoseconds + // + NanoSeconds = GetTimeInNanoSecond (Ticks); + + // + // return the difference + // + return (NanoSeconds - BaseTime); +} -- 2.7.4