From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dave Airlie Subject: [PATCH 2/7] drm/amdgpu: introduce grph object id from DAL. Date: Thu, 14 Apr 2016 12:56:05 +1000 Message-ID: <1460602570-20641-3-git-send-email-airlied@gmail.com> References: <1460602570-20641-1-git-send-email-airlied@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by gabe.freedesktop.org (Postfix) with ESMTPS id DAAB36E175 for ; Thu, 14 Apr 2016 02:56:15 +0000 (UTC) Received: from int-mx10.intmail.prod.int.phx2.redhat.com (int-mx10.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 91F3681104 for ; Thu, 14 Apr 2016 02:56:15 +0000 (UTC) Received: from dreadlord-bne-redhat-com.bne.redhat.com (dhcp-40-179.bne.redhat.com [10.64.40.179]) by int-mx10.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id u3E2uCTL027239 for ; Wed, 13 Apr 2016 22:56:14 -0400 In-Reply-To: <1460602570-20641-1-git-send-email-airlied@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org RnJvbTogRGF2ZSBBaXJsaWUgPGFpcmxpZWRAcmVkaGF0LmNvbT4KCkRBTCBoYXMgYSBncmFwaGlj cyBvYmplY3QgaWQgd2Ugc2hvdWxkIHJlLXVzZSB0aGlzIGluIHRoZSBtYWlubGluZQpkcml2ZXIs IGFuZCB3cmFwIGFyb3VuZCBpdCBmb3Igbm93LgoKVGhpcyBwYXRjaCBpbnRyb2R1Y2VzIHRoZSBj b3JlIG9mIHRoZSBncnBoIGZ1bmN0aW9uYWxpdHkgcG9ydGVkCmZyb20gREFMLgoKU2lnbmVkLW9m Zi1ieTogRGF2ZSBBaXJsaWUgPGFpcmxpZWRAcmVkaGF0LmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9k cm0vYW1kL2FtZGdwdS9hbWRncHVfbW9kZS5oICAgICAgICAgICB8ICAgMiArCiAuLi4vZ3B1L2Ry bS9hbWQvaW5jbHVkZS9kaXNwbGF5X2dycGhfb2JqZWN0X2lkLmggICB8IDMxOCArKysrKysrKysr KysrKysrKysrKysKIDIgZmlsZXMgY2hhbmdlZCwgMzIwIGluc2VydGlvbnMoKykKIGNyZWF0ZSBt b2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvZGlzcGxheV9ncnBoX29iamVj dF9pZC5oCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X21v ZGUuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9tb2RlLmgKaW5kZXggOGQ0 MzJlNi4uNGI4MDk3OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1k Z3B1X21vZGUuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfbW9kZS5o CkBAIC00MCw2ICs0MCw4IEBACiAjaW5jbHVkZSA8bGludXgvaTJjLmg+CiAjaW5jbHVkZSA8bGlu dXgvaTJjLWFsZ28tYml0Lmg+CiAKKyNpbmNsdWRlICJkaXNwbGF5X2dycGhfb2JqZWN0X2lkLmgi CisKIHN0cnVjdCBhbWRncHVfYm87CiBzdHJ1Y3QgYW1kZ3B1X2RldmljZTsKIHN0cnVjdCBhbWRn cHVfZW5jb2RlcjsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9kaXNw bGF5X2dycGhfb2JqZWN0X2lkLmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvZGlzcGxh eV9ncnBoX29iamVjdF9pZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJi Yjg2NDIKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvZGlz cGxheV9ncnBoX29iamVjdF9pZC5oCkBAIC0wLDAgKzEsMzE4IEBACisvKgorICogQ29weXJpZ2h0 IDIwMTItMTUgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLgorICoKKyAqIFBlcm1pc3Npb24g aXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmlu ZyBhCisgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlv biBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAorICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0 aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgorICogdGhlIHJp Z2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1 YmxpY2Vuc2UsCisgKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8g cGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKKyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBk byBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFi b3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUg aW5jbHVkZWQgaW4KKyAqIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhl IFNvZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRI T1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJTVBMSUVELCBJTkNMVURJ TkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwK KyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQu ICBJTiBOTyBFVkVOVCBTSEFMTAorICogVEhFIENPUFlSSUdIVCBIT0xERVIoUykgT1IgQVVUSE9S KFMpIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SCisgKiBPVEhFUiBMSUFCSUxJ VFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwK KyAqIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdB UkUgT1IgVEhFIFVTRSBPUgorICogT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgorICoK KyAqIEF1dGhvcnM6IEFNRAorICoKKyAqLworCisjaWZuZGVmIF9fRElTUExBWV9HUlBIX09CSkVD VF9JRF9IX18KKyNkZWZpbmUgX19ESVNQTEFZX0dSUEhfT0JKRUNUX0lEX0hfXworCisvKiBUeXBl cyBvZiBncmFwaGljcyBvYmplY3RzICovCitlbnVtIG9iamVjdF90eXBlIHsKKwlPQkpFQ1RfVFlQ RV9VTktOT1dOICA9IDAsCisKKwkvKiBEaXJlY3QgQVRPTSBCSU9TIHRyYW5zbGF0aW9uICovCisJ T0JKRUNUX1RZUEVfR1BVLAorCU9CSkVDVF9UWVBFX0VOQ09ERVIsCisJT0JKRUNUX1RZUEVfQ09O TkVDVE9SLAorCU9CSkVDVF9UWVBFX1JPVVRFUiwKKwlPQkpFQ1RfVFlQRV9HRU5FUklDLAorCisJ LyogRHJpdmVyIHNwZWNpZmljICovCisJT0JKRUNUX1RZUEVfQVVESU8sCisJT0JKRUNUX1RZUEVf Q09OVFJPTExFUiwKKwlPQkpFQ1RfVFlQRV9DTE9DS19TT1VSQ0UsCisJT0JKRUNUX1RZUEVfRU5H SU5FLAorCisJT0JKRUNUX1RZUEVfQ09VTlQKK307CisKKy8qIEVudW1lcmF0aW9uIGluc2lkZSBv bmUgdHlwZSBvZiBncmFwaGljcyBvYmplY3RzICovCitlbnVtIG9iamVjdF9lbnVtX2lkIHsKKwlF TlVNX0lEX1VOS05PV04gPSAwLAorCUVOVU1fSURfMSwKKwlFTlVNX0lEXzIsCisJRU5VTV9JRF8z LAorCUVOVU1fSURfNCwKKwlFTlVNX0lEXzUsCisJRU5VTV9JRF82LAorCUVOVU1fSURfNywKKwor CUVOVU1fSURfQ09VTlQKK307CisKKy8qIEdlbmVyaWMgb2JqZWN0IGlkcyAqLworZW51bSBnZW5l cmljX2lkIHsKKwlHRU5FUklDX0lEX1VOS05PV04gPSAwLAorCUdFTkVSSUNfSURfTVhNX09QTSwK KwlHRU5FUklDX0lEX0dMU1lOQywKKwlHRU5FUklDX0lEX1NURVJFTywKKworCUdFTkVSSUNfSURf Q09VTlQKK307CisKKy8qIENvbnRyb2xsZXIgb2JqZWN0IGlkcyAqLworZW51bSBjb250cm9sbGVy X2lkIHsKKwlDT05UUk9MTEVSX0lEX1VOREVGSU5FRCA9IDAsCisJQ09OVFJPTExFUl9JRF9EMCwK KwlDT05UUk9MTEVSX0lEX0QxLAorCUNPTlRST0xMRVJfSURfRDIsCisJQ09OVFJPTExFUl9JRF9E MywKKwlDT05UUk9MTEVSX0lEX0Q0LAorCUNPTlRST0xMRVJfSURfRDUsCisJQ09OVFJPTExFUl9J RF9VTkRFUkxBWTAsCisJQ09OVFJPTExFUl9JRF9NQVggPSBDT05UUk9MTEVSX0lEX1VOREVSTEFZ MAorfTsKKworI2RlZmluZSBJU19VTkRFUkxBWV9DT05UUk9MTEVSKGN0cmxyX2lkKSAoY3RybHJf aWQgPj0gQ09OVFJPTExFUl9JRF9VTkRFUkxBWTApCisKKy8qCisgKiBDbG9ja1NvdXJjZSBvYmpl Y3QgaWRzLgorICogV2UgbWFpbnRhaW4gdGhlIG9yZGVyIG1hdGNoaW5nIChtb3JlIG9yIGxlc3Mp IEFUT00gQklPUworICogdG8gaW1wcm92ZSBvcHRpbWl6ZWQgYWNxdWlyZQorICovCitlbnVtIGNs b2NrX3NvdXJjZV9pZCB7CisJQ0xPQ0tfU09VUkNFX0lEX1VOREVGSU5FRCA9IDAsCisJQ0xPQ0tf U09VUkNFX0lEX1BMTDAsCisJQ0xPQ0tfU09VUkNFX0lEX1BMTDEsCisJQ0xPQ0tfU09VUkNFX0lE X1BMTDIsCisJQ0xPQ0tfU09VUkNFX0lEX0VYVEVSTkFMLCAvKiBJRCAoUGh5KSByZWYuIGNsay4g Zm9yIERQICovCisJQ0xPQ0tfU09VUkNFX0lEX0RDUExMLAorCUNMT0NLX1NPVVJDRV9JRF9ERlMs CS8qIERFTlRJU1QgKi8KKwlDTE9DS19TT1VSQ0VfSURfVkNFLAkvKiBWQ0UgZG9lcyBub3QgbmVl ZCBhIHJlYWwgUExMICovCisJLyogVXNlZCB0byBkaXN0aW5ndWlzaCBiZXR3ZWVuIHByb2dyYW1t aW5nIHBpeGVsIGNsb2NrIGFuZCBJRCAoUGh5KSBjbG9jayAqLworCUNMT0NLX1NPVVJDRV9JRF9E UF9EVE8sCisKKwlDTE9DS19TT1VSQ0VfQ09NQk9fUEhZX1BMTDAsIC8qY29tYm8gUEhZIFBMTCBk ZWZpbmVzIChEQyAxMS4yIGFuZCB1cCkqLworCUNMT0NLX1NPVVJDRV9DT01CT19QSFlfUExMMSwK KwlDTE9DS19TT1VSQ0VfQ09NQk9fUEhZX1BMTDIsCisJQ0xPQ0tfU09VUkNFX0NPTUJPX1BIWV9Q TEwzLAorCUNMT0NLX1NPVVJDRV9DT01CT19QSFlfUExMNCwKKwlDTE9DS19TT1VSQ0VfQ09NQk9f UEhZX1BMTDUsCisJQ0xPQ0tfU09VUkNFX0NPTUJPX0RJU1BMQVlfUExMMAorfTsKKworLyogRW5j b2RlciBvYmplY3QgaWRzICovCitlbnVtIGVuY29kZXJfaWQgeworCUVOQ09ERVJfSURfVU5LTk9X TiA9IDAsCisKKwkvKiBSYWRlb24gQ2xhc3MgRGlzcGxheSBIYXJkd2FyZSAqLworCUVOQ09ERVJf SURfSU5URVJOQUxfTFZEUywKKwlFTkNPREVSX0lEX0lOVEVSTkFMX1RNRFMxLAorCUVOQ09ERVJf SURfSU5URVJOQUxfVE1EUzIsCisJRU5DT0RFUl9JRF9JTlRFUk5BTF9EQUMxLAorCUVOQ09ERVJf SURfSU5URVJOQUxfREFDMiwJLyogVFYvQ1YgREFDICovCisKKwkvKiBFeHRlcm5hbCBUaGlyZCBQ YXJ0eSBFbmNvZGVycyAqLworCUVOQ09ERVJfSURfSU5URVJOQUxfTFZUTTEsCS8qIG5vdCB1c2Vk IGZvciBSYWRlb24gKi8KKwlFTkNPREVSX0lEX0lOVEVSTkFMX0hETUksCisKKwkvKiBLYWxlZGlz b3BlIChLTERTQ1ApIENsYXNzIERpc3BsYXkgSGFyZHdhcmUgKi8KKwlFTkNPREVSX0lEX0lOVEVS TkFMX0tMRFNDUF9UTURTMSwKKwlFTkNPREVSX0lEX0lOVEVSTkFMX0tMRFNDUF9EQUMxLAorCUVO Q09ERVJfSURfSU5URVJOQUxfS0xEU0NQX0RBQzIsCS8qIFNoYXJlZCB3aXRoIENWL1RWIGFuZCBD UlQgKi8KKwkvKiBFeHRlcm5hbCBUTURTIChkdWFsIGxpbmspICovCisJRU5DT0RFUl9JRF9FWFRF Uk5BTF9NVlBVX0ZQR0EsCS8qIE1WUFUgRlBHQSBjaGlwICovCisJRU5DT0RFUl9JRF9JTlRFUk5B TF9EREksCisJRU5DT0RFUl9JRF9JTlRFUk5BTF9VTklQSFksCisJRU5DT0RFUl9JRF9JTlRFUk5B TF9LTERTQ1BfTFZUTUEsCisJRU5DT0RFUl9JRF9JTlRFUk5BTF9VTklQSFkxLAorCUVOQ09ERVJf SURfSU5URVJOQUxfVU5JUEhZMiwKKwlFTkNPREVSX0lEX0VYVEVSTkFMX05VVE1FRywKKwlFTkNP REVSX0lEX0VYVEVSTkFMX1RSQVZJUywKKworCUVOQ09ERVJfSURfSU5URVJOQUxfV0lSRUxFU1Ms CS8qIEludGVybmFsIHdpcmVsZXNzIGRpc3BsYXkgZW5jb2RlciAqLworCUVOQ09ERVJfSURfSU5U RVJOQUxfVU5JUEhZMywKKwlFTkNPREVSX0lEX0lOVEVSTkFMX1ZJUlRVQUwsCit9OworCisvKiBD b25uZWN0b3Igb2JqZWN0IGlkcyAqLworZW51bSBjb25uZWN0b3JfaWQgeworCUNPTk5FQ1RPUl9J RF9VTktOT1dOID0gMCwKKwlDT05ORUNUT1JfSURfU0lOR0xFX0xJTktfRFZJSSA9IDEsCisJQ09O TkVDVE9SX0lEX0RVQUxfTElOS19EVklJID0gMiwKKwlDT05ORUNUT1JfSURfU0lOR0xFX0xJTktf RFZJRCA9IDMsCisJQ09OTkVDVE9SX0lEX0RVQUxfTElOS19EVklEID0gNCwKKwlDT05ORUNUT1Jf SURfVkdBID0gNSwKKwlDT05ORUNUT1JfSURfSERNSV9UWVBFX0EgPSAxMiwKKwlDT05ORUNUT1Jf SURfTFZEUyA9IDE0LAorCUNPTk5FQ1RPUl9JRF9QQ0lFID0gMTYsCisJQ09OTkVDVE9SX0lEX0hB UkRDT0RFX0RWSSA9IDE4LAorCUNPTk5FQ1RPUl9JRF9ESVNQTEFZX1BPUlQgPSAxOSwKKwlDT05O RUNUT1JfSURfRURQID0gMjAsCisJQ09OTkVDVE9SX0lEX01YTSA9IDIxLAorCUNPTk5FQ1RPUl9J RF9XSVJFTEVTUyA9IDIyLAorCUNPTk5FQ1RPUl9JRF9NSVJBQ0FTVCA9IDIzLAorCisJQ09OTkVD VE9SX0lEX1ZJUlRVQUwgPSAxMDAKK307CisKKworLyogQXVkaW8gb2JqZWN0IGlkcyAqLworZW51 bSBhdWRpb19pZCB7CisJQVVESU9fSURfVU5LTk9XTiA9IDAsCisJQVVESU9fSURfSU5URVJOQUxf QVpBTElBCit9OworCisKKy8qIEVuZ2luZSBvYmplY3QgaWRzICovCitlbnVtIGVuZ2luZV9pZCB7 CisJRU5HSU5FX0lEX0RJR0EsCisJRU5HSU5FX0lEX0RJR0IsCisJRU5HSU5FX0lEX0RJR0MsCisJ RU5HSU5FX0lEX0RJR0QsCisJRU5HSU5FX0lEX0RJR0UsCisJRU5HSU5FX0lEX0RJR0YsCisJRU5H SU5FX0lEX0RJR0csCisJRU5HSU5FX0lEX0RBQ0EsCisJRU5HSU5FX0lEX0RBQ0IsCisJRU5HSU5F X0lEX1ZDRSwJLyogd2lyZWxlc3MgZGlzcGxheSBwc2V1ZG8tZW5jb2RlciAqLworCUVOR0lORV9J RF9WSVJUVUFMLAorCisJRU5HSU5FX0lEX0NPVU5ULAorCUVOR0lORV9JRF9VTktOT1dOID0gKC0x TCkKK307CisKK3VuaW9uIHN1cHBvcnRlZF9zdHJlYW1fZW5naW5lcyB7CisJc3RydWN0IHsKKwkJ dWludDMyX3QgRU5HSU5FX0lEX0RJR0E6MTsKKwkJdWludDMyX3QgRU5HSU5FX0lEX0RJR0I6MTsK KwkJdWludDMyX3QgRU5HSU5FX0lEX0RJR0M6MTsKKwkJdWludDMyX3QgRU5HSU5FX0lEX0RJR0Q6 MTsKKwkJdWludDMyX3QgRU5HSU5FX0lEX0RJR0U6MTsKKwkJdWludDMyX3QgRU5HSU5FX0lEX0RJ R0Y6MTsKKwkJdWludDMyX3QgRU5HSU5FX0lEX0RJR0c6MTsKKwkJdWludDMyX3QgRU5HSU5FX0lE X0RBQ0E6MTsKKwkJdWludDMyX3QgRU5HSU5FX0lEX0RBQ0I6MTsKKwkJdWludDMyX3QgRU5HSU5F X0lEX1ZDRToxOworCX0gZW5naW5lOworCXVpbnQzMl90IHVfYWxsOworfTsKKworZW51bSB0cmFu c21pdHRlcl9jb2xvcl9kZXB0aCB7CisJVFJBTlNNSVRURVJfQ09MT1JfREVQVEhfMjQgPSAwLCAg LyogOCAgYml0cyAqLworCVRSQU5TTUlUVEVSX0NPTE9SX0RFUFRIXzMwLCAgICAgIC8qIDEwIGJp dHMgKi8KKwlUUkFOU01JVFRFUl9DT0xPUl9ERVBUSF8zNiwgICAgICAvKiAxMiBiaXRzICovCisJ VFJBTlNNSVRURVJfQ09MT1JfREVQVEhfNDggICAgICAgLyogMTYgYml0cyAqLworfTsKKworLyoK KyAqIGdyYXBoaWNzX29iamVjdF9pZCBzdHJ1Y3QKKyAqCisgKiBncmFwaGljc19vYmplY3RfaWQg aXMgYSB2ZXJ5IHNpbXBsZSBzdHJ1Y3Qgd3JhcHBpbmcgMzJiaXQgR3JhcGhpY3MKKyAqIE9iamVj dCBpZGVudGljYXRpb24KKyAqCisgKiBUaGlzIHN0cnVjdCBzaG91bGQgc3RheSB2ZXJ5IHNpbXBs ZQorICogIE5vIGRlcGVuZGVuY2llcyBhdCBhbGwgKG5vIGluY2x1ZGVzKQorICogIE5vIGRlYnVn IG1lc3NhZ2VzIG9yIGFzc2VydHMKKyAqICBObyAjaWZuZGVmIGFuZCBwcmVwcm9jZXNzb3IgZGly ZWN0aXZlcworICogIE5vIGdyb3cgaW4gc3BhY2UgKG5vIG1vcmUgZGF0YSBtZW1iZXIpCisgKi8K Kworc3RydWN0IGdyYXBoaWNzX29iamVjdF9pZCB7CisJdWludDMyX3QgIGlkOjg7CisJdWludDMy X3QgIGVudW1faWQ6NDsKKwl1aW50MzJfdCAgdHlwZTo0OworCXVpbnQzMl90ICByZXNlcnZlZDox NjsgLyogZm9yIHBhZGRpbmcuIHRvdGFsIHNpemUgc2hvdWxkIGJlIHUzMiAqLworfTsKKworc3Rh dGljIGlubGluZSBzdHJ1Y3QgZ3JhcGhpY3Nfb2JqZWN0X2lkIGRpc3BsYXlfZ3JhcGhpY3Nfb2Jq ZWN0X2lkX2luaXQoCisJdWludDMyX3QgaWQsCisJZW51bSBvYmplY3RfZW51bV9pZCBlbnVtX2lk LAorCWVudW0gb2JqZWN0X3R5cGUgdHlwZSkKK3sKKwlzdHJ1Y3QgZ3JhcGhpY3Nfb2JqZWN0X2lk IHJlc3VsdCA9IHsKKwkJaWQsIGVudW1faWQsIHR5cGUsIDAKKwl9OworCisJcmV0dXJuIHJlc3Vs dDsKK30KKworc3RhdGljIGlubGluZSBib29sIGRpc3BsYXlfZ3JhcGhpY3Nfb2JqZWN0X2lkX2lz X2VxdWFsX3VuY2hlY2tlZCgKKwlzdHJ1Y3QgZ3JhcGhpY3Nfb2JqZWN0X2lkIGlkMSwKKwlzdHJ1 Y3QgZ3JhcGhpY3Nfb2JqZWN0X2lkIGlkMikKK3sKKwlpZiAoaWQxLmlkID09IGlkMi5pZCAmJiBp ZDEuZW51bV9pZCA9PSBpZDIuZW51bV9pZAorCSAgICAmJiBpZDEudHlwZSA9PSBpZDIudHlwZSkK KwkJcmV0dXJuIHRydWU7CisKKwlyZXR1cm4gZmFsc2U7Cit9CisKK3N0YXRpYyBpbmxpbmUgZW51 bSBjb250cm9sbGVyX2lkIGRpc3BsYXlfZ3JhcGhpY3Nfb2JqZWN0X2lkX2dldF9jb250cm9sbGVy X2lkKAorCXN0cnVjdCBncmFwaGljc19vYmplY3RfaWQgaWQpCit7CisJaWYgKGlkLnR5cGUgPT0g T0JKRUNUX1RZUEVfQ09OVFJPTExFUikKKwkJcmV0dXJuIGlkLmlkOworCXJldHVybiBDT05UUk9M TEVSX0lEX1VOREVGSU5FRDsKK30KKworc3RhdGljIGlubGluZSBlbnVtIGNsb2NrX3NvdXJjZV9p ZCBkaXNwbGF5X2dyYXBoaWNzX29iamVjdF9pZF9nZXRfY2xvY2tfc291cmNlX2lkKAorCXN0cnVj dCBncmFwaGljc19vYmplY3RfaWQgaWQpCit7CisJaWYgKGlkLnR5cGUgPT0gT0JKRUNUX1RZUEVf Q0xPQ0tfU09VUkNFKQorCQlyZXR1cm4gaWQuaWQ7CisJcmV0dXJuIENMT0NLX1NPVVJDRV9JRF9V TkRFRklORUQ7Cit9CisKK3N0YXRpYyBpbmxpbmUgZW51bSBlbmNvZGVyX2lkIGRpc3BsYXlfZ3Jh cGhpY3Nfb2JqZWN0X2lkX2dldF9lbmNvZGVyX2lkKAorCXN0cnVjdCBncmFwaGljc19vYmplY3Rf aWQgaWQpCit7CisJaWYgKGlkLnR5cGUgPT0gT0JKRUNUX1RZUEVfRU5DT0RFUikKKwkJcmV0dXJu IGlkLmlkOworCXJldHVybiBFTkNPREVSX0lEX1VOS05PV047Cit9CisKK3N0YXRpYyBpbmxpbmUg ZW51bSBjb25uZWN0b3JfaWQgZGlzcGxheV9ncmFwaGljc19vYmplY3RfaWRfZ2V0X2Nvbm5lY3Rv cl9pZCgKKwlzdHJ1Y3QgZ3JhcGhpY3Nfb2JqZWN0X2lkIGlkKQoreworCWlmIChpZC50eXBlID09 IE9CSkVDVF9UWVBFX0NPTk5FQ1RPUikKKwkJcmV0dXJuIGlkLmlkOworCXJldHVybiBDT05ORUNU T1JfSURfVU5LTk9XTjsKK30KKworc3RhdGljIGlubGluZSBlbnVtIGF1ZGlvX2lkIGRpc3BsYXlf Z3JhcGhpY3Nfb2JqZWN0X2lkX2dldF9hdWRpb19pZCgKKwlzdHJ1Y3QgZ3JhcGhpY3Nfb2JqZWN0 X2lkIGlkKQoreworCWlmIChpZC50eXBlID09IE9CSkVDVF9UWVBFX0FVRElPKQorCQlyZXR1cm4g aWQuaWQ7CisJcmV0dXJuIEFVRElPX0lEX1VOS05PV047Cit9CisKK3N0YXRpYyBpbmxpbmUgZW51 bSBlbmdpbmVfaWQgZGlzcGxheV9ncmFwaGljc19vYmplY3RfaWRfZ2V0X2VuZ2luZV9pZCgKKwlz dHJ1Y3QgZ3JhcGhpY3Nfb2JqZWN0X2lkIGlkKQoreworCWlmIChpZC50eXBlID09IE9CSkVDVF9U WVBFX0VOR0lORSkKKwkJcmV0dXJuIGlkLmlkOworCXJldHVybiBFTkdJTkVfSURfVU5LTk9XTjsK K30KKworLyogQmFzZWQgb24gaW50ZXJuYWwgZGF0YSBtZW1iZXJzIG1lbW9yeSBsYXlvdXQgKi8K K3N0YXRpYyBpbmxpbmUgdWludDMyX3QgZGlzcGxheV9ncmFwaGljc19vYmplY3RfaWRfdG9fdWlu dChzdHJ1Y3QgZ3JhcGhpY3Nfb2JqZWN0X2lkIGlkKQoreworCXVpbnQzMl90IG9iamVjdF9pZCA9 IDA7CisKKwlvYmplY3RfaWQgPSBpZC5pZCArIChpZC5lbnVtX2lkIDw8IDB4OCkgKyAoaWQudHlw ZSA8PCAweGMpOworCXJldHVybiBvYmplY3RfaWQ7Cit9CisKKyNlbmRpZgotLSAKMi41LjUKCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBt YWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3Rz LmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=